diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 4dfa55a79231..e969d1aa7447 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -24,8 +24,13 @@ /tools/docker/ @Fira /Dockerfile @Fira +# Nanu + +/maps @Nanu308 + # Zonespace -/code/modules/gear_presets/survivors.dm @zonespace27 +/code/datums/tutorial/ @Zonespace27 +/maps/tutorial/ @Zonespace27 # MULTIPLE OWNERS 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/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..cdf7ce11784e 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, 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/.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/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/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 ead4c9665c7c..6617c5aafcee 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,7 @@ 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) //toggles_chat #define CHAT_OOC (1<<0) @@ -162,7 +159,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) #define TOGGLES_FLASHING_DEFAULT (FLASH_ROUNDSTART|FLASH_ROUNDEND|FLASH_CORPSEREVIVE|FLASH_ADMINPM|FLASH_UNNEST) @@ -283,7 +280,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" @@ -379,6 +376,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 @@ -536,7 +534,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 138adeeda451..d7c068237987 100644 --- a/code/__DEFINES/_math.dm +++ b/code/__DEFINES/_math.dm @@ -14,6 +14,8 @@ #define CEILING(x, y) ( -round(-(x) / (y)) * (y) ) +#define ROUND_UP(x) ( -round(-(x))) + // round() acts like floor(x, 1) by default but can't handle other values #define FLOOR(x, y) ( round((x) / (y)) * (y) ) @@ -21,10 +23,10 @@ #define MODULUS(x, y) ( (x) - (y) * round((x) / (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) +#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. @@ -34,4 +36,4 @@ #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 ) +#define LERP(a, b, amount) ( (amount) ? ((a) + ((b) - (a)) * (amount)) : (a) ) 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 f2db3980e887..1edc2bd7b5a1 100644 --- a/code/__DEFINES/chat.dm +++ b/code/__DEFINES/chat.dm @@ -21,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/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_xeno.dm b/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.dm index 9846e974827e..e6e1e64e9c7e 100644 --- a/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.dm +++ b/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.dm @@ -71,3 +71,10 @@ /// 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) diff --git a/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm b/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm index 710e4d9ae20a..f4df347c62db 100644 --- a/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm +++ b/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm @@ -75,9 +75,13 @@ #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) @@ -109,6 +113,12 @@ #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() 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 7b3b218e658a..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 @@ -77,3 +82,4 @@ #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 c870a55ed746..ed27c26b2115 100644 --- a/code/__DEFINES/dcs/signals/atom/signals_obj.dm +++ b/code/__DEFINES/dcs/signals/atom/signals_obj.dm @@ -25,6 +25,8 @@ /// 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() 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 3968f654c486..36a60c153d0f 100644 --- a/code/__DEFINES/dcs/signals/signals_client.dm +++ b/code/__DEFINES/dcs/signals/signals_client.dm @@ -19,8 +19,8 @@ /// 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" 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 5569ded71586..f975a67824ef 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" @@ -66,8 +70,11 @@ #define COMSIG_GLOB_RESEARCH_LOCKDOWN "!research_lockdown_closed" #define COMSIG_GLOB_RESEARCH_LIFT "!research_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/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 375dd0db540d..b37ae0d59d64 100644 --- a/code/__DEFINES/equipment.dm +++ b/code/__DEFINES/equipment.dm @@ -44,6 +44,8 @@ #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) //========================================================================================== @@ -82,6 +84,8 @@ #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) //========================================================================================== 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..1b2907cf57ce 100644 --- a/code/__DEFINES/job.dm +++ b/code/__DEFINES/job.dm @@ -75,14 +75,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_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_CREWMAN, JOB_INTEL) #define JOB_POLICE "Military Police" #define JOB_WARDEN "Military Warden" diff --git a/code/__DEFINES/keybinding.dm b/code/__DEFINES/keybinding.dm index f4503aeea5d5..4b8fd9bd58b3 100644 --- a/code/__DEFINES/keybinding.dm +++ b/code/__DEFINES/keybinding.dm @@ -165,6 +165,8 @@ #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" diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index 63e79cdf676d..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 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 155a91fa62ed..ef3d17572f0d 100644 --- a/code/__DEFINES/maps.dm +++ b/code/__DEFINES/maps.dm @@ -118,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/mob_hud.dm b/code/__DEFINES/mob_hud.dm index 02f992694832..97fbc64a9da4 100644 --- a/code/__DEFINES/mob_hud.dm +++ b/code/__DEFINES/mob_hud.dm @@ -25,6 +25,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 +36,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 diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 31914815ae93..e2bd868f9a80 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -89,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 @@ -100,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) @@ -108,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 @@ -306,77 +309,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', @@ -449,4 +381,3 @@ GLOBAL_LIST_INIT(default_xeno_onmob_icons, list( #define MOBILITY_FLAGS_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND) #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 2b018c0a2810..fea9ebeebb2c 100644 --- a/code/__DEFINES/mode.dm +++ b/code/__DEFINES/mode.dm @@ -72,6 +72,7 @@ #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 @@ -90,6 +91,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 +119,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_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)) //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_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_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,7 +150,7 @@ 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_MEDICAL JOB_CMO, JOB_RESEARCHER, JOB_DOCTOR, JOB_NURSE, JOB_WO_CMO, JOB_WO_RESEARCHER, JOB_WO_DOCTOR @@ -279,6 +289,7 @@ DEFINE_BITFIELD(whitelist_status, list( #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..d839789d1664 100644 --- a/code/__DEFINES/objects.dm +++ b/code/__DEFINES/objects.dm @@ -155,7 +155,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 +177,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..6f4e2bec14ca 100644 --- a/code/__DEFINES/sentry_laptop_configurations.dm +++ b/code/__DEFINES/sentry_laptop_configurations.dm @@ -1,4 +1,3 @@ -#define FACTION_USCM "USCM" #define FACTION_WEYLAND "WY" #define FACTION_HUMAN "HUMAN" #define FACTION_COLONY "COLONY" 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/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 9cb67e1e0de1..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. diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index fdfec5e8ca08..e2c89df90e9b 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -1,6 +1,6 @@ // tgstation-server DMAPI -#define TGS_DMAPI_VERSION "7.0.2" +#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. @@ -305,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 @@ -347,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!") @@ -360,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!") @@ -376,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!") @@ -388,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!") @@ -490,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/traits.dm b/code/__DEFINES/traits.dm index c2abe21a26ad..881c41182ab4 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -159,6 +159,8 @@ #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 @@ -169,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" @@ -177,7 +179,9 @@ // 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 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" @@ -265,6 +269,9 @@ #define TRAIT_GUN_LIGHT_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...) @@ -422,6 +429,8 @@ GLOBAL_LIST(trait_name_map) ///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 a xeno nest @@ -462,6 +471,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..b9a80d4ab257 --- /dev/null +++ b/code/__DEFINES/turfs.dm @@ -0,0 +1,29 @@ +#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) \ +) + +#define RECT_TURFS(H_RADIUS, V_RADIUS, CENTER) \ + block( \ + locate(max((CENTER).x-(H_RADIUS),1), max((CENTER).y-(V_RADIUS),1), (CENTER).z), \ + locate(min((CENTER).x+(H_RADIUS),world.maxx), min((CENTER).y+(V_RADIUS),world.maxy), (CENTER).z) \ + ) + +///Returns all turfs in a zlevel +#define Z_TURFS(ZLEVEL) block(locate(1,1,ZLEVEL), locate(world.maxx, world.maxy, ZLEVEL)) + +/// Returns a list of turfs in the rectangle specified by BOTTOM LEFT corner and height/width, checks for being outside the world border for you +#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(locate(corner.x + offset_x, corner.y + offset_y, corner.z), locate(min(corner.x + (width - 1) + offset_x, world.maxx), min(corner.y + (height - 1) + offset_y, world.maxy), 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/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/vendors.dm b/code/__DEFINES/vendors.dm index 086b70a92428..dc78f7caa4d3 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) 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 e3a35d0c4744..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 @@ -361,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 @@ -660,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 7eea79742148..f8a9292d3806 100644 --- a/code/__HELPERS/#maths.dm +++ b/code/__HELPERS/#maths.dm @@ -8,8 +8,8 @@ GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, // MATH DEFINES -#define Ceiling(x) (-round(-x)) -#define CLAMP01(x) (clamp(x, 0, 1)) +#define Ceiling(x) (-round(-(x))) +#define CLAMP01(x) (clamp((x), 0, 1)) // cotangent #define Cot(x) (1 / tan(x)) @@ -17,36 +17,36 @@ GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, // cosecant #define Csc(x) (1 / sin(x)) -#define Default(a, b) (a ? a : b) +#define Default(a, b) ((a) ? (a) : (b)) #define Floor(x) (round(x)) // Greatest Common Divisor - Euclid's algorithm -#define Gcd(a, b) (b ? Gcd(b, a % b) : a) +#define Gcd(a, b) ((b) ? Gcd((b), (a) % (b)) : (a)) -#define Inverse(x) (1 / x) -#define IsEven(x) (x % 2 == 0) +#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)) // 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) - (round(((val) - (min))/((max) - (min))) * ((max) - (min))) ),(min),(max)) // MATH PROCS @@ -84,53 +84,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" -/** - * 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) diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index fe15e6d84c79..dd92b9be1295 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -176,3 +176,4 @@ for(var/i in 1 to inserted_list.len - 1) inserted_list.Swap(i, rand(i, inserted_list.len)) + diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 8b11a3797627..64f4515396f6 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -263,7 +263,7 @@ continue // Mods with larva protection cannot be drafted - if((cur_obs.client.admin_holder && (cur_obs.client.admin_holder.rights & R_MOD)) && !cur_obs.adminlarva) + if(check_client_rights(cur_obs.client, R_MOD, FALSE) && cur_obs.admin_larva_protection) continue if(hive) diff --git a/code/__HELPERS/job.dm b/code/__HELPERS/job.dm index 220236c6f7e3..ec36a485333c 100644 --- a/code/__HELPERS/job.dm +++ b/code/__HELPERS/job.dm @@ -31,7 +31,8 @@ JOB_XO, JOB_SO, JOB_INTEL, - JOB_PILOT, + JOB_CAS_PILOT, + JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, 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/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 30ef9428586d..9a8528aabcc3 100644 --- a/code/__HELPERS/lists.dm +++ b/code/__HELPERS/lists.dm @@ -534,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() @@ -545,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 diff --git a/code/__HELPERS/logging.dm b/code/__HELPERS/logging.dm index c20db3da303f..1e72f51a8d60 100644 --- a/code/__HELPERS/logging.dm +++ b/code/__HELPERS/logging.dm @@ -125,11 +125,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 +209,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 +286,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/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/sorts/_Main.dm b/code/__HELPERS/sorts/_Main.dm index 5d6f5210be47..55af258b81d2 100644 --- a/code/__HELPERS/sorts/_Main.dm +++ b/code/__HELPERS/sorts/_Main.dm @@ -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) 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/unsorted.dm b/code/__HELPERS/unsorted.dm index 676ae7a2b8aa..aa23131847d7 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -21,23 +21,23 @@ #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)` @@ -48,7 +48,7 @@ ) //Turns 1479 into 147.9 -#define format_frequency(f) "[round(f / 10)].[f % 10]" +#define format_frequency(f) "[round((f) / 10)].[(f) % 10]" #define reverse_direction(direction) ( \ ( dir & (NORTH|SOUTH) ? ~dir & (NORTH|SOUTH) : 0 ) | \ @@ -820,7 +820,7 @@ 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 @@ -828,6 +828,16 @@ 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()) @@ -1494,88 +1504,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. @@ -1621,8 +1590,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 @@ -1946,8 +1915,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", 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 59d14f2e0fed..616c88c47a9d 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -154,6 +154,12 @@ DEFINE_BITFIELD(flags_atom, list( "HTML_USE_INITAL_ICON" = HTML_USE_INITAL_ICON, )) +DEFINE_BITFIELD(turf_flags, list( + "TURF_ORGANIC" = TURF_ORGANIC, + "UNUSED_RESERVATION_TURF" = UNUSED_RESERVATION_TURF, + "RESERVATION_TURF" = RESERVATION_TURF, +)) + DEFINE_BITFIELD(flags_item, list( "NODROP" = NODROP, "NOBLUDGEON" = NOBLUDGEON, @@ -425,6 +431,7 @@ DEFINE_BITFIELD(toggleable_flags, list( "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( diff --git a/code/_globalvars/global_lists.dm b/code/_globalvars/global_lists.dm index 66eaf13df282..c23f1fc7931f 100644 --- a/code/_globalvars/global_lists.dm +++ b/code/_globalvars/global_lists.dm @@ -3,6 +3,9 @@ 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 @@ -34,6 +37,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')) @@ -163,9 +169,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(), @@ -273,6 +276,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(!.) @@ -478,6 +490,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" @@ -490,6 +503,7 @@ GLOBAL_LIST_INIT(available_specialist_kit_boxes, list( "Sniper" = 2, "Scout" = 2, "Demo" = 2, + "Anti-materiel Sniper" = 2, )) /proc/init_global_referenced_datums() @@ -514,6 +528,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/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/_macros.dm b/code/_macros.dm index e8a97cbada83..075d098e3d50 100644 --- a/code/_macros.dm +++ b/code/_macros.dm @@ -67,6 +67,11 @@ #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)} @@ -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..c60f7ceed628 100644 --- a/code/_onclick/adjacent.dm +++ b/code/_onclick/adjacent.dm @@ -294,7 +294,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_hold.dm b/code/_onclick/click_hold.dm index 996f7ed2bf3b..41e2be147d85 100644 --- a/code/_onclick/click_hold.dm +++ b/code/_onclick/click_hold.dm @@ -95,11 +95,10 @@ // 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/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 f5f61424daac..7277c74b2fd3 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 diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 37a858d76699..b8b55b42c028 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -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/rendering/plane_master.dm b/code/_onclick/hud/rendering/plane_master.dm index 6625120d1514..c4f070bdd842 100644 --- a/code/_onclick/hud/rendering/plane_master.dm +++ b/code/_onclick/hud/rendering/plane_master.dm @@ -189,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/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/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index e4e8ff64c19c..17f06987cd3b 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() @@ -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" @@ -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,57 +209,57 @@ selecting = "eyes" if(old_selecting != selecting) + user.zone_selected = selecting update_icon(user) return 1 -/atom/movable/screen/clicked(mob/user) +/atom/movable/screen/gun + /// The proc/verb which should be called on the gun. + var/gun_proc_ref + +/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("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) @@ -505,7 +506,11 @@ 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)) @@ -520,28 +525,26 @@ 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/list/sorted_tunnels = sort_list_dist(user.hive.tunnels, get_turf(user)) - var/tunnel_index = 1 - for(var/obj/structure/tunnel/tunnel in sorted_tunnels) - options["Tunnel [tunnel.tunnel_desc]"] = list(TRACKER_TUNNEL, tunnel_index) - tunnel_index++ + 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("Our hive doesn't have a living queen!")) return FALSE @@ -549,6 +552,12 @@ 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" @@ -577,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/observer.dm b/code/_onclick/observer.dm index 21dd804f09c4..04c70bbe1112 100644 --- a/code/_onclick/observer.dm +++ b/code/_onclick/observer.dm @@ -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/xeno.dm b/code/_onclick/xeno.dm index ad4ba9d72546..453539ff1c3f 100644 --- a/code/_onclick/xeno.dm +++ b/code/_onclick/xeno.dm @@ -88,7 +88,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!" @@ -131,6 +131,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..d71bf1d747c9 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 @@ -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/entries/general.dm b/code/controllers/configuration/entries/general.dm index 385cbcb8d446..1cf93e998a4e 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,38 @@ 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." diff --git a/code/controllers/mc/globals.dm b/code/controllers/mc/globals.dm index 7b5cc94d3620..724f58010699 100644 --- a/code/controllers/mc/globals.dm +++ b/code/controllers/mc/globals.dm @@ -13,7 +13,11 @@ 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") 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/subsystem/atoms.dm b/code/controllers/subsystem/atoms.dm index 3d544dca1390..f0d5ee14363e 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 @@ -73,7 +76,10 @@ SUBSYSTEM_DEF(atoms) 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 @@ -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/communications.dm b/code/controllers/subsystem/communications.dm index b8b037c33381..c245b1012900 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 @@ -327,11 +329,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..6194b05d561b 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) diff --git a/code/controllers/subsystem/events.dm b/code/controllers/subsystem/events.dm index 83cd822725ca..f4dd544784f0 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 diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index e94d6b1aff1d..37c305d59cde 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) diff --git a/code/controllers/subsystem/hijack.dm b/code/controllers/subsystem/hijack.dm index ed9eba2bc6c3..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) diff --git a/code/controllers/subsystem/interior.dm b/code/controllers/subsystem/interior.dm index 8abc3179f191..e2b845f833d7 100644 --- a/code/controllers/subsystem/interior.dm +++ b/code/controllers/subsystem/interior.dm @@ -15,11 +15,11 @@ 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])) @@ -51,12 +51,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/mapping.dm b/code/controllers/subsystem/mapping.dm index 0f4a63ff65e8..1d137aa7d8ae 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 @@ -126,18 +172,33 @@ SUBSYSTEM_DEF(mapping) 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 = round(world.maxx / 2 - bounds[MAP_MAXX] / 2) + 1 + if(bounds && world.maxy > bounds[MAP_MAXY]) + y_offset = round(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 @@ -256,66 +317,78 @@ 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/turf/A = get_turf(locate(SHUTTLE_TRANSIT_BORDER,SHUTTLE_TRANSIT_BORDER,z)) + var/turf/B = get_turf(locate(world.maxx - SHUTTLE_TRANSIT_BORDER,world.maxy - SHUTTLE_TRANSIT_BORDER,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 + 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 +396,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 +426,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 b196f5a49e8e..ff250625043f 100644 --- a/code/controllers/subsystem/minimap.dm +++ b/code/controllers/subsystem/minimap.dm @@ -182,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 @@ -585,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 */ @@ -763,7 +765,7 @@ SUBSYSTEM_DEF(minimaps) data["canDraw"] = FALSE data["canViewTacmap"] = TRUE data["canViewCanvas"] = FALSE - data["isXeno"] = FALSE + data["isxeno"] = FALSE return data @@ -779,7 +781,7 @@ 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 @@ -797,7 +799,7 @@ SUBSYSTEM_DEF(minimaps) data["canDraw"] = FALSE data["canViewTacmap"] = FALSE data["canViewCanvas"] = TRUE - data["isXeno"] = FALSE + data["isxeno"] = FALSE return data @@ -809,7 +811,7 @@ SUBSYSTEM_DEF(minimaps) data["canDraw"] = FALSE data["canViewTacmap"] = FALSE data["canViewCanvas"] = TRUE - data["isXeno"] = TRUE + data["isxeno"] = TRUE return data 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/shuttles.dm b/code/controllers/subsystem/shuttles.dm index 3e59744cff31..439f83ceb8c0 100644 --- a/code/controllers/subsystem/shuttles.dm +++ b/code/controllers/subsystem/shuttles.dm @@ -39,9 +39,6 @@ SUBSYSTEM_DEF(shuttle) 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 @@ -52,8 +49,6 @@ SUBSYSTEM_DEF(shuttle) 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) @@ -164,9 +159,6 @@ 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 - // Remember, the direction is the direction we appear to be - // coming from var/dock_angle = dir2angle(M.preferred_direction) + dir2angle(M.port_direction) + 180 var/dock_dir = angle2dir(dock_angle) @@ -185,27 +177,24 @@ SUBSYSTEM_DEF(shuttle) /* to_chat(world, "The attempted transit dock will be [transit_width] width, and \) - [transit_height] in height. The travel dir is [travel_dir]." + [transit_height] in height. The travel dir is [M.preferred_direction]." */ - 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, + 1, + 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 @@ -374,7 +363,7 @@ SUBSYSTEM_DEF(shuttle) return shuttle -/datum/controller/subsystem/shuttle/proc/action_load(datum/map_template/shuttle/loading_template, obj/docking_port/stationary/destination_port) +/datum/controller/subsystem/shuttle/proc/action_load(datum/map_template/shuttle/loading_template, obj/docking_port/stationary/destination_port, replace = FALSE) // Check for an existing preview if(preview_shuttle && (loading_template != preview_template)) preview_shuttle.jumpToNullSpace() @@ -383,8 +372,7 @@ 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 @@ -419,9 +407,6 @@ SUBSYSTEM_DEF(shuttle) 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 - // update underlays if(istype(T, /turf/closed/shuttle)) var/dx = T.x - preview_shuttle.x @@ -430,8 +415,10 @@ SUBSYSTEM_DEF(shuttle) T.underlays.Cut() T.underlays += mutable_appearance(target_lz.icon, target_lz.icon_state, TURF_LAYER, FLOOR_PLANE) + preview_shuttle.register(replace) var/list/force_memory = preview_shuttle.movement_force preview_shuttle.movement_force = list("KNOCKDOWN" = 0, "THROW" = 0) + preview_shuttle.initiate_docking(D) preview_shuttle.movement_force = force_memory @@ -442,7 +429,7 @@ SUBSYSTEM_DEF(shuttle) preview_shuttle.timer = timer preview_shuttle.mode = mode - preview_shuttle.register() + preview_shuttle.postregister(replace) // TODO indicate to the user that success happened, rather than just // blanking the modification tab @@ -452,16 +439,21 @@ SUBSYSTEM_DEF(shuttle) selected = null QDEL_NULL(preview_reservation) -/datum/controller/subsystem/shuttle/proc/load_template(datum/map_template/shuttle/S) +/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 @@ -475,13 +467,13 @@ SUBSYSTEM_DEF(shuttle) found++ if(found > 1) qdel(P, force=TRUE) - log_world("Map warning: Shuttle Template [S.mappath] has multiple mobile docking ports.") + log_world("Map warning: 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.") + log_world("Map warning: 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." + var/msg = "load_template(): Shuttle Template [loading_template.mappath] has no mobile docking port. Aborting import." for(var/T in affected) var/turf/T0 = T T0.empty() @@ -490,7 +482,7 @@ SUBSYSTEM_DEF(shuttle) WARNING(msg) return //Everything fine - S.post_load(preview_shuttle) + loading_template.post_load(preview_shuttle) return TRUE /datum/controller/subsystem/shuttle/proc/unload_preview() 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/ticker.dm b/code/controllers/subsystem/ticker.dm index 2e11ba8a96cb..f265315460e3 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 @@ -80,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 @@ -172,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 @@ -187,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) diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index 104bb838bbcf..2438577a1771 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -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' @@ -371,7 +373,7 @@ 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 @@ -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/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/action.dm b/code/datums/action.dm index 3a597ad262b1..d1768655a2da 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -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() 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 7a4006deee73..eba72f2594e2 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" @@ -230,6 +230,7 @@ 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. 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) @@ -237,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/pistol.dm b/code/datums/ammo/bullet/pistol.dm index 8be63b0a15af..937c40d16cff 100644 --- a/code/datums/ammo/bullet/pistol.dm +++ b/code/datums/ammo/bullet/pistol.dm @@ -66,7 +66,7 @@ /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) @@ -197,7 +197,7 @@ /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..def0a8e31952 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 @@ -52,7 +51,7 @@ /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 0be6f1db8ff4..7711e082a596 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" @@ -69,7 +74,7 @@ /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,16 +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.KnockDown(0.5) // purely for visual effect, noone actually cares - target.Stun(0.5) - 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 96ac4cb6ba04..e71114dc24de 100644 --- a/code/datums/ammo/bullet/shotgun.dm +++ b/code/datums/ammo/bullet/shotgun.dm @@ -311,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" diff --git a/code/datums/ammo/bullet/smg.dm b/code/datums/ammo/bullet/smg.dm index e24b3021da97..3fa087972fbe 100644 --- a/code/datums/ammo/bullet/smg.dm +++ b/code/datums/ammo/bullet/smg.dm @@ -51,7 +51,7 @@ /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..6d0f0792ec53 100644 --- a/code/datums/ammo/bullet/sniper.dm +++ b/code/datums/ammo/bullet/sniper.dm @@ -107,19 +107,104 @@ damage = 125 shell_speed = AMMO_SPEED_TIER_6 -/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 - 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!")) +/datum/ammo/bullet/sniper/anti_materiel/on_hit_mob(mob/target_mob,obj/projectile/aimed_projectile) + + var/mob/living/living_target = target_mob + + 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 < 2) // Can stack up to twice. + amr.focused_fire_counter += 1 + else + amr.focused_fire_counter = 2 + 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 = amr.focused_fire_counter + 1 + 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. + + 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) + + if(target.mob_size >= MOB_SIZE_XENO && (target.caste_type != XENO_CASTE_DEFENDER)) + 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. + + if(target.mob_size >= MOB_SIZE_BIG && (target.caste_type != XENO_CASTE_DEFENDER)) + size_damage_mod -= 0.6 // Down to 1x Damage. + size_current_health_damage += 0.1 // 1x Damage + 30% current health. + focused_fire_active = 1 + // 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. Defender only takes 200 damage, even while fortified, but still causes falloff like a Big Xeno. + // 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)) + + 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) + + // Base 1.8x damage to non-xeno targets (225), 1.6x + 10% current against Runners and Defenders (223), 1.6x + 20% current health against most non-Runner xenos, and +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.")) + 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 +224,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" diff --git a/code/datums/ammo/bullet/special_ammo.dm b/code/datums/ammo/bullet/special_ammo.dm index 3d53c6b0c0d0..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" diff --git a/code/datums/ammo/energy.dm b/code/datums/ammo/energy.dm index 27d2b7d4e0c5..1f48806d2d52 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" @@ -230,3 +230,10 @@ var/mob/living/carbon/xenomorph/xeno = hit_mob xeno.apply_damage(damage * 0.75, BURN) xeno.interference = 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 3aaba8443efb..bcb9673548db 100644 --- a/code/datums/ammo/misc.dm +++ b/code/datums/ammo/misc.dm @@ -49,11 +49,11 @@ 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" /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 @@ -113,7 +113,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 +156,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 diff --git a/code/datums/ammo/rocket.dm b/code/datums/ammo/rocket.dm index 7581d434c4b4..722602cada69 100644 --- a/code/datums/ammo/rocket.dm +++ b/code/datums/ammo/rocket.dm @@ -275,6 +275,8 @@ /datum/ammo/rocket/custom name = "custom rocket" + accurate_range = 8 + max_range = 8 /datum/ammo/rocket/custom/proc/prime(atom/atom, obj/projectile/projectile) var/obj/item/weapon/gun/launcher/rocket/launcher = projectile.shot_from 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 654ab88c7abc..7b5c8ee71257 100644 --- a/code/datums/ammo/xeno.dm +++ b/code/datums/ammo/xeno.dm @@ -186,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 @@ -363,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 @@ -386,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/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/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/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/datum.dm b/code/datums/datum.dm index 7d497785a72a..3e317ffd601e 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 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/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 183cdadf17aa..5d6d96fcc57c 100644 --- a/code/datums/diseases/black_goo.dm +++ b/code/datums/diseases/black_goo.dm @@ -2,6 +2,7 @@ #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 @@ -9,7 +10,7 @@ /datum/disease/black_goo name = "Black Goo" - max_stages = 3 + max_stages = 4 cure = "Anti-Zed" cure_id = "antiZed" spread = "Bites" @@ -120,17 +121,23 @@ stage_level += 42 if(ZOMBIE_INFECTION_STAGE_THREE) - //check if the mob is already a zombie and just return to avoid weird stuff, edge case if zombie_is_transforming deoesn't work. + // if zombie or transforming we upgrade it to stage four. if(iszombie(infected_mob)) + stage++ return - - 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 - hidden = list(0,0) + // 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) - infected_mob.next_move_slowdown = max(infected_mob.next_move_slowdown, 2) + 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 @@ -141,6 +148,8 @@ 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. @@ -149,7 +158,7 @@ playsound(human.loc, 'sound/hallucinations/wail.ogg', 25, 1) human.jitteriness = 0 human.set_species(SPECIES_ZOMBIE) - stage = 3 + stage = 4 human.faction = FACTION_ZOMBIE zombie_is_transforming = FALSE @@ -250,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() . = ..() @@ -310,6 +318,7 @@ #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 diff --git a/code/datums/effects/bleeding.dm b/code/datums/effects/bleeding.dm index 2171580a94db..f56efbb3c69d 100644 --- a/code/datums/effects/bleeding.dm +++ b/code/datums/effects/bleeding.dm @@ -71,6 +71,11 @@ if(affected_mob.reagents.get_reagent_amount("thwei")) blood_loss -= THWEI_BLOOD_REDUCTION + if(affected_mob.bodytemperature < T0C && (affected_mob.reagents.get_reagent_amount("cryoxadone") || affected_mob.reagents.get_reagent_amount("clonexadone"))) + var/obj/structure/machinery/cryo_cell/cryo = affected_mob.loc + if(istype(cryo) && cryo.on && cryo.operable()) + blood_loss -= CRYO_BLOOD_REDUCTION + var/mob/living/carbon/human/affected_human = affected_mob if(istype(affected_human)) if(affected_human.chem_effect_flags & CHEM_EFFECT_NO_BLEEDING) @@ -95,18 +100,19 @@ if(affected_mob.in_stasis == STASIS_IN_BAG) return FALSE - if(affected_mob.bodytemperature < T0C && (affected_mob.reagents && affected_mob.reagents.get_reagent_amount("cryoxadone") || affected_mob.reagents.get_reagent_amount("clonexadone"))) - blood_loss -= CRYO_BLOOD_REDUCTION - if(affected_mob.reagents) // Annoying QC check if(affected_mob.reagents.get_reagent_amount("thwei")) blood_loss -= THWEI_BLOOD_REDUCTION + if(affected_mob.bodytemperature < T0C && (affected_mob.reagents.get_reagent_amount("cryoxadone") || affected_mob.reagents.get_reagent_amount("clonexadone"))) + blood_loss -= CRYO_BLOOD_REDUCTION + var/mob/living/carbon/human/affected_human = affected_mob if(istype(affected_human)) if(affected_human.chem_effect_flags & CHEM_EFFECT_NO_BLEEDING) return FALSE + blood_loss = max(blood_loss, 0) // Bleeding shouldn't give extra blood even if its only 1 tick affected_mob.blood_volume = max(affected_mob.blood_volume - blood_loss, 0) return TRUE diff --git a/code/datums/elements/bullet_trait/damage_boost.dm b/code/datums/elements/bullet_trait/damage_boost.dm index a0370f2d36b6..43d9d1b23377 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 = round(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/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/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..fc20f98f20b3 100644 --- a/code/datums/emergency_calls/cbrn.dm +++ b/code/datums/emergency_calls/cbrn.dm @@ -2,6 +2,7 @@ name = "CBRN (Squad)" arrival_message = "A CBRN squad has been dispatched to your ship. Stand by." objectives = "Handle the chemical, biological, radiological, or nuclear threat. Further orders may be provided." + home_base = /datum/lazy_template/ert/weyland_station mob_min = 3 mob_max = 5 max_heavies = 0 diff --git a/code/datums/emergency_calls/clf.dm b/code/datums/emergency_calls/clf.dm index 88c95ef31bc4..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 diff --git a/code/datums/emergency_calls/cmb.dm b/code/datums/emergency_calls/cmb.dm index 56b8b169b313..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 @@ -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/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 7884d93b18bc..a803a7f06c78 100644 --- a/code/datums/emergency_calls/emergency_call.dm +++ b/code/datums/emergency_calls/emergency_call.dm @@ -28,6 +28,10 @@ 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 @@ -46,13 +50,19 @@ 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. return @@ -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 @@ -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() @@ -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..312ceeaf9eed --- /dev/null +++ b/code/datums/emergency_calls/ert_stations.dm @@ -0,0 +1,17 @@ +/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" 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/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 f0400528ac31..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 @@ -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 2f43e94828d6..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 diff --git a/code/datums/emergency_calls/royal_marines.dm b/code/datums/emergency_calls/royal_marines.dm index 21f79e7c3026..a614d5a0c1c7 100644 --- a/code/datums/emergency_calls/royal_marines.dm +++ b/code/datums/emergency_calls/royal_marines.dm @@ -2,6 +2,8 @@ name = "Royal Marines Commando (Squad) (Friendly)" mob_max = 7 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 c075c4be25db..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."))) @@ -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 f112511b5e22..5a69c4002105 100644 --- a/code/datums/emergency_calls/xeno_cultists.dm +++ b/code/datums/emergency_calls/xeno_cultists.dm @@ -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 2973a174858f..aefa81672b54 100644 --- a/code/datums/entities/player.dm +++ b/code/datums/entities/player.dm @@ -29,6 +29,9 @@ var/stickyban_whitelisted = FALSE + var/byond_account_age + var/first_join_date + // UNTRACKED FIELDS var/name // Used for NanoUI statistics menu @@ -78,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 @@ -305,6 +310,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 @@ -419,6 +454,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) @@ -440,61 +504,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) @@ -509,8 +570,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 . @@ -681,7 +743,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 diff --git a/code/datums/entities/player_sticky_ban.dm b/code/datums/entities/player_sticky_ban.dm index d79befddb04e..752334e8e001 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_LARGE, + "message" = DB_FIELDTYPE_STRING_LARGE, + "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/factions/uscm.dm b/code/datums/factions/uscm.dm index 0a9b0cff40b9..a19faba32d81 100644 --- a/code/datums/factions/uscm.dm +++ b/code/datums/factions/uscm.dm @@ -22,7 +22,8 @@ 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_INTEL) marine_rk = "io" if(JOB_DROPSHIP_CREW_CHIEF) marine_rk = "dcc" if(JOB_CREWMAN) marine_rk = "tc" @@ -85,8 +86,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) 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 b2bf989a7aaf..100f546ba590 100644 --- a/code/datums/keybinding/mob.dm +++ b/code/datums/keybinding/mob.dm @@ -73,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" @@ -81,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" @@ -96,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" @@ -111,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" @@ -126,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" @@ -141,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" @@ -156,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" @@ -171,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" @@ -186,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" @@ -201,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 cef04d01a75c..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. We are alone.")) - return - - if(current_xeno.interference) - to_chat(current_xeno, SPAN_WARNING("A headhunter temporarily cut off our 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/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/medal_awards.dm b/code/datums/medal_awards.dm index a3041c622bd6..818d623033d2 100644 --- a/code/datums/medal_awards.dm +++ b/code/datums/medal_awards.dm @@ -259,7 +259,7 @@ GLOBAL_LIST_INIT(human_medals, list(MARINE_CONDUCT_MEDAL, MARINE_BRONZE_HEART_ME 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 @@ -582,7 +582,7 @@ GLOBAL_DATUM_INIT(ic_medals_panel, /datum/ic_medal_panel, new) 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 diff --git a/code/datums/mob_hud.dm b/code/datums/mob_hud.dm index 778ec2b75a36..5e57b8f5616c 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(), @@ -185,7 +185,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) @@ -209,7 +209,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 //////////////////////////////: @@ -753,7 +753,13 @@ 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" // Xeno "hostile" HUD /mob/living/carbon/human/proc/update_xeno_hostile_hud() 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..b3ff70830603 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_WEYLAND /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..862dce0dfb0c 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_WEYLAND,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/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/shuttles.dm b/code/datums/shuttles.dm index 98bcf296755b..0eba86add45d 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -62,43 +62,30 @@ locate(.[MAP_MAXX], .[MAP_MAXY], .[MAP_MAXZ])) for(var/i in 1 to turfs.len) var/turf/place = turfs[i] + + // ================== 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() /datum/map_template/shuttle/vehicle @@ -115,3 +102,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/uscm.dm b/code/datums/skills/uscm.dm index 8a6d2fd2c8c2..1e0dedf5dd05 100644 --- a/code/datums/skills/uscm.dm +++ b/code/datums/skills/uscm.dm @@ -292,6 +292,7 @@ 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, 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/status_effects/stacking_effect.dm b/code/datums/status_effects/stacking_effect.dm index 3ef5855938f7..5812bcaacd48 100644 --- a/code/datums/status_effects/stacking_effect.dm +++ b/code/datums/status_effects/stacking_effect.dm @@ -7,7 +7,7 @@ /// How many stacks are currently accumulated. /// Also, the default stacks number given on application. var/stacks = 0 - // Deciseconds until ticks start occuring, which removes stacks + // Deciseconds until ticks start occurring, which removes stacks /// (first stack will be removed at this time plus tick_interval) var/delay_before_decay /// How many stacks are lost per tick (decay trigger) @@ -74,7 +74,7 @@ return FALSE stacks += stacks_added if(stacks > 0) - if(stacks >= stack_threshold && !threshold_crossed) //threshold_crossed check prevents threshold effect from occuring if changing from above threshold to still above threshold + if(stacks >= stack_threshold && !threshold_crossed) //threshold_crossed check prevents threshold effect from occurring if changing from above threshold to still above threshold threshold_crossed = TRUE on_threshold_cross() if(consumed_on_threshold) diff --git a/code/datums/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 43e0358a96f9..14ad047c7edb 100644 --- a/code/datums/supply_packs/black_market.dm +++ b/code/datums/supply_packs/black_market.dm @@ -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() 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/medical.dm b/code/datums/supply_packs/medical.dm index 05cb4d2f34c0..097642eb163f 100644 --- a/code/datums/supply_packs/medical.dm +++ b/code/datums/supply_packs/medical.dm @@ -22,8 +22,33 @@ containername = "medical crate" 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 = 20 + 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 +61,7 @@ /obj/item/storage/firstaid/adv, /obj/item/storage/firstaid/adv, ) - cost = 20 + cost = 16 containertype = /obj/structure/closet/crate/medical containername = "medical crate" group = "Medical" @@ -49,7 +74,7 @@ /obj/item/storage/box/bodybags, /obj/item/storage/box/bodybags, ) - cost = 20 + cost = 12 containertype = /obj/structure/closet/crate/medical containername = "body bag crate" group = "Medical" @@ -61,7 +86,7 @@ /obj/item/bodybag/cryobag, /obj/item/bodybag/cryobag, ) - cost = 40 + cost = 20 containertype = /obj/structure/closet/crate/medical containername = "stasis bag crate" group = "Medical" 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/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/tutorial/_tutorial.dm b/code/datums/tutorial/_tutorial.dm index 5423453bbdb9..f228c051a77d 100644 --- a/code/datums/tutorial/_tutorial.dm +++ b/code/datums/tutorial/_tutorial.dm @@ -28,6 +28,8 @@ GLOBAL_LIST_EMPTY_TYPED(ongoing_tutorials, /datum/tutorial) 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 @@ -50,11 +52,12 @@ GLOBAL_LIST_EMPTY_TYPED(ongoing_tutorials, /datum/tutorial) tutorial_mob = starting_mob - reservation = SSmapping.RequestBlockReservation(initial(tutorial_template.width), initial(tutorial_template.height)) + 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 = locate(reservation.bottom_left_coords[1], reservation.bottom_left_coords[2], reservation.bottom_left_coords[3]) + 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 @@ -82,7 +85,7 @@ GLOBAL_LIST_EMPTY_TYPED(ongoing_tutorials, /datum/tutorial) 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) + 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 @@ -97,11 +100,7 @@ GLOBAL_LIST_EMPTY_TYPED(ongoing_tutorials, /datum/tutorial) /// 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 = locate( - reservation.bottom_left_coords[1], - reservation.bottom_left_coords[2], - reservation.bottom_left_coords[3], - ) + var/turf/true_bottom_left_corner = reservation.bottom_left_turfs[1] // We subtract 1 from x and y here because the bottom left corner counts as the first tile var/turf/top_right_corner = locate( true_bottom_left_corner.x + initial(tutorial_template.width) - 1, @@ -213,6 +212,10 @@ GLOBAL_LIST_EMPTY_TYPED(ongoing_tutorials, /datum/tutorial) 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" diff --git a/code/datums/tutorial/_tutorial_menu.dm b/code/datums/tutorial/_tutorial_menu.dm index 42eb3f6aabfa..3c7a28e77b92 100644 --- a/code/datums/tutorial/_tutorial_menu.dm +++ b/code/datums/tutorial/_tutorial_menu.dm @@ -71,7 +71,7 @@ path = text2path(params["tutorial_path"]) - if(!path || !isnewplayer(usr)) + if(!ispath(path, /datum/tutorial) || !isnewplayer(usr)) return if(HAS_TRAIT(usr, TRAIT_IN_TUTORIAL) || istype(get_area(usr), /area/misc/tutorial)) @@ -79,5 +79,6 @@ return path = new path - path.start_tutorial(usr) - return TRUE + 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 index 96a7cb886820..4ed1a379f348 100644 --- a/code/datums/tutorial/creating_a_tutorial.md +++ b/code/datums/tutorial/creating_a_tutorial.md @@ -1,17 +1,15 @@ # Tutorial Creation -[ToC] - ## 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 +- Basics +- Medical +- Weaponry +- Requisitions/Communication ## Step 2: Coding @@ -20,47 +18,65 @@ For an example of the current code standards for tutorials, see [this](https://g 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. + +- `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. -- `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. + +- `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 @@ -69,8 +85,8 @@ Any proc whose main purpose is to advance the tutorial will be hereon referred t 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) + 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)) @@ -78,19 +94,19 @@ Any proc whose main purpose is to advance the tutorial will be hereon referred t ``` 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 in this 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 more condensed. - - Since we need to access the food vendor, we use the `TUTORIAL_ATOM_FROM_TRACKING()` macro to get a ref 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 that access requirement - - And finally, we register a signal for the next script proc, waiting for the user to vend something from the food vendor. - +- `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. + +- 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/xenomorph/_xenomorph.dm b/code/datums/tutorial/xenomorph/_xenomorph.dm index bd85cdb35f44..caa33d8eed43 100644 --- a/code/datums/tutorial/xenomorph/_xenomorph.dm +++ b/code/datums/tutorial/xenomorph/_xenomorph.dm @@ -22,6 +22,10 @@ // 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 diff --git a/code/datums/tutorial/xenomorph/xenomorph_basic.dm b/code/datums/tutorial/xenomorph/xenomorph_basic.dm index 0415977835aa..276d2ac824f0 100644 --- a/code/datums/tutorial/xenomorph/xenomorph_basic.dm +++ b/code/datums/tutorial/xenomorph/xenomorph_basic.dm @@ -4,6 +4,7 @@ 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 @@ -20,6 +21,7 @@ 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.") @@ -105,7 +107,7 @@ 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!") + 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!") addtimer(CALLBACK(human_dummy, TYPE_PROC_REF(/mob/living, rejuvenate)), 8 SECONDS) addtimer(CALLBACK(src, PROC_REF(proceed_to_tackle_phase)), 10 SECONDS) @@ -158,7 +160,16 @@ 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.") - RegisterSignal(human_dummy, COMSIG_HUMAN_IMPREGNATE, PROC_REF(nest_cap_phase)) + 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.") + RegisterSignal(xeno, COMSIG_XENO_TAKE_HUGGER_FROM_MORPHER, PROC_REF(take_facehugger_phase)) /datum/tutorial/xenomorph/basic/proc/nest_cap_phase() SIGNAL_HANDLER @@ -166,6 +177,7 @@ 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.") @@ -227,3 +239,5 @@ /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/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/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 3eae6076f610..2ebba6a774e8 100644 --- a/code/defines/procs/announcement.dm +++ b/code/defines/procs/announcement.dm @@ -90,7 +90,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) @@ -161,4 +161,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/game/area/BigRed.dm b/code/game/area/BigRed.dm index 57e062195a3c..8675655fe949 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 @@ -551,29 +558,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 +614,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 +662,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/LV624.dm b/code/game/area/LV624.dm index 613703a0be6e..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 diff --git a/code/game/area/admin_level.dm b/code/game/area/admin_level.dm index bfca1481155e..49bbc43c0b9c 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" @@ -141,6 +145,9 @@ requires_power = 0 flags_area = AREA_NOTUNNEL +/area/misc + weather_enabled = FALSE + /area/misc/testroom requires_power = FALSE name = "Test Room" diff --git a/code/game/area/almayer.dm b/code/game/area/almayer.dm index 5267798cfe3b..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' @@ -259,8 +241,11 @@ /area/almayer/shipboard/brig/armory name = "\improper Brig Armory" -/area/almayer/shipboard/brig/main_office - name = "\improper Brig Main Office" +/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" @@ -268,8 +253,11 @@ /area/almayer/shipboard/brig/cryo name = "\improper Brig Cryo Pods" -/area/almayer/shipboard/brig/surgery - name = "\improper Brig Surgery" +/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" @@ -280,11 +268,15 @@ /area/almayer/shipboard/brig/execution name = "\improper Brig Execution Room" +/area/almayer/shipboard/brig/execution_storage + name = "\improper Brig Execution Storage" + /area/almayer/shipboard/brig/cic_hallway name = "\improper Brig CiC Hallway" /area/almayer/shipboard/brig/dress name = "\improper CIC Dress Uniform Room" + /area/almayer/shipboard/brig/processing name = "\improper Brig Processing and Holding" @@ -296,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" @@ -311,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" @@ -322,79 +314,66 @@ soundscape_playlist = SCAPE_PL_HANGAR soundscape_interval = 50 -/area/almayer/hallways/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/lower + fake_zlevel = 2 // lowerdeck -/area/almayer/hallways/exoarmor - name = "\improper Lower Deck Vehicle Armor Storage" +/area/almayer/hallways/lower/vehiclehangar + name = "\improper Lower Deck Vehicle 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 - name = "\improper Upper Deck Aft Hallway" - icon_state = "aft" - fake_zlevel = 1 // upperdeck +//port +/area/almayer/hallways/lower/port_fore_hallway + name = "\improper Lower Deck Port-Fore Hallway" + icon_state = "port" -/area/almayer/hallways/stern_hallway - name = "\improper Upper Deck Stern Hallway" - icon_state = "stern" - fake_zlevel = 1 // upperdeck +/area/almayer/hallways/lower/port_midship_hallway + name = "\improper Lower Deck Port-Midship Hallway" + icon_state = "port" -/area/almayer/hallways/port_hallway - name = "\improper Lower Deck Port Hallway" +/area/almayer/hallways/lower/port_aft_hallway + name = "\improper Lower Deck Port-Aft Hallway" icon_state = "port" - fake_zlevel = 2 // lowerdeck -/area/almayer/hallways/starboard_hallway - name = "\improper Lower Deck Starboard Hallway" +//starboard +/area/almayer/hallways/lower/starboard_fore_hallway + name = "\improper Lower Deck Starboard-Fore Hallway" icon_state = "starboard" - fake_zlevel = 2 // lowerdeck -//new hallways areas +/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" + +/area/almayer/hallways/upper/fore_hallway + name = "\improper Upper Deck Fore Hallway" + icon_state = "stern" + +/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" @@ -403,6 +382,7 @@ name = "\improper Upper Deck Starboard Hallway" icon_state = "starboard" +//area that are used for transition between decks. /area/almayer/stair_clone name = "\improper Lower Deck Stairs" icon_state = "stairs_lowerdeck" @@ -414,61 +394,147 @@ icon_state = "stairs_upperdeck" fake_zlevel = 1 // upperdeck -// hull areas. +// maintenance areas -// lower deck hull 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/maint/lower/constr + name = "\improper Lower Deck Construction Site" -/area/almayer/hull/lower_hull +/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/maint/upper/mess + name = "\improper Upper Deck Mess Maintenance" + +/area/almayer/maint/upper/u_m_p + name = "\improper Upper Deck Port-Midship Maintenance" + +/area/almayer/maint/upper/u_m_s + name = "\improper Upper Deck Starboard-Midship Maintenance" + +/area/almayer/maint/upper/u_f_p + name = "\improper Upper Deck Port-Fore Maintenance" + +/area/almayer/maint/upper/u_f_s + name = "\improper Upper Deck Starboard-Fore Maintenance" + +/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 + +// lower deck hull areas +/area/almayer/maint/hull/lower name = "\improper Lower Deck Hull" icon_state = "lowerhull" fake_zlevel = 2 // lowerdeck +// stairs. -/area/almayer/hull/lower_hull/stern +/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/hull/lower_hull/l_f_s +/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" -/area/almayer/hull/lower_hull/l_m_s +/area/almayer/maint/hull/lower/l_m_s name = "\improper Lower Deck Starboard-Midship Hull" -/area/almayer/hull/lower_hull/l_a_s - name = "\improper Lower Deck Starboard Hull" +/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" -/area/almayer/hull/lower_hull/l_m_p +/area/almayer/maint/hull/lower/l_m_p name = "\improper Lower Deck Port-Midship Hull" -/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/hull/upper_hull +/area/almayer/maint/hull/upper name = "\improper Upper Deck Hull" icon_state = "upperhull" fake_zlevel = 1 // upperdeck -/area/almayer/hull/upper_hull/u_f_s - name = "\improper Upper Deck Fore-Starboard Hull" +// 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/hull/upper_hull/u_m_s +/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/hull/upper_hull/u_a_s +/area/almayer/maint/hull/upper/u_a_s name = "\improper Upper Deck Starboard-Aft Hull" -/area/almayer/hull/upper_hull/u_f_p +/area/almayer/maint/hull/upper/u_f_p name = "\improper Upper Deck Port-Fore Hull" -/area/almayer/hull/upper_hull/u_m_p +/area/almayer/maint/hull/upper/u_m_p name = "\improper Upper Deck Port-Midship Hull" -/area/almayer/hull/upper_hull/u_a_p +/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" icon_state = "cryo" @@ -642,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" @@ -746,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 32aed5684dfd..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 @@ -104,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) 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/atoms.dm b/code/game/atoms.dm index 5f36b3b8b390..f2ae11425f42 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -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 /** diff --git a/code/game/camera_manager/camera_manager.dm b/code/game/camera_manager/camera_manager.dm index 450c7c8beb64..95292830d49b 100644 --- a/code/game/camera_manager/camera_manager.dm +++ b/code/game/camera_manager/camera_manager.dm @@ -89,6 +89,7 @@ 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() . = ..() @@ -99,6 +100,7 @@ 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 @@ -113,6 +115,13 @@ 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 diff --git a/code/game/cas_manager/datums/cas_fire_envelope.dm b/code/game/cas_manager/datums/cas_fire_envelope.dm index d9355cd005a9..cc38b034c764 100644 --- a/code/game/cas_manager/datums/cas_fire_envelope.dm +++ b/code/game/cas_manager/datums/cas_fire_envelope.dm @@ -259,7 +259,20 @@ mission_error = "Target is off bounds or obstructed." return change_current_loc(target_turf) - playsound(target_turf, soundeffect, 70, TRUE, 50) + playsound(source = target_turf, soundin = soundeffect, vol = 70, vary = TRUE, sound_range = 50, falloff = 8) + + for(var/mob/mob in range(15, target_turf)) + var/ds_identifier = "LARGE BIRD" + var/fm_identifier = "SPIT FIRE" + if (mob.mob_flags & KNOWS_TECHNOLOGY) + ds_identifier = "DROPSHIP" + fm_identifier = "FIRE" + + 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 \ + ) + sleep(flyto_period) stat = FIRE_MISSION_STATE_FIRING mission.execute_firemission(linked_console, target_turf, dir, fire_length, step_delay, src) @@ -311,10 +324,10 @@ /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 + flyto_period = 4 SECONDS //sleep in the FM itself has been increased by one more second + flyoff_period = 5 SECONDS + cooldown_period = 10 SECONDS soundeffect = 'sound/weapons/dropship_sonic_boom.ogg' //BOOM~WOOOOOSH~HSOOOOOW~BOOM step_delay = 3 max_offset = 12 diff --git a/code/game/cas_manager/datums/cas_fire_mission.dm b/code/game/cas_manager/datums/cas_fire_mission.dm index ece78042ac25..927dded210f0 100644 --- a/code/game/cas_manager/datums/cas_fire_mission.dm +++ b/code/game/cas_manager/datums/cas_fire_mission.dm @@ -38,9 +38,9 @@ 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/weap, fire_length) +/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 = weap + record.weapon = weapon record.offsets = new /list(fire_length) for(var/idx = 1; idx<=fire_length; idx++) record.offsets[idx] = "-" @@ -53,24 +53,24 @@ // 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/weap in weapons) - if(record.weapon == weap) + 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/weap in weapons) + 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 == weap) + if(record.weapon == weapon) found=TRUE break if(!found) - missing_weapons.Add(weap) + missing_weapons.Add(weapon) for(var/datum/cas_fire_mission_record/record in bad_records) records -= record - for(var/obj/structure/dropship_equipment/weapon/weap in missing_weapons) - build_new_record(weap, fire_length) + 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) @@ -176,35 +176,35 @@ 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) + for(var/mob/mob in range(15, initial_turf)) + if(get_turf(mob) == initial_turf) relative_dir = 0 else - relative_dir = Get_Compass_Dir(M, initial_turf) + relative_dir = Get_Compass_Dir(mob, initial_turf) var/ds_identifier = "LARGE BIRD" - if (M.mob_flags & KNOWS_TECHNOLOGY) + if (mob.mob_flags & KNOWS_TECHNOLOGY) ds_identifier = "DROPSHIP" - M.show_message( \ + 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 \ ) // Xenos have time to react to the first message - sleep(0.5 SECONDS) + sleep(1.5 SECONDS) - for(var/mob/M in range(10, initial_turf)) - if(get_turf(M) == initial_turf) + for(var/mob/mob in range(10, initial_turf)) + if(get_turf(mob) == initial_turf) relative_dir = 0 else - relative_dir = Get_Compass_Dir(M, initial_turf) + relative_dir = Get_Compass_Dir(mob, initial_turf) var/ds_identifier = "LARGE BIRD" - if (M.mob_flags & KNOWS_TECHNOLOGY) + if (mob.mob_flags & KNOWS_TECHNOLOGY) ds_identifier = "DROPSHIP" - M.show_message( \ + mob.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 \ ) @@ -243,8 +243,8 @@ 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 af66052ddf05..400acdcb122a 100644 --- a/code/game/gamemodes/cm_initialize.dm +++ b/code/game/gamemodes/cm_initialize.dm @@ -259,10 +259,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(possible_xenomorphs.len < 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 @@ -325,11 +325,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) @@ -385,34 +385,49 @@ Additional game mode variables. 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(!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 @@ -672,9 +687,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 +710,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.")) @@ -934,7 +952,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) @@ -1006,10 +1024,14 @@ Additional game mode variables. 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(joe_candidate.client) == WHITELIST_NORMAL) diff --git a/code/game/gamemodes/colonialmarines/colonialmarines.dm b/code/game/gamemodes/colonialmarines/colonialmarines.dm index 3e719168f350..a66403fc00f5 100644 --- a/code/game/gamemodes/colonialmarines/colonialmarines.dm +++ b/code/game/gamemodes/colonialmarines/colonialmarines.dm @@ -21,7 +21,7 @@ //////////////////////////////////////////////////////////////////////////////////////// /* Pre-pre-startup */ -/datum/game_mode/colonialmarines/can_start() +/datum/game_mode/colonialmarines/can_start(bypass_checks = FALSE) initialize_special_clamps() return TRUE @@ -265,7 +265,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) @@ -332,7 +332,7 @@ 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 - if (HS.totalXenos <= 3) + if(length(HS.totalXenos) <= 3) round_finished = MODE_INFESTATION_M_MAJOR else round_finished = MODE_INFESTATION_M_MINOR @@ -372,10 +372,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 diff --git a/code/game/gamemodes/colonialmarines/whiskey_outpost.dm b/code/game/gamemodes/colonialmarines/whiskey_outpost.dm index 7b7ca73972bf..c5b25d3e1538 100644 --- a/code/game/gamemodes/colonialmarines/whiskey_outpost.dm +++ b/code/game/gamemodes/colonialmarines/whiskey_outpost.dm @@ -20,7 +20,7 @@ /datum/job/command/bridge/whiskey = JOB_SO, /datum/job/command/tank_crew/whiskey = JOB_CREWMAN, /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,7 +194,7 @@ 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) @@ -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...")) 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 1ec07b9d8fec..609a70f1dd3b 100644 --- a/code/game/gamemodes/colonialmarines/whiskey_outpost/whiskey_output_waves.dm +++ b/code/game/gamemodes/colonialmarines/whiskey_outpost/whiskey_output_waves.dm @@ -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..d287709d5516 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() @@ -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 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/infection.dm b/code/game/gamemodes/extended/infection.dm index 58d92355269d..e2c34f9aa16c 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() diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 3bb8c2d80123..1803d7ac127c 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() 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/civilians/other/survivors.dm b/code/game/jobs/job/civilians/other/survivors.dm index a85731aa781a..71dd5f1b96e8 100644 --- a/code/game/jobs/job/civilians/other/survivors.dm +++ b/code/game/jobs/job/civilians/other/survivors.dm @@ -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!")) 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/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/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/machinery/ARES/ARES_interface.dm b/code/game/machinery/ARES/ARES_interface.dm index aa1cd92547ec..341e6a05acf4 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 @@ -183,6 +183,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 +214,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,19 +229,19 @@ . = ..() 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) @@ -239,7 +252,7 @@ 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 +260,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 +288,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 +330,18 @@ 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" // -- 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 +364,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 +397,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,36 +412,36 @@ // -- 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_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", "[last_login] has called for general quarters via ARES.") 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_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", "[last_login] has called for an emergency evacuation via ARES.") . = TRUE @@ -416,27 +449,27 @@ 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 +477,50 @@ 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]")) + 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", "[last_login] has sent a request for nuclear ordnance for the following reason: [reason]") 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", "[last_login] released Nerve Gas from Vent '[sec_vent.vent_tag]'.") + 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(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..586b01a51af9 --- /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", "[MAIN_AI_SYSTEM] released Nerve Gas from Vent '[sec_vent.vent_tag]'.") + 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..48fcad588574 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,12 +158,12 @@ return var/playsound = TRUE - var/mob/living/carbon/human/operator = usr + var/mob/living/carbon/human/operator = ui.user switch (action) if("go_back") if(!last_menu) - return to_chat(usr, SPAN_WARNING("Error, no previous page detected.")) + return to_chat(operator, SPAN_WARNING("Error, no previous page detected.")) var/temp_holder = current_menu current_menu = last_menu last_menu = temp_holder @@ -197,6 +213,12 @@ 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 @@ -223,6 +245,8 @@ link.tickets_maintenance += maint_ticket if(priority_report) ares_apollo_talk("Priority Maintenance Report: [maint_type] - ID [maint_ticket.ticket_id]. Seek and resolve.") + else + send_notifcation() log_game("ARES: Maintenance Ticket '\ref[maint_ticket]' created by [key_name(operator)] 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(operator, "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(operator, "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(operator, 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(operator, 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(operator, 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(operator, "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,7 +306,9 @@ 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(operator, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice].")) return TRUE if("new_access") @@ -328,8 +356,6 @@ 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 @@ -353,11 +379,9 @@ 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) @@ -366,8 +390,6 @@ 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) @@ -382,22 +404,48 @@ 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(operator, 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(operator, 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(operator, 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(operator, SPAN_WARNING("ERROR: Insufficient gas reserve for this vent.")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + to_chat(operator, 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", "[last_login] released Nerve Gas from Vent '[sec_vent.vent_tag]'.") + sec_vent.create_gas(VENT_GAS_CN20_XENO, 6, 5 SECONDS) + log_admin("[key_name(operator)] released nerve gas from Vent '[sec_vent.vent_tag]' via ARES.") + if(playsound) playsound(src, "keyboard_alt", 15, 1) -/obj/item/card/id/proc/handle_ares_access(logged_in, mob/user) +/obj/item/card/id/proc/handle_ares_access(logged_in = MAIN_AI_SYSTEM, mob/user) var/operator = 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)" + operator = "[MAIN_AI_SYSTEM] (Automated)" else operator = "[user.ckey]/([MAIN_AI_SYSTEM])" if(ACCESS_MARINE_AI_TEMP in access) @@ -405,10 +453,18 @@ link.active_ids -= src modification_log += "Temporary AI access revoked by [operator]" 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]" 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 ffcea5406856..05f110ec1a0c 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,24 +101,15 @@ 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 - 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() - ..() - - // ------ ARES Logging Procs ------ // /proc/ares_is_active() for(var/mob/living/silicon/decoy/ship_ai/ai in GLOB.ai_mob_list) @@ -131,11 +165,11 @@ GLOBAL_LIST_INIT(maintenance_categories, list( 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) if(!ares_can_log()) @@ -166,6 +200,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 ------ // @@ -179,9 +223,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 @@ -196,43 +240,58 @@ 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 ------ // 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/apollo_pda.dm b/code/game/machinery/ARES/apollo_pda.dm index 8df3faf79260..e447bb6f7ee7 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,12 +181,12 @@ return var/playsound = TRUE - var/mob/living/carbon/human/operator = usr + var/mob/living/carbon/human/operator = ui.user switch (action) if("go_back") if(!last_menu) - return to_chat(usr, SPAN_WARNING("Error, no previous page detected.")) + return to_chat(operator, SPAN_WARNING("Error, no previous page detected.")) var/temp_holder = current_menu current_menu = last_menu last_menu = temp_holder @@ -222,6 +239,12 @@ 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 @@ -248,6 +271,8 @@ link.tickets_maintenance += maint_ticket if(priority_report) ares_apollo_talk("Priority Maintenance Report: [maint_type] - ID [maint_ticket.ticket_id]. Seek and resolve.") + else + send_notifcation() log_game("ARES: Maintenance Ticket '\ref[maint_ticket]' created by [key_name(operator)] 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(operator, "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(operator, "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(operator, 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(operator, 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(operator, 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(operator, "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,7 +332,9 @@ 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(operator, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice].")) return TRUE if("new_access") @@ -353,8 +382,6 @@ 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 @@ -381,8 +408,6 @@ 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) @@ -391,8 +416,6 @@ 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) @@ -407,13 +430,39 @@ 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(operator, 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(operator, 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(operator, 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(operator, SPAN_WARNING("ERROR: Insufficient gas reserve for this vent.")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + to_chat(operator, 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", "[last_login] released Nerve Gas from Vent '[sec_vent.vent_tag]'.") + sec_vent.create_gas(VENT_GAS_CN20_XENO, 6, 5 SECONDS) + log_admin("[key_name(operator)] released nerve gas from Vent '[sec_vent.vent_tag]' via ARES.") + if(playsound) var/sound = pick('sound/machines/pda_button1.ogg', 'sound/machines/pda_button2.ogg') playsound(src, sound, 15, TRUE) diff --git a/code/game/machinery/air_alarm.dm b/code/game/machinery/air_alarm.dm index 88b4ab899112..7eccb51c0660 100644 --- a/code/game/machinery/air_alarm.dm +++ b/code/game/machinery/air_alarm.dm @@ -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: " diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 6ccb0b5b18f7..97a25bf7d20a 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -79,7 +79,7 @@ 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) + QDEL_NULL(I) //Create parts for lathe. for(var/component in components) @@ -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]" diff --git a/code/game/machinery/autolathe_datums.dm b/code/game/machinery/autolathe_datums.dm index e11fc2d4844d..01a40b3638f6 100644 --- a/code/game/machinery/autolathe_datums.dm +++ b/code/game/machinery/autolathe_datums.dm @@ -409,7 +409,7 @@ 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 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/camera/camera.dm b/code/game/machinery/camera/camera.dm index 7df52bd408c5..6943544e30d4 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,6 +37,10 @@ /// 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, ...) . = ..() @@ -60,6 +63,24 @@ GLOBAL_LIST_EMPTY_TYPED(all_cameras, /obj/structure/machinery/camera) 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 . = ..() @@ -278,6 +299,22 @@ GLOBAL_LIST_EMPTY_TYPED(all_cameras, /obj/structure/machinery/camera) 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/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/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/almayer_control.dm b/code/game/machinery/computer/almayer_control.dm index d38ccd725785..1f3338e15bf7 100644 --- a/code/game/machinery/computer/almayer_control.dm +++ b/code/game/machinery/computer/almayer_control.dm @@ -193,6 +193,19 @@ . = TRUE if("ship_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.wear_id + 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(!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.")) return FALSE @@ -201,12 +214,8 @@ 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) diff --git a/code/game/machinery/computer/camera_console.dm b/code/game/machinery/computer/camera_console.dm index 120a1f9ccc2e..1e2cb427cab4 100644 --- a/code/game/machinery/computer/camera_console.dm +++ b/code/game/machinery/computer/camera_console.dm @@ -13,57 +13,36 @@ 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 - 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_NULL(cam_background) - QDEL_NULL_LIST(cam_plane_masters) + 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) @@ -90,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) @@ -103,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() @@ -125,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) @@ -159,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) @@ -207,21 +146,16 @@ // 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() @@ -269,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 77c9bbacc293..beed3610b53f 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -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.wear_id + 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(usr.client.prefs.muted & MUTE_IC) to_chat(usr, SPAN_DANGER("You cannot send Announcements (muted).")) return diff --git a/code/game/machinery/computer/groundside_operations.dm b/code/game/machinery/computer/groundside_operations.dm index 0fd843008e24..52ff558cde89 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,98 +110,94 @@ "} - 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/tl_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) + + 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(!H.key || !H.client) - SSD_count++ - continue - 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]" - switch(role) - if(JOB_SQUAD_LEADER) - leader_text += marine_infos - if(JOB_SQUAD_TEAM_LEADER) - tl_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 + tl_text + spec_text + medic_text + engi_text + smart_text + marine_text + misc_text - dat += "
NameRoleStateLocation
" - dat += "

" - dat += "Refresh
" + if(!is_ground_level(M_turf.z)) + almayer_count++ + continue + + 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) @@ -210,6 +212,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.wear_id + 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(usr.client.prefs.muted & MUTE_IC) to_chat(usr, SPAN_DANGER("You cannot send Announcements (muted).")) return @@ -259,23 +274,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()) @@ -295,6 +318,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.wear_id + 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 + var/reason = strip_html(input(usr, "What is the purpose of Echo Squad?", "Activation Reason")) if(!reason) return @@ -353,3 +389,5 @@ lz_selection = FALSE has_squad_overwatch = FALSE minimap_type = MINIMAP_FLAG_PMC + +#undef COMMAND_SQUAD diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 319a4c04e5d1..4138d89908d4 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -436,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) @@ -529,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 2cbc4e82d3e9..cc4d93f5a24c 100644 --- a/code/game/machinery/computer/skills.dm +++ b/code/game/machinery/computer/skills.dm @@ -301,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) @@ -357,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/cryo.dm b/code/game/machinery/cryo.dm index afcc9686cff5..5a328386c95d 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 @@ -116,13 +120,14 @@ 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,59 @@ 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/obj/item/grab/grabber = W + if(!ismob(grabber.grabbed_thing)) return - var/mob/M = G.grabbed_thing - put_mob(M) + 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() - 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 + 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 +233,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 +283,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 +363,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 +378,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 69c2c897e276..1793b87c72ae 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -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 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/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 e7437aa9ca2b..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 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/multi_tile.dm b/code/game/machinery/doors/multi_tile.dm index 0a179af27803..1e7fcbf40155 100644 --- a/code/game/machinery/doors/multi_tile.dm +++ b/code/game/machinery/doors/multi_tile.dm @@ -241,10 +241,43 @@ 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)) @@ -258,13 +291,31 @@ if(!queen_pryable) return ..() - if(!locked) - return ..() - - to_chat(xeno, SPAN_NOTICE("You try and force the doors open")) + if(xeno.action_busy) + 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 +387,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 +620,3 @@ icon = 'icons/obj/structures/doors/2x1almayerdoor_glass.dmi' opacity = FALSE glass = 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 100% rename from code/game/machinery/doors/shutters.dm rename to code/game/machinery/doors/poddoor/shutters/shutters.dm diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor/two_tile.dm similarity index 50% rename from code/game/machinery/doors/poddoor.dm rename to code/game/machinery/doors/poddoor/two_tile.dm index 0a3b873ce385..f04435bbe2ae 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor/two_tile.dm @@ -1,114 +1,25 @@ +/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 - 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/two_tile/opened + density = FALSE -/obj/structure/machinery/door/poddoor/Initialize() +/obj/structure/machinery/door/poddoor/two_tile/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 + 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/finish_close() - operating = FALSE +/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 @@ -179,29 +90,6 @@ 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' @@ -238,13 +126,6 @@ /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 @@ -273,47 +154,3 @@ 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/fax_machine.dm b/code/game/machinery/fax_machine.dm index ce374b7bfb2a..b3c981a0cf71 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") @@ -386,10 +408,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 +438,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 +515,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/fuelcell_recycler.dm b/code/game/machinery/fuelcell_recycler.dm index 697d7385a012..52c01beaf6fe 100644 --- a/code/game/machinery/fuelcell_recycler.dm +++ b/code/game/machinery/fuelcell_recycler.dm @@ -1,144 +1,220 @@ /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/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() + +/obj/structure/machinery/fuelcell_recycler/attack_hand(mob/user) + if(!cell_left && !cell_right) + to_chat(user, SPAN_NOTICE("[src] is empty.")) + return - if(cell_right == null) - cell_left.update_icon() - M.put_in_hands(cell_left) + 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" - - src.overlays += overlay_builder - src.overlays += "recycler-left-cell" - src.overlays += "recycler-right-cell" +/obj/structure/machinery/fuelcell_recycler/ex_act(severity) + if(indestructible) return + . = ..() + +/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) + +/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 round(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/kitchen/gibber.dm b/code/game/machinery/kitchen/gibber.dm index 3fa96ca0bc3a..4b68b397116e 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,38 @@ 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() + occupant.death(create_cause_data("gibber", user), TRUE) + occupant.ghostize() - QDEL_NULL(occupant) + 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(create_gibs), totalslabs, allmeat), gibtime) + addtimer(CALLBACK(src, PROC_REF(go_out), TRUE), gibtime) + return - addtimer(CALLBACK(src, PROC_REF(create_gibs), totalslabs, allmeat), gibtime) + 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/processor.dm b/code/game/machinery/kitchen/processor.dm index a18f5db8af43..4918df4d9a5b 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 @@ -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() diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 88055a89f82b..f835ecaa424c 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -254,6 +254,10 @@ Class Procs: 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 @@ -351,3 +355,72 @@ Class Procs: 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/sleeper.dm b/code/game/machinery/medical_pod/sleeper.dm index 84ef2f579ba1..5868df901c6a 100644 --- a/code/game/machinery/medical_pod/sleeper.dm +++ b/code/game/machinery/medical_pod/sleeper.dm @@ -208,6 +208,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 diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index d9aa42dbd1f1..96e1635bb0b8 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -1,742 +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 - - -//######################################################################################################################## -//###################################### NEWSPAPER! ###################################################################### -//######################################################################################################################## /obj/item/newspaper name = "newspaper" @@ -745,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 aac4f82ccff1..2194fe2e7e7c 100644 --- a/code/game/machinery/nuclearbomb.dm +++ b/code/game/machinery/nuclearbomb.dm @@ -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 diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index e87bb56da489..d86a5c0e30d0 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, ...) @@ -183,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" diff --git a/code/game/machinery/telecomms/presets.dm b/code/game/machinery/telecomms/presets.dm index c97a28932262..459eddc4a544 100644 --- a/code/game/machinery/telecomms/presets.dm +++ b/code/game/machinery/telecomms/presets.dm @@ -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 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/vending/cm_vending.dm b/code/game/machinery/vending/cm_vending.dm index 5568a5fda600..c7443130b247 100644 --- a/code/game/machinery/vending/cm_vending.dm +++ b/code/game/machinery/vending/cm_vending.dm @@ -373,41 +373,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 +516,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) @@ -528,8 +541,11 @@ GLOBAL_LIST_EMPTY(vending_products) 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,7 +570,7 @@ 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 + var/obj/item/card/id/ID = human_user.wear_id if(!istype(ID) || !ID.check_biometrics(user)) to_chat(user, SPAN_WARNING("You must be wearing your [SPAN_INFO("dog tags")] to select a specialization!")) return FALSE @@ -566,6 +582,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,10 +597,10 @@ 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])") + ID.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), ID.assignment) GLOB.available_specialist_sets -= p_name else if(vendor_role.Find(JOB_SYNTH)) @@ -772,6 +793,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) @@ -900,7 +923,7 @@ GLOBAL_LIST_EMPTY(vending_products) 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(vendspec[2] * scale, 1) // Starting amount //Record the multiplier and how many have actually been given out dynamic_stock_multipliers[vendspec] = list(vendspec[2], awarded) vendspec[2] = awarded // Override starting amount @@ -920,8 +943,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 @@ -985,12 +1008,16 @@ GLOBAL_LIST_EMPTY(vending_products) to_chat(user, SPAN_WARNING("\The [item_to_stock] needs to be fully charged to restock it!")) return - if(istype(item_to_stock, /obj/item/cell)) + else 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(!additional_restock_checks(item_to_stock, user)) + // 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) item_to_stock.unwield(user) @@ -1008,6 +1035,10 @@ GLOBAL_LIST_EMPTY(vending_products) updateUsrDialog() return //We found our item, no reason to go on. +/// 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) + 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 /obj/structure/machinery/cm_vending/sorted/proc/return_corresponding_type(unusual_path) @@ -1275,12 +1306,15 @@ 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 + //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(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 diff --git a/code/game/machinery/vending/vending_types.dm b/code/game/machinery/vending/vending_types.dm index 0a7b85cae7e2..92ba81af4d94 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 @@ -407,7 +412,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 @@ -436,6 +441,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) @@ -463,6 +472,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..af519a908ee6 100644 --- a/code/game/machinery/vending/vendor_types/crew/medical.dm +++ b/code/game/machinery/vending/vendor_types/crew/medical.dm @@ -32,28 +32,39 @@ 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("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("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("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 +98,40 @@ 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("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 +165,42 @@ 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("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 +237,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 +251,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/senior_officers.dm b/code/game/machinery/vending/vendor_types/crew/senior_officers.dm index 9d9c519c285f..a5d3cbe85b01 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,63 @@ 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("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,9 +291,24 @@ 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, + ) diff --git a/code/game/machinery/vending/vendor_types/crew/synthetic.dm b/code/game/machinery/vending/vendor_types/crew/synthetic.dm index 2395d572bad7..a55285369e14 100644 --- a/code/game/machinery/vending/vendor_types/crew/synthetic.dm +++ b/code/game/machinery/vending/vendor_types/crew/synthetic.dm @@ -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), @@ -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), @@ -183,10 +188,12 @@ 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, 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,6 +212,7 @@ 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("Working Joe Uniform", 36, /obj/item/clothing/under/rank/synthetic/joe, null, VENDOR_ITEM_REGULAR), @@ -237,6 +245,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), @@ -303,6 +312,7 @@ 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), diff --git a/code/game/machinery/vending/vendor_types/engineering.dm b/code/game/machinery/vending/vendor_types/engineering.dm index 245e06009695..826f4431235b 100644 --- a/code/game/machinery/vending/vendor_types/engineering.dm +++ b/code/game/machinery/vending/vendor_types/engineering.dm @@ -92,6 +92,7 @@ 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), diff --git a/code/game/machinery/vending/vendor_types/intelligence_officer.dm b/code/game/machinery/vending/vendor_types/intelligence_officer.dm index 6446d17e2db7..9baa685032de 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), @@ -68,6 +74,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_intelligence_officer, list( list("ARMOR (CHOOSE 1)", 0, null, null, null), 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), diff --git a/code/game/machinery/vending/vendor_types/medical.dm b/code/game/machinery/vending/vendor_types/medical.dm index 7073dc383dcd..a867c9b61f29 100644 --- a/code/game/machinery/vending/vendor_types/medical.dm +++ b/code/game/machinery/vending/vendor_types/medical.dm @@ -1,10 +1,60 @@ +//------------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" + anchored = TRUE + density = FALSE + unslashable = TRUE + unacidable = TRUE + plane = FLOOR_PLANE + layer = ABOVE_TURF_LAYER //It's the floor, man + +/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" + +// --- Green +/obj/structure/medical_supply_link/green + icon_state = "medlink_green_unclamped" + base_state = "medlink_green" + //------------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)." icon_state = "med" - req_access = list(ACCESS_MARINE_MEDBAY, ACCESS_MARINE_CHEMISTRY) + req_access = list(ACCESS_MARINE_MEDBAY) unacidable = TRUE unslashable = FALSE @@ -14,6 +64,9 @@ vendor_theme = VENDOR_THEME_COMPANY vend_delay = 0.5 SECONDS + /// sets vendor to require a medlink to be able to resupply + var/requires_supply_link_port = TRUE + var/datum/health_scan/last_health_display var/healthscan = TRUE @@ -60,6 +113,36 @@ 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.") +/// 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) + if(istype(item_to_stock, /obj/item/reagent_container/hypospray/autoinjector) || istype(item_to_stock, /obj/item/reagent_container/glass/bottle)) + if(requires_supply_link_port && !get_supply_link()) + var/obj/item/reagent_container/container = item_to_stock + if(container.reagents.total_volume < container.reagents.maximum_volume) + if(user) + to_chat(user, SPAN_WARNING("[src] makes a buzzing noise as it rejects [container.name]. Looks like this vendor cannot refill these without a connected supply link.")) + playsound(src, 'sound/machines/buzz-sigh.ogg', 15, TRUE) + return FALSE + + //stacked items handling if the vendor cannot restock partial stacks + else if(istype(item_to_stock, /obj/item/stack)) + if(requires_supply_link_port && !get_supply_link()) + var/obj/item/stack/restock_stack = item_to_stock + if(restock_stack.amount < restock_stack.max_amount) // if the stack is not full + if(user) + to_chat(user, SPAN_WARNING("[src] makes a buzzing noise as it rejects [restock_stack]. Looks like this vendor cannot restock these without a connected supply link.")) + playsound(src, 'sound/machines/buzz-sigh.ogg', 15, TRUE) + return FALSE + return TRUE + /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(!hacked) @@ -80,6 +163,11 @@ to_chat(user, SPAN_WARNING("[src] makes a warning noise. The [C.name] is currently full.")) return + if(requires_supply_link_port && !get_supply_link()) + to_chat(user, SPAN_WARNING("[src] makes a buzzing noise as it rejects [C.name]. Looks like this vendor cannot refill these without a connected supply link.")) + playsound(src, 'sound/machines/buzz-sigh.ogg', 15, TRUE) + return + to_chat(user, SPAN_NOTICE("[src] makes a whirring noise as it refills your [C.name].")) // 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) @@ -104,6 +192,11 @@ to_chat(user, SPAN_WARNING("[src] makes a warning noise. The [S.name] is currently fully stacked.")) return + if(requires_supply_link_port && !get_supply_link()) + to_chat(user, SPAN_WARNING("[src] makes a buzzing noise as it rejects [S.name]. Looks like this vendor cannot restock these without a connected supply link.")) + playsound(src, 'sound/machines/buzz-sigh.ogg', 15, TRUE) + 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() @@ -132,40 +225,40 @@ /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", round(scale * 6), /obj/item/stack/medical/advanced/ointment, VENDOR_ITEM_REGULAR), + list("Trauma Kit", round(scale * 6), /obj/item/stack/medical/advanced/bruise_pack, VENDOR_ITEM_REGULAR), + list("Ointment", round(scale * 6), /obj/item/stack/medical/ointment, VENDOR_ITEM_REGULAR), + list("Roll of Gauze", round(scale * 6), /obj/item/stack/medical/bruise_pack, VENDOR_ITEM_REGULAR), + list("Splints", round(scale * 6), /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)", 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("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)", round(scale * 4), /obj/item/reagent_container/glass/bottle/bicaridine, VENDOR_ITEM_REGULAR), + list("Bottle (Dylovene)", round(scale * 4), /obj/item/reagent_container/glass/bottle/antitoxin, VENDOR_ITEM_REGULAR), + list("Bottle (Dexalin)", round(scale * 4), /obj/item/reagent_container/glass/bottle/dexalin, VENDOR_ITEM_REGULAR), + list("Bottle (Inaprovaline)", round(scale * 4), /obj/item/reagent_container/glass/bottle/inaprovaline, VENDOR_ITEM_REGULAR), + list("Bottle (Kelotane)", round(scale * 4), /obj/item/reagent_container/glass/bottle/kelotane, VENDOR_ITEM_REGULAR), + list("Bottle (Oxycodone)", round(scale * 4), /obj/item/reagent_container/glass/bottle/oxycodone, VENDOR_ITEM_REGULAR), + list("Bottle (Peridaxon)", round(scale * 4), /obj/item/reagent_container/glass/bottle/peridaxon, VENDOR_ITEM_REGULAR), + list("Bottle (Tramadol)", round(scale * 4), /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)", round(scale * 2), /obj/item/storage/pill_bottle/bicaridine, VENDOR_ITEM_REGULAR), + list("Pill Bottle (Dexalin)", round(scale * 2), /obj/item/storage/pill_bottle/dexalin, VENDOR_ITEM_REGULAR), + list("Pill Bottle (Dylovene)", round(scale * 2), /obj/item/storage/pill_bottle/antitox, VENDOR_ITEM_REGULAR), + list("Pill Bottle (Inaprovaline)", round(scale * 2), /obj/item/storage/pill_bottle/inaprovaline, VENDOR_ITEM_REGULAR), + list("Pill Bottle (Kelotane)", round(scale * 2), /obj/item/storage/pill_bottle/kelotane, VENDOR_ITEM_REGULAR), + list("Pill Bottle (Peridaxon)", round(scale * 1), /obj/item/storage/pill_bottle/peridaxon, VENDOR_ITEM_REGULAR), + list("Pill Bottle (Tramadol)", round(scale * 2), /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), @@ -183,6 +276,7 @@ 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 = list( @@ -220,6 +314,9 @@ /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() @@ -227,6 +324,7 @@ name = "\improper Medical Equipment Vendor" desc = "A vending machine dispensing various pieces of medical equipment." req_one_access = list(ACCESS_ILLEGAL_PIRATE, ACCESS_UPP_GENERAL, ACCESS_CLF_GENERAL) + requires_supply_link_port = FALSE req_access = null vendor_theme = VENDOR_THEME_CLF @@ -268,6 +366,7 @@ name = "\improper Basic Medical Supplies Vendor" desc = "A vending machine dispensing basic medical supplies." req_one_access = list(ACCESS_ILLEGAL_PIRATE, ACCESS_UPP_GENERAL, ACCESS_CLF_GENERAL) + requires_supply_link_port = FALSE req_access = null vendor_theme = VENDOR_THEME_CLF @@ -295,11 +394,15 @@ chem_refill = null stack_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) return /obj/structure/machinery/cm_vending/sorted/medical/blood/antag req_one_access = list(ACCESS_ILLEGAL_PIRATE, ACCESS_UPP_GENERAL, ACCESS_CLF_GENERAL) + requires_supply_link_port = FALSE req_access = null vendor_theme = VENDOR_THEME_CLF @@ -308,6 +411,7 @@ desc = "Wall-mounted Medical Equipment Dispenser." icon_state = "wallmed" vend_delay = 0.7 SECONDS + requires_supply_link_port = FALSE req_access = list() diff --git a/code/game/machinery/vending/vendor_types/requisitions.dm b/code/game/machinery/vending/vendor_types/requisitions.dm index 24f58c8f6ae3..6eb5a333ec81 100644 --- a/code/game/machinery/vending/vendor_types/requisitions.dm +++ b/code/game/machinery/vending/vendor_types/requisitions.dm @@ -41,6 +41,7 @@ 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("XM51 Breaching Scattergun", round(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), @@ -55,7 +56,7 @@ 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("M40 MFHS Metal Foam Grenade", round(scale * 6), /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), @@ -207,14 +208,14 @@ /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", round(scale * 40), /obj/item/ammo_magazine/shotgun/buckshot, VENDOR_ITEM_REGULAR), + list("Box Of Flechette Shells", round(scale * 40), /obj/item/ammo_magazine/shotgun/flechette, VENDOR_ITEM_REGULAR), + list("Box Of Shotgun Slugs", round(scale * 40), /obj/item/ammo_magazine/shotgun/slugs, VENDOR_ITEM_REGULAR), + list("M4RA Magazine (10x24mm)", round(scale * 60), /obj/item/ammo_magazine/rifle/m4ra, VENDOR_ITEM_REGULAR), + list("M41A MK2 Magazine (10x24mm)", round(scale * 100), /obj/item/ammo_magazine/rifle, VENDOR_ITEM_REGULAR), + list("M39 HV Magazine (10x20mm)", round(scale * 100), /obj/item/ammo_magazine/smg/m39, VENDOR_ITEM_REGULAR), + list("M44 Speed Loader (.44)", round(scale * 80), /obj/item/ammo_magazine/revolver, VENDOR_ITEM_REGULAR), + list("M4A3 Magazine (9mm)", round(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), @@ -244,11 +245,13 @@ 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("XM51 Magazine (16g)", round(scale * 3), /obj/item/ammo_magazine/rifle/xm51, 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("Shotgun Shell Box (Buckshot x 100)", round(scale * 4), /obj/item/ammo_box/magazine/shotgun/buckshot, VENDOR_ITEM_REGULAR), + list("Shotgun Shell Box (Flechette x 100)", round(scale * 4), /obj/item/ammo_box/magazine/shotgun/flechette, VENDOR_ITEM_REGULAR), + list("Shotgun Shell Box (Slugs x 100)", round(scale * 4), /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), ) /obj/structure/machinery/cm_vending/sorted/cargo_ammo/stock(obj/item/item_to_stock, mob/user) @@ -406,6 +409,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), 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 6d015c203bd7..998b17504a44 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/medium/leader, null, VENDOR_ITEM_REGULAR), - list("M4 Pattern Armor", 30, /obj/item/clothing/suit/storage/marine/medium/rto, 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), 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 6c7cbf2db740..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/medium/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), 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 6b4954ee5e92..b1961ae9e75b 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/medium/leader, null, VENDOR_ITEM_REGULAR), - list("M4 Pattern Armor", 28, /obj/item/clothing/suit/storage/marine/medium/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), 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 296bce8a9d8d..d3662c785890 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 @@ -130,6 +130,7 @@ 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 Chestrig", round(scale * 15), /obj/item/storage/backpack/marine/satchel/chestrig, 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), @@ -279,6 +280,7 @@ 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("Box of Breaching Shells (16g)", round(scale * 2), /obj/item/ammo_magazine/shotgun/light/breaching, 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), 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 15661cc4b661..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 @@ -67,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/medium/leader, null, VENDOR_ITEM_REGULAR), - list("M4 Pattern Armor", 30, /obj/item/clothing/suit/storage/marine/medium/rto, 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), 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 04061370168d..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 @@ -20,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), @@ -30,6 +42,7 @@ 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), 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 d9ba7ee97c26..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,6 +13,21 @@ 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), diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm index 7fa61c474ea1..311c2ebc7253 100644 --- a/code/game/objects/effects/aliens.dm +++ b/code/game/objects/effects/aliens.dm @@ -144,15 +144,12 @@ /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(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) 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/effect_system/chemsmoke.dm b/code/game/objects/effects/effect_system/chemsmoke.dm index 0c74912ceb25..55c38215415c 100644 --- a/code/game/objects/effects/effect_system/chemsmoke.dm +++ b/code/game/objects/effects/effect_system/chemsmoke.dm @@ -138,7 +138,7 @@ 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 / dist, permeable = FALSE) else if(istype(A, /obj)) R.reaction_obj(A, R.volume) sleep(30) diff --git a/code/game/objects/effects/effect_system/foam.dm b/code/game/objects/effects/effect_system/foam.dm index edee94cb3747..7a06fa50619c 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 = ((round((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..6e3869f563a4 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 @@ -240,9 +240,9 @@ if(isyautja(M) || isxeno(M)) burn_damage *= xeno_yautja_reduction + var/reagent = new /datum/reagent/napalm/ut() M.burn_skin(burn_damage) - M.adjust_fire_stacks(applied_fire_stacks) - M.fire_reagent = new /datum/reagent/napalm/ut() + M.adjust_fire_stacks(applied_fire_stacks, reagent) M.IgniteMob() M.updatehealth() @@ -316,7 +316,7 @@ if(xeno_affecting) stun_chance = 35 if(prob(stun_chance)) - creature.apply_effect(1, WEAKEN) + creature.apply_effect(2, WEAKEN) //Topical damage (neurotoxin on exposed skin) if(xeno_creature) 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/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 45cc6fd8b5fa..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) 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/spiders.dm b/code/game/objects/effects/spiders.dm index 69eababfe000..6a5d31010ef1 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 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 fcd431c33d26..fb0103876301 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 @@ -459,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].")) diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 5f58a3b1d292..31158d055327 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 @@ -243,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" @@ -269,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" diff --git a/code/game/objects/items/circuitboards/computer.dm b/code/game/objects/items/circuitboards/computer.dm index 08dcfc6964a6..ecdfba00719d 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 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 93bd1ad2b902..fc0b2892a111 100644 --- a/code/game/objects/items/circuitboards/robot_modules.dm +++ b/code/game/objects/items/circuitboards/robot_modules.dm @@ -9,8 +9,6 @@ name = "medic robot module" /obj/item/circuitboard/robot_module/engineering name = "engineering robot module" -/obj/item/circuitboard/robot_module/security - name = "security robot module" /obj/item/circuitboard/robot_module/janitor name = "janitorial robot module" /obj/item/circuitboard/robot_module/butler diff --git a/code/game/objects/items/devices/binoculars.dm b/code/game/objects/items/devices/binoculars.dm index a9b7706bcfb7..b39526e231b5 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 diff --git a/code/game/objects/items/devices/cictablet.dm b/code/game/objects/items/devices/cictablet.dm index 4d6db2f7772d..664054fb59e2 100644 --- a/code/game/objects/items/devices/cictablet.dm +++ b/code/game/objects/items/devices/cictablet.dm @@ -43,10 +43,10 @@ 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)) + if(src.allowed(user) && user.wear_id?.check_biometrics(user)) tgui_interact(user) else to_chat(user, SPAN_DANGER("Access denied.")) diff --git a/code/game/objects/items/devices/defibrillator.dm b/code/game/objects/items/devices/defibrillator.dm index 9da76b9d21b9..bbeb2046aff0 100644 --- a/code/game/objects/items/devices/defibrillator.dm +++ b/code/game/objects/items/devices/defibrillator.dm @@ -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 diff --git a/code/game/objects/items/devices/dummy_tablet.dm b/code/game/objects/items/devices/dummy_tablet.dm index d1036ebfa93b..3ce5f933ab94 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) diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 58e86998f39a..2af343c8de26 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. diff --git a/code/game/objects/items/devices/helmet_visors.dm b/code/game/objects/items/devices/helmet_visors.dm index 05d75a9fefd6..7b61df3291ef 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' @@ -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 @@ -290,6 +296,21 @@ 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 @@ -302,7 +323,7 @@ /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/motion_detector.dm b/code/game/objects/items/devices/motion_detector.dm index c26db692f082..7db2825deedf 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 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 da399192b713..8e7c8df1d9a7 100644 --- a/code/game/objects/items/devices/portable_vendor.dm +++ b/code/game/objects/items/devices/portable_vendor.dm @@ -267,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."), @@ -282,6 +285,7 @@ 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."), diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 9581f63679b9..00f0ad16220c 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 @@ -1013,7 +1013,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" @@ -1058,7 +1058,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/explosives/explosive.dm b/code/game/objects/items/explosives/explosive.dm index 4483372c9b85..cac5bd3d0b61 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 @@ -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) 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 70a2bba6056d..45065a2de1de 100644 --- a/code/game/objects/items/explosives/mine.dm +++ b/code/game/objects/items/explosives/mine.dm @@ -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 1d2986f79e55..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)) @@ -363,6 +366,9 @@ 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" 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/fulton.dm b/code/game/objects/items/fulton.dm index e36d269c8b90..664c7871ba7f 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) - var/middle_y = reservation.bottom_left_coords[2] + Floor((reservation.top_right_coords[2] - reservation.bottom_left_coords[2]) / 2) - 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/handheld_distress_beacon.dm b/code/game/objects/items/handheld_distress_beacon.dm index c11a7a57c350..5764604c9a2f 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 @@ -41,13 +41,13 @@ 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) @@ -62,5 +62,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/misc.dm b/code/game/objects/items/misc.dm index 1699cb24ef39..a7df88374b29 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) diff --git a/code/game/objects/items/props/helmetgarb.dm b/code/game/objects/items/props/helmetgarb.dm index bdf140ff11c3..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." diff --git a/code/game/objects/items/reagent_containers/food/snacks.dm b/code/game/objects/items/reagent_containers/food/snacks.dm index 3ae57723668f..293a71ca7c5d 100644 --- a/code/game/objects/items/reagent_containers/food/snacks.dm +++ b/code/game/objects/items/reagent_containers/food/snacks.dm @@ -55,7 +55,13 @@ return FALSE if(package) - to_chat(M, SPAN_WARNING("How do you expect to eat this with the package still on?")) + 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)) @@ -641,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." @@ -653,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 @@ -802,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 @@ -850,7 +862,6 @@ . = ..() reagents.add_reagent("bread", 3) reagents.add_reagent("meatprotein", 3) - reagents.add_reagent("xenoblood", 3) bitesize = 3 /obj/item/reagent_container/food/snacks/clownburger @@ -1070,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 @@ -1084,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 @@ -1133,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 @@ -1690,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 @@ -2172,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 @@ -2738,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() @@ -3289,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 @@ -3304,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/meat.dm b/code/game/objects/items/reagent_containers/food/snacks/meat.dm index f459d1b169ae..f541986112e5 100644 --- a/code/game/objects/items/reagent_containers/food/snacks/meat.dm +++ b/code/game/objects/items/reagent_containers/food/snacks/meat.dm @@ -28,7 +28,8 @@ name = "synthetic meat" desc = "A synthetic slab of flesh." -/obj/item/reagent_container/food/snacks/meat/synthmeat/synthflesh //meat made from synthetics. Slightly toxic +/// Meat made from synthetics. Slightly toxic +/obj/item/reagent_container/food/snacks/meat/synthmeat/synthflesh name = "synthetic flesh" desc = "A slab of artificial, inorganic 'flesh' that resembles human meat. Probably came from a synth." icon_state = "synthmeat" @@ -57,9 +58,16 @@ /obj/item/reagent_container/food/snacks/meat/xenomeat/Initialize() . = ..() - reagents.add_reagent("xenoblood", 3) + reagents.add_reagent("xenoblood", 6) src.bitesize = 6 +/obj/item/reagent_container/food/snacks/meat/xenomeat/processed + desc = "A slab of acrid smelling meat. This one has been processed to remove acid." + +/obj/item/reagent_container/food/snacks/meat/xenomeat/processed/Initialize() + . = ..() + reagents.remove_reagent("xenoblood", 6) + //fishable atoms meat // todo: rewrite this into a procgen'ed item when gutting fish? May be incompatible with recipe code if done that way and not hardcoded. /obj/item/reagent_container/food/snacks/meat/fish diff --git a/code/game/objects/items/reagent_containers/glass.dm b/code/game/objects/items/reagent_containers/glass.dm index 2a7bde748fba..e0f432bd5b09 100644 --- a/code/game/objects/items/reagent_containers/glass.dm +++ b/code/game/objects/items/reagent_containers/glass.dm @@ -217,17 +217,16 @@ overlays.Cut() if(reagents && reagents.total_volume) - var/image/filling = image('icons/obj/items/reagentfillings.dmi', src, "[icon_state]10") + var/image/filling = image('icons/obj/items/reagentfillings.dmi', src, "[icon_state]-20") var/percent = round((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 @@ -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" diff --git a/code/game/objects/items/reagent_containers/glass/bottle.dm b/code/game/objects/items/reagent_containers/glass/bottle.dm index 01eb751774e1..61cdee01c8f8 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) 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 5e268d35a33d..05b76568d702 100644 --- a/code/game/objects/items/reagent_containers/hypospray.dm +++ b/code/game/objects/items/reagent_containers/hypospray.dm @@ -237,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/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 f394758e5f7d..d984f01ae1be 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -107,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) @@ -259,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, \ @@ -281,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), \ diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index ab56882de6f0..f8a6af3cf24f 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -144,7 +144,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,7 +154,11 @@ 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) if(multiplier < 1) diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 29c4ec15d03a..4882db3b83ea 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) @@ -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." @@ -494,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 @@ -714,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/belt.dm b/code/game/objects/items/storage/belt.dm index 40953eb97395..1daffa2908f0 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -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." @@ -383,6 +406,13 @@ 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/handcuffs(src) /obj/item/storage/belt/security/MP/UPP name = "\improper Type 43 military police rig" @@ -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 @@ -1186,6 +1225,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." diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 8e4ffb90d2bd..4b7ecc4c5599 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -754,6 +754,18 @@ . = ..() isopened = 0 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(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) diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index f7ada8ce220c..5d7aecbc03db 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -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 @@ -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 06337995479f..201e34654624 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( @@ -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)" 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 3f653926f8b3..09885db34fc9 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 diff --git a/code/game/objects/items/storage/pouch.dm b/code/game/objects/items/storage/pouch.dm index 7369df548045..1b75a1a7d89d 100644 --- a/code/game/objects/items/storage/pouch.dm +++ b/code/game/objects/items/storage/pouch.dm @@ -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 @@ -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/tools/experimental_tools.dm b/code/game/objects/items/tools/experimental_tools.dm index 221aa279a53b..dad06367b43d 100644 --- a/code/game/objects/items/tools/experimental_tools.dm +++ b/code/game/objects/items/tools/experimental_tools.dm @@ -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. 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 2cff941be8d6..d6473b156a67 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 @@ -143,7 +143,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/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 06f42aacd56c..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 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 2e2725b52b81..a1792b574eec 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 @@ -201,6 +202,8 @@ icon_state = "bone-gel" 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 @@ -215,6 +218,22 @@ ///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 @@ -244,6 +263,7 @@ 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 @@ -257,14 +277,17 @@ 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 diff --git a/code/game/objects/items/toys/toys.dm b/code/game/objects/items/toys/toys.dm index 6fa420df35d5..91d8164dcf38 100644 --- a/code/game/objects/items/toys/toys.dm +++ b/code/game/objects/items/toys/toys.dm @@ -396,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/shields.dm b/code/game/objects/items/weapons/shields.dm index 0497a410a373..92400e2d3184 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 diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index ac500de57a93..2362a70e6e1e 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. @@ -58,37 +58,6 @@ 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,13 +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 - - 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) @@ -150,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) 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..36e0ea702a95 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) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 8a37eef3ee73..66b41fff9127 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -142,31 +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 (isSilicon(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) - in_use = is_in_use + 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 @@ -200,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 . = ..() @@ -269,7 +280,7 @@ 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)) @@ -292,10 +303,10 @@ 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) + if ((M.mob_size > MOB_SIZE_HUMAN)) to_chat(user, SPAN_WARNING("[M] is too big to buckle in.")) return do_buckle(M, user) diff --git a/code/game/objects/prop.dm b/code/game/objects/prop.dm index c067a9730e70..ac94e8ab03b4 100644 --- a/code/game/objects/prop.dm +++ b/code/game/objects/prop.dm @@ -89,6 +89,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 0a37e4bcec59..edb13ac16e5a 100644 --- a/code/game/objects/structures/barricade/barricade.dm +++ b/code/game/objects/structures/barricade/barricade.dm @@ -5,21 +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. - var/wire_icon = 'icons/obj/structures/barricades.dmi' //! Icon file used for the wiring + /// ! 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 @@ -35,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) . = ..() @@ -324,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 @@ -357,9 +366,8 @@ 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))) @@ -378,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() @@ -466,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..ca35f82bdde5 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 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/blocker.dm b/code/game/objects/structures/blocker.dm index f85b1e65fff5..33f79d7e9d32 100644 --- a/code/game/objects/structures/blocker.dm +++ b/code/game/objects/structures/blocker.dm @@ -125,3 +125,11 @@ icon_state = "purple_line" visible = 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/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/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/secure/cm_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm index 9b473d91f46e..6c711a7bcabe 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 @@ -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/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/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 cfb62812f0c6..d891119a8404 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -335,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" @@ -437,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 39a659c5f397..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 ..() 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/fence.dm b/code/game/objects/structures/fence.dm index db24dfdfebdd..60a8682a4930 100644 --- a/code/game/objects/structures/fence.dm +++ b/code/game/objects/structures/fence.dm @@ -170,9 +170,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) ..() 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 25dc0040e2ac..0fd22361c67b 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -102,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/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/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..8c03a4dbd66c 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 @@ -1132,7 +926,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..d0f9f513e7f8 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 @@ -128,6 +129,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 +168,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 +407,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 +452,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 +466,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 +482,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 +497,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/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 7469a568f7e0..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 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 a3ccffc466c4..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) . = ..() @@ -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) @@ -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 diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 1856dc5dd750..a1542f7baf75 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -353,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) 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..4d8e5d06749b 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() @@ -234,7 +234,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 +295,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 ea93d868c5a1..1014e8ab7a96 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,16 +7,19 @@ 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)) @@ -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,374 +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) - 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 6ab70b8266f4..341fcb657080 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() @@ -599,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/supplyshuttle.dm b/code/game/supplyshuttle.dm index 4d67bb836685..482139c03707 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -289,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 @@ -316,19 +316,21 @@ 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:") + 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 @@ -383,7 +385,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. @@ -1277,7 +1279,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) @@ -1402,11 +1404,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 += "

      " @@ -1442,15 +1446,12 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) world.log << "## ERROR: Eek. The supply/elevator datum is missing somehow." return - if(!should_block_game_interaction(SSshuttle.vehicle_elevator)) - 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(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) @@ -1458,9 +1459,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) @@ -1470,5 +1473,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..8a8698d0c047 100644 --- a/code/game/turfs/floor_types.dm +++ b/code/game/turfs/floor_types.dm @@ -180,7 +180,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" @@ -210,21 +225,13 @@ plating_type = /turf/open/floor/tdome hull_floor = TRUE -//Cargo elevator +/// 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 +246,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 +264,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 +278,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" @@ -283,6 +318,27 @@ allow_construction = FALSE hull_floor = TRUE +/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 = 2 + +/turf/open/floor/almayer/aicore/glowing/Initialize(mapload, ...) + . = ..() + set_light_on(TRUE) + +/turf/open/floor/almayer/aicore/no_build + allow_construction = FALSE + hull_floor = TRUE + +/turf/open/floor/almayer/aicore/glowing/no_build + allow_construction = FALSE + hull_floor = TRUE + // RESEARCH STUFF /turf/open/floor/almayer/research/containment/entrance icon_state = "containment_entrance" diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index ac1635f151dd..8d9ded899a70 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 @@ -910,10 +914,67 @@ 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/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/can_surgery + icon_state = "rasputin1" + allow_construction = TRUE + supports_surgery = TRUE + +/turf/open/shuttle/dropship/can_surgery/light_grey_middle + icon_state = "rasputin13" + +/turf/open/shuttle/dropship/can_surgery/light_grey_top + icon_state = "rasputin10" + +/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_single_wide_top_to_bottom + 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/dropship/can_surgery/dark_grey + icon_state = "rasputin15" + /turf/open/shuttle/predship name = "ship floor" icon_state = "floor6" 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/transit.dm b/code/game/turfs/transit.dm index bae6718cfd59..dd6a8d920f6f 100644 --- a/code/game/turfs/transit.dm +++ b/code/game/turfs/transit.dm @@ -11,19 +11,117 @@ if(isobserver(crosser) || crosser.anchored) return - if(!(isitem(crosser) || isliving(crosser))) + if(!isitem(crosser) && !isliving(crosser)) return - var/turf/open/floor/floor = old_loc - if(istype(floor)) - var/fling_dir = get_dir(floor, crosser.loc) - - 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) + if(!istype(old_loc, /turf/open/space)) + var/turf/projected = get_ranged_target_turf(crosser.loc, dir, 10) INVOKE_ASYNC(crosser, TYPE_PROC_REF(/atom/movable, throw_atom), projected, 50, SPEED_FAST, null, TRUE) - QDEL_IN(crosser, 0.5 SECONDS) + 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 + 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 ..() + + if(dropship.destination.id != DROPSHIP_LZ1 && dropship.destination.id != DROPSHIP_LZ2) + return ..() // we're not heading towards the LZs + + // 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 ..() + + 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 + INVOKE_ASYNC(src, PROC_REF(handle_drop), crosser, possible_turf, dropship.name) + return + + return ..() // they couldn't be dropped, just delete them + +/turf/open/space/transit/dropship/proc/handle_drop(atom/movable/crosser, turf/target, dropship_name) + if(QDELETED(crosser)) + return + ADD_TRAIT(crosser, TRAIT_IMMOBILIZED, TRAIT_SOURCE_DROPSHIP_INTERACTION) + + crosser.pixel_z = 360 + crosser.forceMove(target) + crosser.visible_message(SPAN_WARNING("[crosser] falls out of the sky."), SPAN_HIGHDANGER("As you fall out of the [dropship_name], you plummet towards the ground.")) + animate(crosser, time = 6, pixel_z = 0, flags = ANIMATION_PARALLEL) + + REMOVE_TRAIT(crosser, TRAIT_IMMOBILIZED, TRAIT_SOURCE_DROPSHIP_INTERACTION) + if(isitem(crosser)) + var/obj/item/item = crosser + item.explosion_throw(200) // give it a bit of a kick + return + + if(!isliving(crosser)) + return // don't know how you got here, but you shouldnt be here. + var/mob/living/fallen_mob = crosser + + 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) + + fallen_mob.KnockDown(10) // 10 seconds + fallen_mob.Stun(3) // 3 seconds + + + if(ishuman(fallen_mob)) + var/mob/living/carbon/human/human = fallen_mob + human.last_damage_data = create_cause_data("falling from [dropship_name]", human) + // I'd say falling from space is pretty much like getting hit by an explosion + human.take_overall_armored_damage(300, ARMOR_BOMB, limb_damage_chance = 100) + // but just in case, you will still take a ton of damage. + human.take_overall_damage(200, used_weapon = "falling", limb_damage_chance = 100) + if(human.stat != DEAD) + human.death(human.last_damage_data) + fallen_mob.status_flags |= PERMANENTLY_DEAD + return + // take a little bit more damage otherwise + fallen_mob.take_overall_damage(400, used_weapon = "falling", limb_damage_chance = 100) + +/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 be58259e17ba..9b0f457cf074 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 @@ -101,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) @@ -145,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] @@ -435,6 +446,10 @@ 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) @@ -767,6 +782,33 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( 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 diff --git a/code/game/turfs/walls/wall_icon.dm b/code/game/turfs/walls/wall_icon.dm index 2b414ca46af8..218d59305bdc 100644 --- a/code/game/turfs/walls/wall_icon.dm +++ b/code/game/turfs/walls/wall_icon.dm @@ -44,6 +44,10 @@ 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 diff --git a/code/game/turfs/walls/wall_types.dm b/code/game/turfs/walls/wall_types.dm index d546e7274331..7b26854737cc 100644 --- a/code/game/turfs/walls/wall_types.dm +++ b/code/game/turfs/walls/wall_types.dm @@ -211,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. @@ -720,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) . = ..() @@ -1012,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) @@ -1248,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 cb58ad2274a4..251b23ad9c57 100644 --- a/code/game/turfs/walls/walls.dm +++ b/code/game/turfs/walls/walls.dm @@ -173,7 +173,7 @@ 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) diff --git a/code/game/verbs/records.dm b/code/game/verbs/records.dm index 743a09d0ab6e..05506804790a 100644 --- a/code/game/verbs/records.dm +++ b/code/game/verbs/records.dm @@ -184,6 +184,7 @@ 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) @@ -194,7 +195,7 @@ GLOBAL_DATUM_INIT(medals_view_tgui, /datum/medals_view_tgui, new) . = ..() .["medals"] = list() - for(var/datum/view_record/medal_view/medal as anything in DB_VIEW(/datum/view_record/medal_view, DB_COMP("player_id", DB_EQUALS, user.client.player_data.id))) + 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 @@ -212,6 +213,10 @@ GLOBAL_DATUM_INIT(medals_view_tgui, /datum/medals_view_tgui, new) .["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 @@ -225,3 +230,23 @@ GLOBAL_DATUM_INIT(medals_view_tgui, /datum/medals_view_tgui, new) 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 5871fdc7a152..a73a3b96e5e4 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, diff --git a/code/game/world.dm b/code/game/world.dm index f68263412715..5aecfe851051 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" @@ -87,10 +87,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 +125,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 +135,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") @@ -321,9 +319,39 @@ 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( +// locate(old_max + 1, 1, 1), +// locate(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( +// locate(1, old_maxy + 1, 1), +// locate(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 +367,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/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm index 94f40629fc6a..85a1028c2296 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,6 +17,7 @@ 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 ..() @@ -26,19 +27,8 @@ 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..96307cd91b86 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) 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..4194627262a4 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) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 56002d139599..626758fc2a5a 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -68,6 +68,7 @@ GLOBAL_LIST_INIT(admin_verbs_default, list( /datum/admins/proc/alertall, /datum/admins/proc/imaginary_friend, /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, @@ -96,8 +97,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 +112,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, @@ -137,10 +140,10 @@ GLOBAL_LIST_INIT(admin_verbs_minor_event, list( /client/proc/admin_biohazard_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 +157,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, @@ -237,12 +241,12 @@ 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, )) @@ -262,10 +266,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 @@ -273,6 +274,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, diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm index 82f25a6ebe3e..3a3ce661e231 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() diff --git a/code/modules/admin/player_panel/actions/punish.dm b/code/modules/admin/player_panel/actions/punish.dm index 576de30ae7ff..1b7d313b6121 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" diff --git a/code/modules/admin/player_panel/player_panel.dm b/code/modules/admin/player_panel/player_panel.dm index 772e9d4e3f91..86922c525e32 100644 --- a/code/modules/admin/player_panel/player_panel.dm +++ b/code/modules/admin/player_panel/player_panel.dm @@ -493,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..f29f99004625 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" @@ -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/event_tab.dm b/code/modules/admin/tabs/event_tab.dm index 839dea7b2334..ff0e9cc6ebaf 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] @@ -322,7 +322,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 +338,7 @@ body += "

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

      " show_browser(src, body, "Faxes to High Command", "uscmfaxviewer", "size=300x600") + if("Provost") var/body = "" @@ -361,9 +367,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 +379,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 = "" @@ -723,7 +759,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
      @@ -737,6 +773,7 @@ Spawn a nuke
      Toggle PMC gun restrictions
      Turn everyone into monkies
      + Give or take opposable thumbs and gun permits from xenos

      "} diff --git a/code/modules/admin/tabs/round_tab.dm b/code/modules/admin/tabs/round_tab.dm index 39a9050053f1..4a993459e7d1 100644 --- a/code/modules/admin/tabs/round_tab.dm +++ b/code/modules/admin/tabs/round_tab.dm @@ -169,8 +169,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 b1cab3603af8..ecef2627ed3c 100644 --- a/code/modules/admin/topic/topic.dm +++ b/code/modules/admin/topic/topic.dm @@ -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"]) @@ -1125,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 ... " @@ -1161,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"]) @@ -1188,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 @@ -1244,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")) @@ -1326,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"]) diff --git a/code/modules/admin/topic/topic_events.dm b/code/modules/admin/topic/topic_events.dm index da8743d6dead..ddb33a2ccc3f 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") diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 5f10b8d24d22..84298faaa3a1 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -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] 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..a896c751f5ed 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: [GLOB.admin_runtime_decorators.len] 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 535a55ca47b3..60c2092d8dc3 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -115,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 @@ -281,6 +283,8 @@ 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" @@ -339,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/load_event_level.dm b/code/modules/admin/verbs/load_event_level.dm index 165506376b9b..72d004e03261 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 = round(loaded.bounds[MAP_MAXX] / 2) // Technically off by 0.5 due to above +1. Whatever + var/center_y = round(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/view_variables/reference_tracking.dm b/code/modules/admin/view_variables/reference_tracking.dm index f6f2b86f31d7..35f464354c72 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 diff --git a/code/modules/asset_cache/asset_list.dm b/code/modules/asset_cache/asset_list.dm index 8e19a1905300..1d88df0b6a6b 100644 --- a/code/modules/asset_cache/asset_list.dm +++ b/code/modules/asset_cache/asset_list.dm @@ -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 e9587319a160..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/", ) @@ -398,9 +374,29 @@ 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( @@ -414,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/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/character_traits/biology_traits.dm b/code/modules/character_traits/biology_traits.dm index efd894fe20cf..a78dd0d38464 100644 --- a/code/modules/character_traits/biology_traits.dm +++ b/code/modules/character_traits/biology_traits.dm @@ -49,13 +49,13 @@ 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) @@ -82,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_CREWMAN, 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) diff --git a/code/modules/clans/client.dm b/code/modules/clans/client.dm index c4948b2a6923..3450b7553c51 100644 --- a/code/modules/clans/client.dm +++ b/code/modules/clans/client.dm @@ -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() @@ -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] @@ -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 44820444a955..213c54f0e201 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", @@ -55,6 +53,8 @@ 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() @@ -362,14 +362,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])") @@ -380,10 +400,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"), @@ -444,7 +460,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// 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/preferences.dm b/code/modules/client/preferences.dm index 221736b5c84f..4b669934d1c1 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 @@ -245,7 +247,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( 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 @@ -590,8 +592,11 @@ 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 += "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]
      " @@ -647,11 +652,16 @@ GLOBAL_LIST_INIT(bgstate_options, list( show_browser(user, dat, "Preferences", "preferencebrowser") 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 = 20, list/splitJobs = list(JOB_CHIEF_REQUISITION, JOB_WO_CMO), width = 950, height = 750) if(!GLOB.RoleAuthority) return @@ -760,11 +770,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 = 20, list/splitJobs = list(JOB_CHIEF_REQUISITION, JOB_WO_CMO), width = 950, height = 750) if(!GLOB.RoleAuthority) return @@ -1819,6 +1834,9 @@ 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("lobby_music") toggles_sound ^= SOUND_LOBBY if(toggles_sound & SOUND_LOBBY) diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm index 7f3d1eafcfb2..c822bedd0f7b 100644 --- a/code/modules/client/preferences_gear.dm +++ b/code/modules/client/preferences_gear.dm @@ -227,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" @@ -515,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 @@ -523,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 diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 2261ddf5ebfa..ec3f156c220f 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 22 //handles converting savefiles to new formats //MAKE SURE YOU KEEP THIS UP TO DATE! @@ -89,6 +89,12 @@ 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 + savefile_version = SAVEFILE_VERSION_MAX return 1 @@ -100,7 +106,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 +150,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 +235,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 +331,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 diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm index d246a17bf5c0..c4017f172f25 100644 --- a/code/modules/client/preferences_toggles.dm +++ b/code/modules/client/preferences_toggles.dm @@ -25,6 +25,14 @@ 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/toggletitlemusic() set name = "Hear/Silence LobbyMusic" set category = "Preferences.Sound" @@ -267,6 +275,8 @@ "Toggle Item Animations
      ", "Toggle Admin Sound Types
      ", "Set Eye Blur Type
      ", + "Set Flash Type
      ", + "Set Crit Type
      ", ) var/dat = "" @@ -443,6 +453,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 +467,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" 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/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/head.dm b/code/modules/clothing/head/head.dm index adfdd05b20d3..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)." @@ -413,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 86692ef95b6d..1e691261a747 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -366,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 @@ -380,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 @@ -476,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)) @@ -511,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 @@ -666,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) @@ -772,7 +802,7 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( /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 @@ -1393,10 +1423,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 18ffacf57b1f..4f928f62399f 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -54,7 +54,7 @@ /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 @@ -65,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/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/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index 54e9d91576f1..1bdb4ca31176 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -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." diff --git a/code/modules/clothing/suits/marine_armor.dm b/code/modules/clothing/suits/marine_armor.dm deleted file mode 100644 index afefa2903ab4..000000000000 --- a/code/modules/clothing/suits/marine_armor.dm +++ /dev/null @@ -1,1893 +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)) - 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/padded - name = "M3 pattern padded marine armor" - icon_state = "1" - specialty = "M3 pattern padded marine" - -/obj/item/clothing/suit/storage/marine/medium/padless - name = "M3 pattern padless marine armor" - icon_state = "2" - specialty = "M3 pattern padless marine" - -/obj/item/clothing/suit/storage/marine/medium/padless_lines - name = "M3 pattern ridged marine armor" - icon_state = "3" - specialty = "M3 pattern ridged marine" - -/obj/item/clothing/suit/storage/marine/medium/carrier - name = "M3 pattern carrier marine armor" - icon_state = "4" - specialty = "M3 pattern carrier marine" - -/obj/item/clothing/suit/storage/marine/medium/skull - name = "M3 pattern skull marine armor" - icon_state = "5" - specialty = "M3 pattern skull marine" - -/obj/item/clothing/suit/storage/marine/medium/smooth - name = "M3 pattern smooth marine armor" - icon_state = "6" - specialty = "M3 pattern smooth marine" - -/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/medium/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/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\\================================\\ -//=================================================================================\\ - -/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" - -/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 - 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 - -/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..e2facb987959 --- /dev/null +++ b/code/modules/clothing/suits/marine_armor/_marine_armor.dm @@ -0,0 +1,669 @@ +#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/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 + +// 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..106b09961103 --- /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/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/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/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 + +/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/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..430942fbbef8 --- /dev/null +++ b/code/modules/clothing/suits/marine_armor/smartgunner.dm @@ -0,0 +1,60 @@ +/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) 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..2dd93eb66aee 100644 --- a/code/modules/clothing/suits/marine_coat.dm +++ b/code/modules/clothing/suits/marine_coat.dm @@ -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..54148d4f7076 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -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 @@ -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" 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..37f1cdd891c3 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 @@ -159,12 +176,12 @@ 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 = "It's made of a special fiber that provides minor protection against biohazards. This one is 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" @@ -187,6 +204,13 @@ flags_jumpsuit = FALSE item_state_slots = list(WEAR_BODY = "scrubspurple") +/obj/item/clothing/under/rank/medical/orange + name = "medical scrubs" + desc = "It's made of a special fiber that provides minor protection against biohazards. This one is 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..92eeea638fae 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" @@ -949,7 +1044,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..d95c0a593d34 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,19 @@ 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" /obj/item/clothing/accessory/poncho name = "USCM Poncho" @@ -377,7 +408,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 +676,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 +780,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/XenoStructures.dm b/code/modules/cm_aliens/XenoStructures.dm index 7e4f7996d3f8..635bca03241f 100644 --- a/code/modules/cm_aliens/XenoStructures.dm +++ b/code/modules/cm_aliens/XenoStructures.dm @@ -94,7 +94,12 @@ 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) @@ -386,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() @@ -573,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/fruit.dm b/code/modules/cm_aliens/structures/fruit.dm index 00272cf90341..02fdb2da415b 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 @@ -146,9 +130,12 @@ /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 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) @@ -190,7 +177,19 @@ 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 @@ -278,9 +277,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) @@ -360,7 +359,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 our 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)) @@ -431,7 +430,7 @@ //Notify the fruit's bound xeno if they exist if(!QDELETED(bound_xeno)) - to_chat(bound_xeno, SPAN_XENOWARNING("One of our 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 diff --git a/code/modules/cm_aliens/structures/special/recovery_node.dm b/code/modules/cm_aliens/structures/special/recovery_node.dm index a0d01bab89dc..649d7811fb6a 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 diff --git a/code/modules/cm_aliens/structures/trap.dm b/code/modules/cm_aliens/structures/trap.dm index e4b021e98f46..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 @@ -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/weeds.dm b/code/modules/cm_aliens/weeds.dm index 5298e7ab02f1..2206bc528e82 100644 --- a/code/modules/cm_aliens/weeds.dm +++ b/code/modules/cm_aliens/weeds.dm @@ -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 @@ -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 320ec2844b70..e534997ddd42 100644 --- a/code/modules/cm_marines/Donator_Items.dm +++ b/code/modules/cm_marines/Donator_Items.dm @@ -972,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 @@ -1310,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" @@ -1321,7 +1324,7 @@ /obj/item/clothing/shoes/marine/fluff/steelpoint //CKEY=steelpoint (UNIQUE) 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 enviroments safely. This prototype version lacks that feature. DONOR ITEM" + 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" diff --git a/code/modules/cm_marines/dropship_ammo.dm b/code/modules/cm_marines/dropship_ammo.dm index 19086b36c957..0926f2bcefff 100644 --- a/code/modules/cm_marines/dropship_ammo.dm +++ b/code/modules/cm_marines/dropship_ammo.dm @@ -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 @@ -169,27 +169,26 @@ for(var/i = 1 to ammo_used_per_firing) sleep(1) - for(var/j in 1 to 2) //rather than halving the sleep, were doubling the bullets shot "bang" - 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) - if(iscarbon(explosion_effect)) - var/mob/living/carbon/bullet_effect = explosion_effect - explosion_effect.ex_act(EXPLOSION_THRESHOLD_VLOW, null, cause_data) - 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 - soundplaycooldown-- - if(!debriscooldown) - impact_tile.ceiling_debris_check(1) - debriscooldown = 6 - debriscooldown-- + 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) + if(iscarbon(explosion_effect)) + var/mob/living/carbon/bullet_effect = explosion_effect + explosion_effect.ex_act(EXPLOSION_THRESHOLD_VLOW, null, cause_data) + 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 + soundplaycooldown-- + if(!debriscooldown) + impact_tile.ceiling_debris_check(1) + debriscooldown = 6 + debriscooldown-- sleep(11) //speed of sound simulation playsound(impact, 'sound/effects/gau.ogg',100,1,60) @@ -427,7 +426,7 @@ 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 diff --git a/code/modules/cm_marines/dropship_equipment.dm b/code/modules/cm_marines/dropship_equipment.dm index 785283541eb8..af06f468adcd 100644 --- a/code/modules/cm_marines/dropship_equipment.dm +++ b/code/modules/cm_marines/dropship_equipment.dm @@ -21,6 +21,7 @@ var/skill_required = SKILL_PILOT_TRAINED var/combat_equipment = TRUE + /obj/structure/dropship_equipment/Destroy() QDEL_NULL(ammo_equipped) if(linked_shuttle) @@ -35,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 @@ -522,12 +524,6 @@ 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) - /obj/structure/dropship_equipment/electronics/spotlights/ui_data(mob/user) . = list() var/is_deployed = light_on @@ -1144,9 +1140,11 @@ var/list/possible_fultons = get_targets() - var/obj/item/stack/fulton/fult = possible_fultons[fulton_choice] 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 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..c26bafe7123a 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, a M42 scout sight, ammunition, spotter equipment, 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." @@ -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" diff --git a/code/modules/cm_marines/equipment/mortar/mortars.dm b/code/modules/cm_marines/equipment/mortar/mortars.dm index a4d4cfdc1bf5..51d1509297a3 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 @@ -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/m2c.dm b/code/modules/cm_marines/m2c.dm index dea7d80b50f9..23a9d243b134 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!")) @@ -148,7 +148,7 @@ 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) @@ -330,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)) @@ -456,13 +456,12 @@ // 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) diff --git a/code/modules/cm_marines/marines_consoles.dm b/code/modules/cm_marines/marines_consoles.dm index 1d72ab5a4d99..e02bb930d416 100644 --- a/code/modules/cm_marines/marines_consoles.dm +++ b/code/modules/cm_marines/marines_consoles.dm @@ -43,12 +43,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 +91,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 +105,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 +135,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 +166,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) @@ -221,19 +217,19 @@ 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 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) @@ -241,7 +237,7 @@ target_id_card.access |= (is_centcom ? 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 +246,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 +254,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 +269,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,7 +284,7 @@ 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) @@ -904,9 +900,10 @@ 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, // 30-39: Security JOB_CHIEF_POLICE = 30, JOB_PROVOST_TML = 30, @@ -1083,6 +1080,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 23bce06fdc1a..ce69115cee48 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() diff --git a/code/modules/cm_marines/overwatch.dm b/code/modules/cm_marines/overwatch.dm index e68ef467faa9..70b2b82d8c86 100644 --- a/code/modules/cm_marines/overwatch.dm +++ b/code/modules/cm_marines/overwatch.dm @@ -800,7 +800,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)) @@ -816,8 +816,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 @@ -844,17 +844,19 @@ 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 @@ -884,10 +886,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/smartgun_mount.dm b/code/modules/cm_marines/smartgun_mount.dm index 7cb3b4fa051b..b3035511cab7 100644 --- a/code/modules/cm_marines/smartgun_mount.dm +++ b/code/modules/cm_marines/smartgun_mount.dm @@ -70,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)) @@ -92,7 +92,7 @@ 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)) + if(!ishuman(user) && !HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS)) return if(!has_mount) return @@ -188,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].")) @@ -296,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.")) @@ -313,7 +313,7 @@ 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 @@ -549,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 @@ -568,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)) @@ -692,16 +692,18 @@ update_health(round(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() @@ -841,17 +843,21 @@ // Try to man the gun try_mount_gun(usr) -/obj/structure/machinery/m56d_hmg/proc/try_mount_gun(mob/living/carbon/human/user) +/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. - if(!user.allow_gun_usage) - to_chat(user, SPAN_WARNING("You aren't allowed to use firearms!")) + 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. diff --git a/code/modules/cm_marines/vehicle_part_fabricator.dm b/code/modules/cm_marines/vehicle_part_fabricator.dm index 0095ff54a2ab..fd9b0faafa61 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 + 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 [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)) 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/yaut_bracers.dm b/code/modules/cm_preds/yaut_bracers.dm index 1cf8310a607e..1994d0507884 100644 --- a/code/modules/cm_preds/yaut_bracers.dm +++ b/code/modules/cm_preds/yaut_bracers.dm @@ -774,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() @@ -812,7 +812,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 exploding = FALSE to_chat(M, SPAN_NOTICE("Your bracers stop beeping.")) @@ -838,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 @@ -1050,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) diff --git a/code/modules/cm_preds/yaut_weapons.dm b/code/modules/cm_preds/yaut_weapons.dm index 9cb8a8bef3fc..34233f2ee9cd 100644 --- a/code/modules/cm_preds/yaut_weapons.dm +++ b/code/modules/cm_preds/yaut_weapons.dm @@ -938,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 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/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/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/points.dm b/code/modules/cm_tech/techs/marine/tier1/points.dm index d6bb5bace6fc..7768d8da2ab7 100644 --- a/code/modules/cm_tech/techs/marine/tier1/points.dm +++ b/code/modules/cm_tech/techs/marine/tier1/points.dm @@ -31,7 +31,6 @@ 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 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..51675ccd27f2 100644 --- a/code/modules/cm_tech/techs/marine/tier2/orbital_ammo.dm +++ b/code/modules/cm_tech/techs/marine/tier2/orbital_ammo.dm @@ -7,8 +7,6 @@ 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/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/defenses/bell_tower.dm b/code/modules/defenses/bell_tower.dm index 8ef4fe913079..b4741734e0f4 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, FACTION_WEYLAND, 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 diff --git a/code/modules/defenses/defenses.dm b/code/modules/defenses/defenses.dm index fefd3c640c65..febe4901ae8a 100644 --- a/code/modules/defenses/defenses.dm +++ b/code/modules/defenses/defenses.dm @@ -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,7 +136,7 @@ */ /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 diff --git a/code/modules/defenses/planted_flag.dm b/code/modules/defenses/planted_flag.dm index fac725047fa9..12bcab9b0475 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, FACTION_WEYLAND, FACTION_HUMAN), ) selected_categories = list( - SENTRY_CATEGORY_IFF = FACTION_USCM, + SENTRY_CATEGORY_IFF = FACTION_MARINE, ) diff --git a/code/modules/defenses/sentry.dm b/code/modules/defenses/sentry.dm index 999df7c22579..a02e4e7808c9 100644 --- a/code/modules/defenses/sentry.dm +++ b/code/modules/defenses/sentry.dm @@ -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, FACTION_WEYLAND, 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/Initialize() @@ -404,7 +404,7 @@ targets.Remove(A) continue - var/list/turf/path = getline2(src, A, include_from_atom = FALSE) + var/list/turf/path = get_line(src, A, include_start_atom = FALSE) if(!path.len || get_dist(src, A) > sentry_range) if(A == target) target = null @@ -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) . = ..() @@ -562,11 +562,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, FACTION_WEYLAND, FACTION_HUMAN), ) selected_categories = list( - SENTRY_CATEGORY_IFF = FACTION_USCM, + SENTRY_CATEGORY_IFF = FACTION_MARINE, ) diff --git a/code/modules/defenses/sentry_flamer.dm b/code/modules/defenses/sentry_flamer.dm index 9ae794e3c811..f884b4ec5d14 100644 --- a/code/modules/defenses/sentry_flamer.dm +++ b/code/modules/defenses/sentry_flamer.dm @@ -11,12 +11,12 @@ 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, FACTION_WEYLAND, 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) diff --git a/code/modules/defenses/tesla_coil.dm b/code/modules/defenses/tesla_coil.dm index e466421c8b31..cb0646b29775 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, FACTION_WEYLAND, FACTION_HUMAN), ) selected_categories = list( - SENTRY_CATEGORY_IFF = FACTION_USCM, + SENTRY_CATEGORY_IFF = FACTION_MARINE, ) @@ -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/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/dropships/attach_points/attach_point.dm b/code/modules/dropships/attach_points/attach_point.dm index 7230e67e0af1..6fef4d58e785 100644 --- a/code/modules/dropships/attach_points/attach_point.dm +++ b/code/modules/dropships/attach_points/attach_point.dm @@ -27,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 - SEND_SIGNAL(shuttle, COMSIG_DROPSHIP_ADD_EQUIPMENT, 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/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/economy_misc.dm b/code/modules/economy/economy_misc.dm index a5f061e1a727..6e22fd12d58a 100644 --- a/code/modules/economy/economy_misc.dm +++ b/code/modules/economy/economy_misc.dm @@ -75,27 +75,6 @@ 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 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/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 7748f4e0c558..143a2271f00e 100644 --- a/code/modules/gear_presets/clf.dm +++ b/code/modules/gear_presets/clf.dm @@ -745,36 +745,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 +900,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 diff --git a/code/modules/gear_presets/cmb.dm b/code/modules/gear_presets/cmb.dm index 90032423fa10..d568e2838ae2 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 ..() //*****************************************************************************************************/ @@ -113,7 +113,7 @@ 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/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) @@ -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) @@ -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) diff --git a/code/modules/gear_presets/contractor.dm b/code/modules/gear_presets/contractor.dm index 896771d26aca..3f0cdecb9ac2 100644 --- a/code/modules/gear_presets/contractor.dm +++ b/code/modules/gear_presets/contractor.dm @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 diff --git a/code/modules/gear_presets/corpses.dm b/code/modules/gear_presets/corpses.dm index 72513a95f880..b8330e0e4c70 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/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) //*****************************************************************************************************/ // 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, - ) - -/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, + ACCESS_WY_SENIOR_LEAD, ) -/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,18 @@ name = "Corpse - Burst UA Officer" xenovictim = TRUE -//Colonial Supervisor Corpse +//*****************************************************************************************************/ + +//Colonial Supervisor /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 +550,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 +606,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 +623,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/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/gloves/marine/veteran/upp, WEAR_HANDS) add_random_survivor_equipment(new_human) if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) @@ -749,7 +640,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 +651,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 +686,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 +711,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 +723,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,20 +736,26 @@ 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/knife, WEAR_FEET) @@ -865,12 +769,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 +876,9 @@ name = "Corpse - Burst Dutch Dozen Rifleman" xenovictim = TRUE -// Pizza Planet +//*****************************************************************************************************/ + +//Pizza Planet /datum/equipment_preset/corpse/pizza name = "Corpse - Pizza Deliverer" @@ -915,12 +892,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 +914,9 @@ name = "Corpse - Burst Pizza Deliverer" xenovictim = TRUE -// Gladiator +//*****************************************************************************************************/ + +//Gladiator /datum/equipment_preset/corpse/gladiator name = "Corpse - Gladiator" @@ -978,6 +954,7 @@ name = "Corpse - Burst Gladiator" xenovictim = TRUE +//*****************************************************************************************************/ //FORECON @@ -988,7 +965,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/fun.dm b/code/modules/gear_presets/fun.dm index 44b2a1a1157a..9811699d5974 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" diff --git a/code/modules/gear_presets/other.dm b/code/modules/gear_presets/other.dm index d97a032337ee..99b8bf634eed 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 @@ -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 @@ -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) @@ -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 @@ -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) @@ -884,7 +883,7 @@ idtype = /obj/item/card/id/dogtag assignment = JOB_CREWMAN rank = JOB_CREWMAN - paygrade = "E4" + 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 diff --git a/code/modules/gear_presets/pmc.dm b/code/modules/gear_presets/pmc.dm index 9571859b0f0f..16c65dde01aa 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 @@ -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 f4267c4454b8..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) @@ -40,7 +40,7 @@ assignment = "Interstellar Commerce Commission Corporate Liaison" /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/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/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 248c1a00d353..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 @@ -4,14 +4,14 @@ assignment = "Fiorina Researcher" /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/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) + 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) ..() @@ -20,7 +20,7 @@ assignment = "Fiorina Doctor" /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(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/head/helmet/marine/veteran/pmc(new_human), WEAR_HEAD) ..() @@ -29,11 +29,12 @@ assignment = "Fiorina Prison Guard" /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/rank/security(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/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) ..() @@ -48,7 +49,7 @@ 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) ..() @@ -57,7 +58,7 @@ assignment = "Fiorina Engineer" /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/color/white(new_human), WEAR_BODY) + 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..657439a13f50 --- /dev/null +++ b/code/modules/gear_presets/survivors/fiorina_sciannex/riot_in_progress_insert_fiorina_nightmare.dm @@ -0,0 +1,276 @@ +// 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/handcuffs/zip, 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/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, 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/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, 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 +/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/handcuffs/zip, 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/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/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/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/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/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/handcuffs/zip, 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/handcuffs/zip, 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 803295c58cfc..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,12 +81,12 @@ 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 @@ -86,11 +94,11 @@ 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/outing(new_human), WEAR_BODY) + 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/marine/knife(new_human), WEAR_FEET) + 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 692833bfa82b..5b010a8cb8ea 100644 --- a/code/modules/gear_presets/survivors/misc.dm +++ b/code/modules/gear_presets/survivors/misc.dm @@ -19,14 +19,13 @@ Everything below 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) ..() // Used in Fiorina Science Annex. @@ -40,13 +39,12 @@ Everything below 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 @@ -60,6 +58,8 @@ Everything below 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 below 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 below 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,14 +106,14 @@ Everything below 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) ..() @@ -131,18 +128,16 @@ Everything below 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 @@ -157,18 +152,16 @@ Everything below 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 @@ -182,7 +175,7 @@ Everything below 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 @@ -297,17 +290,7 @@ Everything below 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 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 077adf971092..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) @@ -43,7 +43,7 @@ assignment = "Interstellar Commerce Commission Corporate Liaison" /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/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/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..8cd72c58ad80 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) @@ -46,7 +46,7 @@ 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) @@ -66,7 +66,7 @@ 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) 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 220034399293..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,6 +1,6 @@ /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) diff --git a/code/modules/gear_presets/survivors/survivors.dm b/code/modules/gear_presets/survivors/survivors.dm index 0e98c60ca453..71a2aaa94b7f 100644 --- a/code/modules/gear_presets/survivors/survivors.dm +++ b/code/modules/gear_presets/survivors/survivors.dm @@ -69,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 @@ -99,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) @@ -121,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 @@ -134,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 @@ -157,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 @@ -178,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 @@ -216,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) @@ -226,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 @@ -244,18 +233,18 @@ 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) ..() // 8 -- Security Survivor @@ -272,8 +261,6 @@ Standart Survivors : /datum/equipment_preset/survivor/scientist, /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) @@ -281,10 +268,11 @@ Standart Survivors : /datum/equipment_preset/survivor/scientist, 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/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) ..() /* @@ -301,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, @@ -314,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/lockable/liaison(new_human), WEAR_BACK) - add_random_cl_survivor_loot(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) - add_survivor_weapon_civilian(new_human) 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) @@ -356,16 +343,14 @@ Everything bellow is a parent used as a base for one or multiple 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 @@ -381,16 +366,15 @@ Everything bellow is a parent used as a base for one or multiple maps. 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/lawyer/bluesuit(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/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/marine/knife(new_human), WEAR_FEET) + 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) ..() // ----- Interstellar Human Rights Survivor @@ -404,17 +388,15 @@ Everything bellow is a parent used as a base for one or multiple maps. 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/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/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) - 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/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) - add_survivor_weapon_civilian(new_human) 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) ..() @@ -425,10 +407,11 @@ Everything bellow is a parent used as a base for one or multiple maps. 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 @@ -437,18 +420,42 @@ Everything bellow is a parent used as a base for one or multiple maps. access = get_access(ACCESS_LIST_CIVIL_LIAISON) /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/liaison_suit(new_human), WEAR_BODY) + 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/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 99589582cbf6..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,7 +25,8 @@ 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/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) @@ -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/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 9a181c817020..4eb674cf3796 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 @@ -173,6 +173,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 +195,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,21 +232,38 @@ 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 @@ -259,6 +278,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 +289,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 +305,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 +314,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 @@ -321,6 +341,24 @@ 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 +381,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 +418,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,15 +459,17 @@ 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/handcuffs/zip, + WEAR_IN_BACK = /obj/item/handcuffs/zip, 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 @@ -427,9 +485,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, @@ -446,13 +502,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, @@ -463,6 +518,29 @@ survivor_variant = CORPORATE_SURVIVOR +/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" equipment_to_spawn = list( @@ -470,13 +548,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 +569,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 +625,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 +654,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)) diff --git a/code/modules/gear_presets/upp.dm b/code/modules/gear_presets/upp.dm index 0b3b4d4ecfb5..cdb955bd9696 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,6 +74,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) 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 @@ -256,6 +257,8 @@ 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 @@ -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) @@ -554,6 +559,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) 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/knife, WEAR_FEET) @@ -681,6 +688,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) 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/knife, WEAR_FEET) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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), @@ -2590,16 +2594,16 @@ //*****************************************************************************************************/ /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/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/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/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) @@ -2924,9 +2991,10 @@ 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) @@ -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,9 +3112,10 @@ 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) @@ -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,9 +3280,10 @@ 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) @@ -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,6 +3424,8 @@ /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) @@ -3391,9 +3454,10 @@ 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) @@ -3430,9 +3494,10 @@ 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) @@ -3472,6 +3537,8 @@ /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/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) @@ -3607,6 +3674,8 @@ 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) diff --git a/code/modules/gear_presets/uscm.dm b/code/modules/gear_presets/uscm.dm index 8289bdfe09cb..eec3b6157877 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 @@ -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 @@ -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,8 +258,6 @@ /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) @@ -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 @@ -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 @@ -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..3ab1dbc99b4e 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) @@ -149,6 +153,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 @@ -200,6 +208,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)) @@ -242,6 +254,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)) @@ -284,6 +300,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)) @@ -331,6 +351,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 +375,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_medical.dm b/code/modules/gear_presets/uscm_medical.dm index be599755bacf..14db97b35229 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,34 +44,20 @@ 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) //*****************************************************************************************************/ @@ -91,15 +77,10 @@ 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/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 @@ -120,21 +101,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 +141,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_ship.dm b/code/modules/gear_presets/uscm_ship.dm index 0b6a3b4b1ed7..cda77b4dd4f4 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) @@ -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() . = ..() @@ -474,12 +480,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 +492,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) @@ -583,6 +587,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() . = ..() @@ -670,21 +676,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 +752,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 +790,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 +849,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 +882,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..b9ca1a6e02d4 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() . = ..() diff --git a/code/modules/gear_presets/wo.dm b/code/modules/gear_presets/wo.dm index 453cd3ea56eb..bf002b292df9 100644 --- a/code/modules/gear_presets/wo.dm +++ b/code/modules/gear_presets/wo.dm @@ -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) 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 2af02269e337..e4a78d3ef5c8 100644 --- a/code/modules/gear_presets/wy_goons.dm +++ b/code/modules/gear_presets/wy_goons.dm @@ -135,7 +135,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/hydroponics/hydro_tools.dm b/code/modules/hydroponics/hydro_tools.dm index eb0d54ce91bb..3603448a4f4f 100644 --- a/code/modules/hydroponics/hydro_tools.dm +++ b/code/modules/hydroponics/hydro_tools.dm @@ -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/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_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_static/static_lighting_source.dm b/code/modules/lighting/lighting_static/static_lighting_source.dm index cfbfb49ceda3..26bc41d3cb02 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. 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..50a343635de9 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,71 +39,129 @@ 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( + locate( + bounds[MAP_MINX], + bounds[MAP_MINY], + bounds[MAP_MINZ] + ), + locate( + 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 = round((world.maxx - width) * 0.5) + 1 + var/y = round((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) 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) diff --git a/code/modules/mapping/preloader.dm b/code/modules/mapping/preloader.dm index e8eee898a711..bd89d0e030a2 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) +/world/proc/preloader_setup(list/the_attributes, path) if(the_attributes.len) 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..424ab22ae4ac 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,776 @@ 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) + 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/turf/T as anything in turfs) + //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 = ROUND_UP(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 - - CHECK_TICK + 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) - //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 - var/index = 1 - var/old_position = 1 - var/dpos + 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 - 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 {...} - 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)) + // 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 + + 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 + + //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 \ + && members_attributes.len == 2 \ + && members.len == 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/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]) \ + if(!set_space \ + && no_changeturf \ && members.len == 2 \ && members_attributes.len == 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 + 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 +1007,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 +1014,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 +1048,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 +1079,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..3c47ac3b5c2a 100644 --- a/code/modules/mapping/space_management/space_reservation.dm +++ b/code/modules/mapping/space_management/space_reservation.dm @@ -1,81 +1,240 @@ +/// 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)) + for(var/I in final) + var/turf/checking = I + 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/zlevel_manager.dm b/code/modules/mapping/space_management/zlevel_manager.dm index 9311719ea7d8..2b96065929f8 100644 --- a/code/modules/mapping/space_management/zlevel_manager.dm +++ b/code/modules/mapping/space_management/zlevel_manager.dm @@ -14,16 +14,22 @@ for (var/I in 1 to default_map_traits.len) 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) +/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 = z_list.len + 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 diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index a55080dc837d..d13d5aa94053 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) @@ -187,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 + 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/fullscreen)) + if(!client) return - if(istype(add_to_screen, /atom/movable/screen/click_catcher)) - 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, /atom/movable/screen/escape_menu)) - return - - 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) @@ -234,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) @@ -244,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) @@ -255,48 +262,26 @@ 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 - observe_target_mob = human_target - RegisterSignal(observe_target_mob, COMSIG_PARENT_QDELETING, PROC_REF(clean_observe_target)) - RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(observer_move_react)) - - 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) + client.eye = carbon_target + observe_target_mob = carbon_target - 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) - - break + carbon_target.auto_observed(src) + 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)) - 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)) @@ -315,7 +300,10 @@ 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 if(client.check_whitelist_status(WHITELIST_PREDATOR)) RegisterSignal(SSdcs, COMSIG_GLOB_PREDATOR_ROUND_TOGGLED, PROC_REF(toggle_predator_action)) @@ -824,10 +812,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() @@ -855,11 +846,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" @@ -1199,7 +1191,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: [round(time_remaining)]s[SSticker.delay_start ? " (DELAYED)" : ""]" else if(time_remaining == -10) . += "Time To Start: DELAYED" else 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/language/language.dm b/code/modules/mob/language/language.dm index f00618fe54be..0a2fbca787d6 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) diff --git a/code/modules/mob/language/languages.dm b/code/modules/mob/language/languages.dm index 86a96e3d160c..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 diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index a5ef1231a140..2a197dadc2b1 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -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 diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index af0da452d13e..c97e4344cabf 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() diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index da17bf8a15f0..563d0f4107e9 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -541,7 +541,7 @@ if(med_hud.hudusers[passed_human]) return TRUE if("squadleader") - var/datum/mob_hud/faction_hud = GLOB.huds[MOB_HUD_FACTION_USCM] + 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 diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 4c62361ec52e..4e71b178824d 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 @@ -272,44 +272,28 @@ -/mob/living/carbon/human/show_inv(mob/living/user) - 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]") +/** + * 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 + + // 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 @@ -403,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"]) @@ -450,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)) @@ -811,25 +722,7 @@ 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(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"]) @@ -881,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) diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index f14b023b81da..e664143be74d 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -23,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 @@ -60,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 @@ -88,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) @@ -191,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 @@ -213,7 +209,10 @@ 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(HAS_TRAIT(src, TRAIT_INCAPACITATED)) diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 942c20482230..2a03b4f0abff 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -311,18 +311,18 @@ In most cases it makes more sense to use apply_damage() instead! And make sure t 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) @@ -330,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) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 9ec9d0b05ec5..e611452e9de7 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -136,7 +136,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, 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 @@ -167,6 +167,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 1f90c618fd38..0c0584c5292b 100644 --- a/code/modules/mob/living/carbon/human/human_dummy.dm +++ b/code/modules/mob/living/carbon/human/human_dummy.dm @@ -74,7 +74,6 @@ 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) @@ -82,3 +81,9 @@ GLOBAL_LIST_EMPTY(dummy_mob_list) 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..d6d438441d20 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -206,18 +206,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 +247,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 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..e346a0a7368b --- /dev/null +++ b/code/modules/mob/living/carbon/human/human_stripping.dm @@ -0,0 +1,272 @@ +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 + if(!LAZYLEN(uniform.accessories)) + return FALSE + var/obj/item/clothing/accessory/accessory = LAZYACCESS(uniform.accessories, 1) + if(LAZYLEN(uniform.accessories) > 1) + accessory = tgui_input_list(user, "Select an accessory to remove from [uniform]", "Remove accessory", uniform.accessories) + if(!istype(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 3d372376d1e7..3f419333d218 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -504,70 +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/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_regular_hud_updates.dm b/code/modules/mob/living/carbon/human/life/handle_regular_hud_updates.dm index b84c8e9d24c2..0d850a47f73e 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) @@ -60,7 +63,7 @@ else clear_fullscreen("blind") - ///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) 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 a96f404a1447..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)) @@ -185,7 +185,7 @@ var/whisper = strip_html(input("Message:", "Psychic Whisper") as text|null) if(whisper) - log_say("PsychicWhisper: [key_name(src)]->[target_mob.key] : [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) 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..829f1d89e939 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 @@ -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/zombie.dm b/code/modules/mob/living/carbon/human/species/zombie.dm index f5db0c1b8728..4e8a0b5e98e2 100644 --- a/code/modules/mob/living/carbon/human/species/zombie.dm +++ b/code/modules/mob/living/carbon/human/species/zombie.dm @@ -62,7 +62,7 @@ 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 = 3 + zombie_infection.stage = 4 var/datum/mob_hud/Hu = GLOB.huds[MOB_HUD_MEDICAL_OBSERVER] Hu.add_hud_to(zombie, zombie) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 167876cdca96..9a0cd177e885 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -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) diff --git a/code/modules/mob/living/carbon/human/whisper.dm b/code/modules/mob/living/carbon/human/whisper.dm index 3fba527fb0d7..1293da617f24 100644 --- a/code/modules/mob/living/carbon/human/whisper.dm +++ b/code/modules/mob/living/carbon/human/whisper.dm @@ -114,7 +114,7 @@ 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) diff --git a/code/modules/mob/living/carbon/xenomorph/Abilities.dm b/code/modules/mob/living/carbon/xenomorph/Abilities.dm index 806b0646590d..ec024c3b5605 100644 --- a/code/modules/mob/living/carbon/xenomorph/Abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/Abilities.dm @@ -142,7 +142,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) @@ -206,7 +206,7 @@ var/whisper = strip_html(input("Message:", "Psychic Whisper") as text|null) if(whisper) - log_say("PsychicWhisper: [key_name(xeno_player)]->[target_mob.key] : [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 @@ -259,7 +259,7 @@ return var/targetstring = english_list(target_list) to_chat(xeno_player, SPAN_XENONOTICE("You said: \"[whisper]\" to [targetstring]")) - log_say("PsychicRadiance: [key_name(xeno_player)]->[targetstring] : [whisper]") + 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 diff --git a/code/modules/mob/living/carbon/xenomorph/Embryo.dm b/code/modules/mob/living/carbon/xenomorph/Embryo.dm index bba6b48c4f38..d0890bd3cf37 100644 --- a/code/modules/mob/living/carbon/xenomorph/Embryo.dm +++ b/code/modules/mob/living/carbon/xenomorph/Embryo.dm @@ -355,8 +355,9 @@ qdel(larva_embryo) if(!victim.first_xeno) - to_chat(larva_embryo, SPAN_XENOHIGHDANGER("The Queen's will overwhelms our 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 d6f963747e33..b6576b764b51 100644 --- a/code/modules/mob/living/carbon/xenomorph/Evolution.dm +++ b/code/modules/mob/living/carbon/xenomorph/Evolution.dm @@ -211,7 +211,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? @@ -269,7 +272,10 @@ return if(lock_evolve) - to_chat(src, SPAN_WARNING("We 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 diff --git a/code/modules/mob/living/carbon/xenomorph/Facehuggers.dm b/code/modules/mob/living/carbon/xenomorph/Facehuggers.dm index c23b320618f5..bf88acd2b790 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) @@ -283,12 +302,14 @@ var/area/hug_area = get_area(src) var/name = hugger ? "[hugger]" : "\a [src]" - 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(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) xeno_message(SPAN_XENOMINORWARNING("We sense that [name] has facehugged a host at \the [hug_area]!"), 1, hivenumber) else @@ -392,9 +413,6 @@ M.stored_huggers++ qdel(src) return - // Tutorial facehuggers never time out - if(hivenumber == XENO_HIVE_TUTORIAL) - return die() /obj/item/clothing/mask/facehugger/proc/die() @@ -408,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 @@ -416,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.") diff --git a/code/modules/mob/living/carbon/xenomorph/XenoAttacks.dm b/code/modules/mob/living/carbon/xenomorph/XenoAttacks.dm index 39866eb53798..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 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 fc5532955ff9..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("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/XenoProcs.dm b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm index 46b6c857d481..a09380db7664 100644 --- a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm +++ b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm @@ -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) @@ -404,6 +401,7 @@ visible_message(SPAN_XENOWARNING("[src] hurls out the contents of their stomach!"), \ 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) @@ -648,6 +646,10 @@ 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()) diff --git a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm index fc25c80e795f..16cfeca8f87e 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 @@ -130,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 @@ -389,8 +389,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] @@ -433,7 +431,7 @@ 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() @@ -661,8 +659,8 @@ . += "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.") @@ -693,7 +691,7 @@ selected_ability = null queued_action = null - QDEL_NULL(mutators) + QDEL_NULL(strain) QDEL_NULL(behavior_delegate) built_structures = null @@ -709,18 +707,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) @@ -777,6 +768,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 @@ -823,10 +819,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() @@ -850,8 +846,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 @@ -907,18 +903,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) @@ -1043,7 +1029,7 @@ 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))) 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 68312b77936d..9bfc98a7091d 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,6 +1,8 @@ //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 @@ -310,6 +312,9 @@ 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 @@ -320,6 +325,7 @@ amount = plasma_stored //Just use all of it use_plasma(amount) target.gain_plasma(amount) + 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) 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 cc4e95421ab8..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 @@ -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 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 152115cd7c8b..f854272365d0 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 @@ -156,7 +156,7 @@ addtimer(CALLBACK(src, PROC_REF(process_tunnel), T), 1 SECONDS) /mob/living/carbon/xenomorph/proc/do_tunnel(turf/T) - to_chat(src, SPAN_NOTICE("We tunnel to your destination.")) + to_chat(src, SPAN_NOTICE("We tunnel to the destination.")) anchored = FALSE forceMove(T) burrow_off() 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 4ac166c58c69..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 @@ -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 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 22d5f4b57aa2..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 @@ -20,6 +20,13 @@ ability_primacy = XENO_PRIMARY_ACTION_2 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" action_icon_state = "tail_sweep" @@ -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 bd01376c9f9d..98c0c19f68f7 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 @@ -40,7 +40,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)) @@ -49,13 +49,13 @@ 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)) + if(fendy.fortify && !usable_while_fortified) to_chat(fendy, SPAN_XENOWARNING("We cannot use headbutt while fortified.")) return @@ -81,11 +81,10 @@ fendy.visible_message(SPAN_XENOWARNING("[fendy] rams [carbone] with its 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) @@ -157,10 +156,6 @@ if (!istype(xeno)) return - if(xeno.crest_defense && xeno.mutation_type == DEFENDER_STEELCREST) - to_chat(src, SPAN_XENOWARNING("We cannot fortify while our crest is already down!")) - return - if(xeno.crest_defense) to_chat(src, SPAN_XENOWARNING("We cannot use fortify with our crest lowered.")) return @@ -174,11 +169,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) @@ -199,59 +196,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("We tuck ourself 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("We resume our 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) 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 460a561fa801..f36e23394eef 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm @@ -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 @@ -497,6 +499,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 @@ -505,6 +508,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) @@ -516,6 +520,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 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 d91da72505ba..05ab5d00a743 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm @@ -483,7 +483,7 @@ // 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) @@ -929,7 +929,7 @@ 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 our strike!")) @@ -1015,6 +1015,9 @@ // 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/lesser_drone/lesser_drone_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/lesser_drone/lesser_drone_powers.dm index 3c6b39f146be..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("We 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 fd525701b12d..8a829d8d6bc0 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 @@ -6,46 +6,11 @@ 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" 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 4ec301a17819..0d1bcc99281a 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,3 +1,34 @@ +/datum/action/xeno_action/activable/pounce/lurker/additional_effects_always() + var/mob/living/carbon/xenomorph/xeno = owner + if(!istype(xeno)) + return + + 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) + 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 + + 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/use_ability(atom/targeted_atom) var/mob/living/carbon/xenomorph/xeno = owner @@ -16,9 +47,8 @@ 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) @@ -45,10 +75,9 @@ xeno.speed_modifier += speed_buff xeno.recalculate_speed() - if (xeno.mutation_type == LURKER_NORMAL) - var/datum/behavior_delegate/lurker_base/behavior = xeno.behavior_delegate - if (istype(behavior)) - behavior.on_invisibility_off() + var/datum/behavior_delegate/lurker_base/behavior = xeno.behavior_delegate + if (istype(behavior)) + behavior.on_invisibility_off() /datum/action/xeno_action/onclick/lurker_invisibility/ability_cooldown_over() to_chat(owner, SPAN_XENOHIGHDANGER("We are ready to use our invisibility again!")) @@ -66,9 +95,6 @@ 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 @@ -189,7 +215,7 @@ 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 us from striking!")) @@ -211,8 +237,20 @@ 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) + // 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 directly slam [hit_target] with our tail, throwing it back after impaling it on our tail!")) + hit_target.apply_armoured_damage(15, ARMOR_MELEE, BRUTE, "chest") + else + to_chat(xeno, SPAN_XENODANGER("We attack [hit_target] with our tail, throwing it back after stabbing it 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) @@ -221,11 +259,8 @@ // FX var/stab_direction - to_chat(xeno, SPAN_XENOHIGHDANGER("We directly slam [hit_target] with our tail, throwing it back after impaling it on our 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) 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 c2fbd6b9d8c4..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 @@ -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" 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 2eaf332755dc..010f98c9c4e9 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) @@ -70,10 +70,9 @@ 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() + var/datum/behavior_delegate/praetorian_vanguard/behavior = source_xeno.behavior_delegate + if (istype(behavior)) + behavior.regen_shield() apply_cooldown() return ..() @@ -135,10 +134,9 @@ 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() + 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 @@ -545,16 +543,12 @@ 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 @@ -601,9 +595,6 @@ 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 @@ -626,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 @@ -806,17 +794,16 @@ 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 @@ -841,33 +828,37 @@ if (!X.Adjacent(A)) to_chat(X, SPAN_XENODANGER("We must be within touching distance of [targetXeno]!")) return - if (targetXeno.mutation_type == PRAETORIAN_WARDEN) - to_chat(X, SPAN_XENODANGER("We cannot heal a sister of the same strain!")) - return if (SEND_SIGNAL(targetXeno, COMSIG_XENO_PRE_HEAL) & COMPONENT_CANCEL_XENO_HEAL) 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_XENODANGER("We heal [targetXeno]!")) + to_chat(X, SPAN_XENOHIGHDANGER("We heal [targetXeno]!")) to_chat(targetXeno, SPAN_XENOHIGHDANGER("We are healed by [X]!")) - targetXeno.gain_health(heal_amount + bonus_heal) + //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 + + 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! @@ -876,15 +867,14 @@ 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("We rejuvenate [targetXeno]!")) + 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 @@ -907,8 +897,8 @@ 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) @@ -923,16 +913,16 @@ to_chat(X, SPAN_XENODANGER("We cannot retrieve ourself!")) return - if(X.anchored) - to_chat(X, SPAN_XENODANGER("That sister cannot move!")) - return - if(!(A in view(7, X))) to_chat(X, SPAN_XENODANGER("That sister is too far away!")) return 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!")) @@ -951,7 +941,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()) 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 cdf0d3840084..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("We 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 we 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("We 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 d245449fa2cf..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 @@ -38,7 +38,7 @@ 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/manage_hive name = "Manage The Hive" @@ -62,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 cbbc6ae21013..1f37651b2c8e 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 @@ -313,7 +313,7 @@ if(!choice) return var/evo_points_per_larva = 250 - var/required_larva = 3 + var/required_larva = 1 var/mob/living/carbon/xenomorph/target_xeno for(var/mob/living/carbon/xenomorph/xeno in user_xeno.hive.totalXenos) 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 3744fb7823e8..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 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 daad0362e91e..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 @@ -122,8 +119,6 @@ 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 @@ -146,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 @@ -302,17 +295,14 @@ 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("Our 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") @@ -361,17 +351,16 @@ 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("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) + 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("We begin digging in for a massive strike!")) @@ -439,12 +428,11 @@ 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! We 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("We ruffle our bone-shard quills, forming a defensive shell!")) @@ -468,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() @@ -502,12 +488,11 @@ 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! We 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("We fire our spikes at [affected_atom]!")) @@ -531,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 @@ -548,13 +530,12 @@ 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! We 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("We shed our spikes, firing them in all directions!!")) xeno.spin_circle() @@ -567,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_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/runner/runner_powers.dm index b907a382dda1..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 @@ -45,7 +45,7 @@ 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)) @@ -159,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 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 1ddec771d075..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 @@ -35,9 +35,6 @@ if(!xeno.check_state()) return - if(xeno.mutation_type != SENTINEL_NORMAL) - return - if(!action_cooldown_check()) to_chat(src, SPAN_WARNING("We must wait for your spit glands to refill.")) return @@ -77,9 +74,6 @@ 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 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 8ed720c7ed91..80cf5c1e37ac 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm @@ -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.") @@ -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 ee1d032e0031..45f5ccb5dec1 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."), \ + 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!"), \ + 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]"), \ + 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 we 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("We 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!"), \ + 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]!"), \ + 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,17 +100,17 @@ 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. if(prob(knock_chance)) playsound(loc, "alien_claw_metal", 25, 1) - M.visible_message(SPAN_DANGER("[M] smashes off [src]'s [wear_mask.name]!"), \ + 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)) @@ -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("We [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("We don't have the dexterity to tackle the headhunter with that thing on our 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!"), \ + 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,22 +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) - var/strength = rand(M.tacklestrength_min, M.tacklestrength_max) + 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 - M.visible_message(SPAN_DANGER("[M] tackles down [src]!"), \ + 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, M) + SEND_SIGNAL(src, COMSIG_MOB_TACKLED_DOWN, attacking_xeno) + knocked_down = TRUE else playsound(loc, 'sound/weapons/alien_claw_swipe.ogg', 25, 1) if (body_position == LYING_DOWN) - M.visible_message(SPAN_DANGER("[M] tries to tackle [src], but they are already 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]"), \ + 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 @@ -288,6 +291,7 @@ /mob/living/attack_larva(mob/living/carbon/xenomorph/larva/M) M.visible_message(SPAN_DANGER("[M] nudges its head against [src]."), \ 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) @@ -309,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) @@ -377,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) + 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) @@ -660,7 +673,7 @@ //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) + 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 @@ -679,7 +692,7 @@ // Destroying reagent dispensers /obj/structure/reagent_dispensers/attack_alien(mob/living/carbon/xenomorph/M) - if(unslashable || health <= 0) + 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 @@ -851,11 +864,7 @@ 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 @@ -877,7 +886,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) @@ -911,7 +921,7 @@ return XENO_ATTACK_ACTION /obj/structure/girder/attack_alien(mob/living/carbon/xenomorph/M) - if((M.caste && M.caste.tier < 2 && !isqueen(M)) || unacidable) + 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) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Boiler.dm b/code/modules/mob/living/carbon/xenomorph/castes/Boiler.dm index 074af92d69fa..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 @@ -98,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 886ffcfe1ef2..bec41a87521e 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Burrower.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Burrower.dm @@ -74,8 +74,6 @@ /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' @@ -109,11 +107,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 2e106743514a..d290b917e945 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Carrier.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Carrier.dm @@ -14,6 +14,9 @@ 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 @@ -75,7 +78,6 @@ /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' @@ -95,18 +97,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() @@ -146,8 +139,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() @@ -184,9 +175,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 @@ -207,6 +195,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) @@ -397,3 +390,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 d2c0b0e40e59..38b1e5816ffe 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 @@ -63,8 +64,6 @@ ) 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' @@ -281,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 8ec53d51046e..a63bafb5d2b0 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 @@ -51,9 +52,6 @@ /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' @@ -90,8 +88,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 c4c9b11b37e4..a0ce70316eb8 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm @@ -12,6 +12,11 @@ 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." @@ -69,7 +74,6 @@ /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' diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm b/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm index 7ce3a8750568..d98e60fe2177 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm @@ -9,6 +9,9 @@ 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,7 +58,6 @@ 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' @@ -64,6 +66,20 @@ 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) @@ -74,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 @@ -235,34 +233,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 6868fd5ac589..93d40820bf7b 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Hellhound.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Hellhound.dm @@ -64,7 +64,6 @@ 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' diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm b/code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm index b00ec2a9c1eb..ee4157a67d84 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm @@ -13,6 +13,8 @@ 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) @@ -76,8 +78,6 @@ /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' @@ -121,10 +121,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 f1c77e7fb757..c06b8c43839d 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Larva.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Larva.dm @@ -46,7 +46,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 diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm b/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm index 469b9a78d063..b9bde4c78992 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) @@ -50,7 +51,6 @@ inherent_verbs = list( /mob/living/carbon/xenomorph/proc/vent_crawl, ) - mutation_type = LURKER_NORMAL claw_type = CLAW_TYPE_SHARP tackle_min = 2 diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Praetorian.dm b/code/modules/mob/living/carbon/xenomorph/castes/Praetorian.dm index 9536ef1553e9..69b679573352 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,6 @@ mob_size = MOB_SIZE_BIG drag_delay = 6 //pulling a big dead xeno is hard tier = 3 - mutation_type = PRAETORIAN_NORMAL base_actions = list( /datum/action/xeno_action/onclick/xeno_resting, diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Predalien.dm b/code/modules/mob/living/carbon/xenomorph/castes/Predalien.dm index bcf47386fefc..841675234e63 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,6 +40,7 @@ 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 @@ -56,20 +56,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" - 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 - var/butcher_time = 6 SECONDS /mob/living/carbon/xenomorph/predalien/Initialize(mapload, mob/living/carbon/xenomorph/oldxeno, h_number) @@ -88,15 +87,20 @@ 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/resist_fire() + ..() + SetKnockDown(0.1 SECONDS) + /datum/behavior_delegate/predalien_base name = "Base Predalien Behavior Delegate" @@ -120,53 +124,11 @@ Your health meter will not regenerate normally, so kill and die for the hive!= 1) if(isturf(loc)) var/turf/T = loc @@ -538,22 +536,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)" @@ -587,7 +569,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 @@ -611,7 +593,7 @@ 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 @@ -952,7 +934,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 diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Ravager.dm b/code/modules/mob/living/carbon/xenomorph/castes/Ravager.dm index 6d19a1b8feec..e50a0f026d65 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,7 +49,6 @@ tier = 3 pixel_x = -16 old_x = -16 - mutation_type = RAVAGER_NORMAL claw_type = CLAW_TYPE_VERY_SHARP base_actions = list( diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm b/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm index 3a23afc145d1..400195f21de0 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") @@ -62,7 +64,6 @@ 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' @@ -77,6 +78,12 @@ 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 a568a093b3a4..2e53f97e297b 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Sentinel.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Sentinel.dm @@ -53,7 +53,6 @@ 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' diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Spitter.dm b/code/modules/mob/living/carbon/xenomorph/castes/Spitter.dm index 9ad2f4909fb8..984a2d08bb75 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Spitter.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Spitter.dm @@ -56,7 +56,6 @@ 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' diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Warrior.dm b/code/modules/mob/living/carbon/xenomorph/castes/Warrior.dm index b19978a33766..1c329c8b9e82 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Warrior.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Warrior.dm @@ -55,7 +55,6 @@ /datum/action/xeno_action/onclick/tacmap, ) - mutation_type = WARRIOR_NORMAL claw_type = CLAW_TYPE_SHARP icon_xeno = 'icons/mob/xenos/warrior.dmi' 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 cfaedf013a44..feee2edecb67 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm @@ -66,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 f050a0dcfe8a..9be9e21fd983 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/lesser_drone.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/lesser_drone.dm @@ -16,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 @@ -74,8 +75,6 @@ /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' @@ -83,6 +82,20 @@ 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 @@ -106,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 624c9df25f3e..f399dbcb59cd 100644 --- a/code/modules/mob/living/carbon/xenomorph/damage_procs.dm +++ b/code/modules/mob/living/carbon/xenomorph/damage_procs.dm @@ -299,7 +299,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. diff --git a/code/modules/mob/living/carbon/xenomorph/death.dm b/code/modules/mob/living/carbon/xenomorph/death.dm index 503ca11a7631..d6a9dd01f3cc 100644 --- a/code/modules/mob/living/carbon/xenomorph/death.dm +++ b/code/modules/mob/living/carbon/xenomorph/death.dm @@ -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) diff --git a/code/modules/mob/living/carbon/xenomorph/egg_item.dm b/code/modules/mob/living/carbon/xenomorph/egg_item.dm index 1bc41b881129..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 @@ -104,12 +104,15 @@ 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 @@ -138,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 bb67eaa055a8..22b061715892 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 @@ -46,7 +46,6 @@ 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/datum/mutator_set/hive_mutators/mutators = new var/tier_slot_multiplier = 1 var/larva_gestation_multiplier = 1 var/bonus_larva_spawn_chance = 1 @@ -54,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 @@ -143,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) @@ -279,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 @@ -293,10 +289,8 @@ 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) var/diff = 0 @@ -310,11 +304,6 @@ 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) @@ -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]" ) @@ -1062,7 +1051,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 @@ -1077,7 +1065,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 @@ -1118,7 +1105,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 @@ -1148,7 +1134,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 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 17514a31e502..360b4e8bbdde 100644 --- a/code/modules/mob/living/carbon/xenomorph/hive_status_ui.dm +++ b/code/modules/mob/living/carbon/xenomorph/hive_status_ui.dm @@ -137,7 +137,7 @@ return UI_INTERACTIVE // If the Queen died or is otherwise missing. - if(!assoc_hive.living_xeno_queen) + if(!assoc_hive.living_xeno_queen && !assoc_hive.allow_no_queen_actions) return UI_CLOSE /datum/hive_status_ui/ui_data(mob/user) diff --git a/code/modules/mob/living/carbon/xenomorph/life.dm b/code/modules/mob/living/carbon/xenomorph/life.dm index aab61776118d..bbd59a74d8b5 100644 --- a/code/modules/mob/living/carbon/xenomorph/life.dm +++ b/code/modules/mob/living/carbon/xenomorph/life.dm @@ -391,75 +391,52 @@ 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 || 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) @@ -529,6 +506,7 @@ Make sure their actual health updates immediately.*/ /mob/living/carbon/xenomorph/proc/handle_crit() if(stat <= CONSCIOUS && !gibbing) set_stat(UNCONSCIOUS) + SEND_SIGNAL(src, COMSIG_XENO_ENTER_CRIT) /mob/living/carbon/xenomorph/set_stat(new_stat) . = ..() 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/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 5b8ce1ecd292..c40a50ce7523 100644 --- a/code/modules/mob/living/carbon/xenomorph/say.dm +++ b/code/modules/mob/living/carbon/xenomorph/say.dm @@ -98,6 +98,9 @@ to_chat(src, SPAN_WARNING("A headhunter temporarily cut off your psychic connection!")) return + if(SEND_SIGNAL(src, COMSIG_XENO_TRY_HIVEMIND_TALK, message) & COMPONENT_OVERRIDE_HIVEMIND_TALK) + return + hivemind_broadcast(message, hive) /mob/living/carbon/proc/hivemind_broadcast(message, datum/hive_status/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 87% 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..e6c8061bd0fe 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_mutator/trapper - name = "STRAIN: Boiler - Trapper" +/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 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 85% 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 10cbc29f51b0..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) @@ -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 96% 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 17b5cf62052c..84877b43571e 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" +/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 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 ( + + 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 @@ -643,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..f84566e9c841 --- /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 = "To handle yourself, use your head. To handle others, use your head." + 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 93% 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 4d47ac333a23..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)" @@ -92,7 +89,7 @@ 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 @@ -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/mutators/strains/drone/healer.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm similarity index 90% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/healer.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm index 86f50b47e080..0fcbb2ecf09a 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/healer.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm @@ -1,18 +1,17 @@ -/datum/xeno_mutator/healer - name = "STRAIN: Drone - Healer" +/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 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( + 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 ) - mutator_actions_to_add = list( + 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. @@ -20,32 +19,20 @@ /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 ) - 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 + behavior_delegate_type = /datum/behavior_delegate/drone_healer - var/mob/living/carbon/xenomorph/drone/drone = mutator_set.xeno - drone.mutation_type = 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.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() + + drone.recalculate_everything() /* Improved Plasma Transfer @@ -123,13 +110,14 @@ 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) + //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. - if(target_xeno.mutation_type == DRONE_HEALER) + //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) @@ -144,7 +132,7 @@ playsound(src, "alien_drool", 25) var/datum/behavior_delegate/drone_healer/healer_delegate = behavior_delegate healer_delegate.salve_applied_recently = TRUE - if(target_xeno.mutation_type != DRONE_HEALER && !isfacehugger(target_xeno)) // no cheap grinding + 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) @@ -301,4 +289,3 @@ 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..7fba30b6f352 --- /dev/null +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm @@ -0,0 +1,21 @@ +/datum/xeno_strain/watcher + name = 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." + + actions_to_remove = list( + /datum/action/xeno_action/onclick/xenohide, + ) + actions_to_add = list( + /datum/action/xeno_action/onclick/toggle_long_range/runner, + ) + + 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" diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/hivelord/resin_whisperer.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/hivelord/resin_whisperer.dm similarity index 74% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/hivelord/resin_whisperer.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/hivelord/resin_whisperer.dm index 3653209b78f2..cf1cafde9267 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/hivelord/resin_whisperer.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/hivelord/resin_whisperer.dm @@ -1,41 +1,30 @@ -/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!" +/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 = "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( + 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, ) - mutator_actions_to_add = list( + 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 +/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.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.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 @@ -68,12 +57,9 @@ 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(!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 @@ -115,6 +101,12 @@ 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" diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/lurker/vampire.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/lurker/vampire.dm similarity index 67% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/lurker/vampire.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/lurker/vampire.dm index 72214d06332e..5a0bc5073ee3 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/lurker/vampire.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/lurker/vampire.dm @@ -1,40 +1,27 @@ - -/datum/xeno_mutator/Vampire - name = "STRAIN: Lurker - Vampire" +/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 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( + 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, ) - mutator_actions_to_add = list( + 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 +/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.melee_damage_lower = XENO_DAMAGE_TIER_3 - lurker.melee_damage_upper = XENO_DAMAGE_TIER_3 + lurker.damage_modifier -= XENO_DAMAGE_MOD_VERY_SMALL 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/strains/castes/praetorian/dancer.dm similarity index 68% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/dancer.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/dancer.dm index a21f549ea8cd..f9a5dbedb614 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/dancer.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/dancer.dm @@ -1,44 +1,31 @@ -/datum/xeno_mutator/praetorian_dancer +/datum/xeno_strain/dancer // My name is Cuban Pete, I'm the King of the Rumba Beat - name = "STRAIN: Praetorian - Dancer" + 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 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( + 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, ) - mutator_actions_to_add = list( + 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) + behavior_delegate_type = /datum/behavior_delegate/praetorian_dancer - praetorian.recalculate_everything() +/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 - apply_behavior_holder(praetorian) - praetorian.mutation_icon_state = PRAETORIAN_DANCER - praetorian.mutation_type = PRAETORIAN_DANCER + prae.recalculate_everything() /datum/behavior_delegate/praetorian_dancer name = "Praetorian Dancer Behavior Delegate" diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/oppressor.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/oppressor.dm similarity index 67% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/oppressor.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/oppressor.dm index 4beaedf8d6a8..91ea59661462 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/oppressor.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/oppressor.dm @@ -1,12 +1,11 @@ -/datum/xeno_mutator/praetorian_oppressor +/datum/xeno_strain/oppressor // Dread it, run from it, destiny still arrives... or should I say, I do - name = "STRAIN: Praetorian - Oppressor" + 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 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( + 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, @@ -14,38 +13,24 @@ /datum/action/xeno_action/activable/spray_acid/base_prae_spray_acid, /datum/action/xeno_action/activable/corrosive_acid, ) - mutator_actions_to_add = list( + 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) + behavior_delegate_type = /datum/behavior_delegate/oppressor_praetorian - apply_behavior_holder(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 - praetorian.recalculate_everything() - praetorian.mutation_icon_state = PRAETORIAN_OPPRESSOR - praetorian.mutation_type = PRAETORIAN_OPPRESSOR + prae.recalculate_everything() /datum/behavior_delegate/oppressor_praetorian name = "Oppressor Praetorian Behavior Delegate" @@ -60,4 +45,3 @@ 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/strains/castes/praetorian/vanguard.dm similarity index 80% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/vanguard.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/vanguard.dm index d5ca8c4d6aad..2a344523e974 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/vanguard.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/vanguard.dm @@ -1,43 +1,31 @@ -/datum/xeno_mutator/vanguard - name = "STRAIN: Praetorian - Vanguard" +/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 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( + 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, ) - mutator_actions_to_add = list( + 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() + behavior_delegate_type = /datum/behavior_delegate/praetorian_vanguard - praetorian.mutation_icon_state = PRAETORIAN_VANGUARD - praetorian.mutation_type = 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 - apply_behavior_holder(praetorian) + prae.recalculate_everything() /datum/behavior_delegate/praetorian_vanguard name = "Praetorian Vanguard Behavior Delegate" @@ -103,8 +91,3 @@ 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/strains/castes/praetorian/warden.dm similarity index 79% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/warden.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/warden.dm index 4328058c8a8e..313778baf038 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/warden.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/warden.dm @@ -1,45 +1,35 @@ -/datum/xeno_mutator/praetorian_warden +/datum/xeno_strain/warden // i mean so basically im braum - name = "STRAIN: Praetorian - Warden" + 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 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( + 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, ) - mutator_actions_to_add = list( + 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/emit_pheromones, + /datum/action/xeno_action/onclick/tacmap, ) - 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 + behavior_delegate_type = /datum/behavior_delegate/praetorian_warden +/datum/xeno_strain/warden/apply_strain(mob/living/carbon/xenomorph/praetorian/prae) // 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) + prae.speed_modifier += XENO_SPEED_SLOWMOD_TIER_5 + prae.damage_modifier -= XENO_DAMAGE_MOD_SMALL - praetorian.recalculate_everything() - - apply_behavior_holder(praetorian) - praetorian.mutation_icon_state = PRAETORIAN_WARDEN - praetorian.mutation_type = PRAETORIAN_WARDEN + prae.recalculate_everything() /datum/behavior_delegate/praetorian_warden name = "Praetorian Warden Behavior Delegate" @@ -49,12 +39,15 @@ 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) 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 89% 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 7881c9aa75f1..365304259ac8 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" +/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 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( + 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 diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/hedgehog.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/hedgehog.dm similarity index 70% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/hedgehog.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/hedgehog.dm index 913883549fba..5cb756d8889d 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/hedgehog.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/hedgehog.dm @@ -1,41 +1,28 @@ -/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." +/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 = "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( + 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, ) - mutator_actions_to_add = list( + 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 + behavior_delegate_type = /datum/behavior_delegate/ravager_hedgehog - ravager.mutation_type = RAVAGER_HEDGEHOG +/datum/xeno_strain/hedgehog/apply_strain(mob/living/carbon/xenomorph/ravager/ravager) ravager.plasma_max = 0 - ravager.small_explosives_stun = FALSE + ravager.small_explosives_stun = TRUE 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 @@ -85,7 +72,6 @@ bound_xeno.speed_modifier += shard_lock_speed_mod bound_xeno.recalculate_speed() - shards_locked = FALSE // Return true if we have enough shards, false otherwise @@ -116,6 +102,15 @@ 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 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 90% 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..7b9bafadeb7b 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( + 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 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 55995ec0b264..ac0c381f5ed4 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))) @@ -148,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() @@ -161,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() @@ -196,31 +207,46 @@ 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() diff --git a/code/modules/mob/living/carbon/xenomorph/xeno_helpers.dm b/code/modules/mob/living/carbon/xenomorph/xeno_helpers.dm index 7324a3af6892..2e4b968d5a59 100644 --- a/code/modules/mob/living/carbon/xenomorph/xeno_helpers.dm +++ b/code/modules/mob/living/carbon/xenomorph/xeno_helpers.dm @@ -34,6 +34,23 @@ return 100 return round(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() return 0 @@ -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..271b06973a6b 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!")) + to_chat(src, SPAN_WARNING("A headhunter temporarily cut off our psychic connection!")) return hive.hive_ui.open_hive_status(src) diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 7c4eff0e2c15..6c10df5987d0 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -97,6 +97,8 @@ EyeBlur(effect) if(DROWSY) drowsyness = max(drowsyness, effect) + if(ROOT) + Root(effect) updatehealth() return TRUE @@ -130,6 +132,8 @@ AdjustEyeBlur(effect) if(DROWSY) drowsyness = POSITIVE(drowsyness + effect) + if(ROOT) + AdjustRoot(effect) updatehealth() return TRUE @@ -160,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/living.dm b/code/modules/mob/living/living.dm index d5190318715c..9500d0a30e37 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -224,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() . = ..() @@ -445,9 +460,12 @@ /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 diff --git a/code/modules/mob/living/living_health_procs.dm b/code/modules/mob/living/living_health_procs.dm index 819b3397c289..986d8740f11f 100644 --- a/code/modules/mob/living/living_health_procs.dm +++ b/code/modules/mob/living/living_health_procs.dm @@ -127,6 +127,57 @@ 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) @@ -445,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) @@ -474,7 +525,8 @@ hallucination = 0 jitteriness = 0 dizziness = 0 - + stamina.apply_damage(-stamina.max_stamina) + // restore all of a human's blood if(ishuman(src)) var/mob/living/carbon/human/H = src @@ -499,7 +551,7 @@ tod = null timeofdeath = 0 - // restore us to conciousness + // restore us to consciousness set_stat(CONSCIOUS) regenerate_all_icons() diff --git a/code/modules/mob/living/living_healthscan.dm b/code/modules/mob/living/living_healthscan.dm index f3355157a40f..30358dea20c1 100644 --- a/code/modules/mob/living/living_healthscan.dm +++ b/code/modules/mob/living/living_healthscan.dm @@ -76,9 +76,15 @@ 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. + // Fake death will make the scanner think they died of oxygen damage, thus it returns enough damage to kill minus already received damage. return round(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)) return target_mob.health @@ -97,7 +103,7 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) "clone" = round(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,7 +184,7 @@ 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( @@ -190,7 +196,6 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) "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 @@ -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) diff --git a/code/modules/mob/living/living_verbs.dm b/code/modules/mob/living/living_verbs.dm index 1d51e43fd71d..777aa66fe29d 100644 --- a/code/modules/mob/living/living_verbs.dm +++ b/code/modules/mob/living/living_verbs.dm @@ -66,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 @@ -128,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)) 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/say.dm b/code/modules/mob/living/silicon/say.dm index aaf648b00a50..6cf271738bf5 100644 --- a/code/modules/mob/living/silicon/say.dm +++ b/code/modules/mob/living/silicon/say.dm @@ -39,7 +39,7 @@ if(!findtext(message, "*", 2)) //Second asterisk means it is markup for *bold*, not an *emote. return emote(lowertext(copytext(message,2))) - //Must be concious to speak + //Must be conscious to speak if (stat) return diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index b47860806e5c..02c1baa48c28 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -145,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/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 11064634d498..b76935c4c158 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 diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index dcab9f70cbb5..14f220b3a77f 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? 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 79cd0c521067..13408be2096e 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,21 +429,6 @@ 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) @@ -761,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()) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 41ef2bf3fe4e..44286b5fabe0 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 @@ -429,4 +427,3 @@ return src.regenerate_icons() - diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index b9c5dd12a8aa..bd7370f4806f 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -146,6 +146,7 @@ xeno.visible_message(SPAN_WARNING("[xeno] devours [pulled]!"), \ 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 diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index ce9e16e3747e..0f128b5bcb46 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -342,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 @@ -386,68 +386,16 @@ GLOBAL_LIST_INIT(limb_types_by_name, list( /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 @@ -482,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)) @@ -601,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 @@ -652,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() @@ -660,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_verbs.dm b/code/modules/mob/mob_verbs.dm index 1ba8985d56bd..f12d00cc0988 100644 --- a/code/modules/mob/mob_verbs.dm +++ b/code/modules/mob/mob_verbs.dm @@ -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" diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 810eb4006634..f436863b2f2f 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -347,7 +347,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])
      " @@ -451,7 +451,7 @@ var/time_remaining = SSticker.GetTimeLeft() if(time_remaining > 0) - . += "Time To Start: [round(time_remaining)]s" + . += "Time To Start: [round(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 7e8439cee244..174c05783550 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -257,8 +257,10 @@ 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_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) diff --git a/code/modules/movement/launching/launching.dm b/code/modules/movement/launching/launching.dm index 1c2952599987..778c452a3240 100644 --- a/code/modules/movement/launching/launching.dm +++ b/code/modules/movement/launching/launching.dm @@ -183,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 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/nanoui.dm b/code/modules/nano/nanoui.dm index 479c958239cf..3e26b2b8a1da 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. diff --git a/code/modules/nightmare/nmnodes/mapload.dm b/code/modules/nightmare/nmnodes/mapload.dm index 4b9ae2a3014b..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,7 +94,7 @@ . = ..() 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)) diff --git a/code/modules/nightmare/nmtasks/mapload.dm b/code/modules/nightmare/nmtasks/mapload.dm index 1ace7cd2fbec..a49bbbabdde5 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,40 @@ 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]), + var/list/turf_block = 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 turf_block) + 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/organs/limbs.dm b/code/modules/organs/limbs.dm index 09ce36dbbfcb..4c3954575245 100644 --- a/code/modules/organs/limbs.dm +++ b/code/modules/organs/limbs.dm @@ -580,8 +580,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() diff --git a/code/modules/paperwork/desk_bell.dm b/code/modules/paperwork/desk_bell.dm new file mode 100644 index 000000000000..6e7de1101ae7 --- /dev/null +++ b/code/modules/paperwork/desk_bell.dm @@ -0,0 +1,95 @@ +// 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 diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 08711f295085..0d5eca1dd9a1 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) @@ -116,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].")) @@ -125,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].")) @@ -134,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 @@ -239,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 f42030cce69d..df39248e343a 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -90,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) @@ -122,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 @@ -132,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" @@ -149,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 ..() @@ -270,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 = "" @@ -343,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/power/apc.dm b/code/modules/power/apc.dm index dd0327e3821d..76550fbe079b 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 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/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/smes.dm b/code/modules/power/smes.dm index 7cf72ce1cb81..46d9374cb832 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 @@ -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..d6fb7bb66841 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 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..170bb539bc73 100644 --- a/code/modules/projectiles/ammo_boxes/magazine_boxes.dm +++ b/code/modules/projectiles/ammo_boxes/magazine_boxes.dm @@ -170,6 +170,19 @@ /obj/item/ammo_box/magazine/m4ra/heap/empty empty = TRUE +//-----------------------XM51 Breaching Scattergun Mag Box----------------------- + +/obj/item/ammo_box/magazine/xm51 + name = "\improper 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 diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index d00b6cbe90c9..a678ceda165c 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -503,13 +503,13 @@ 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_DEACTIVATED, WEAKREF(user))) force_light(on = TRUE) - REMOVE_TRAIT(src, TRAIT_GUN_LIGHT_DEACTIVATED, user) + REMOVE_TRAIT(src, TRAIT_GUN_LIGHT_DEACTIVATED, WEAKREF(user)) else set_gun_user(null) force_light(on = FALSE) - ADD_TRAIT(src, TRAIT_GUN_LIGHT_DEACTIVATED, user) + ADD_TRAIT(src, TRAIT_GUN_LIGHT_DEACTIVATED, WEAKREF(user)) return ..() @@ -663,11 +663,7 @@ 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) @@ -727,8 +723,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 \\ @@ -1348,7 +1344,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. @@ -1423,6 +1419,10 @@ and you're good to go. 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.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. @@ -1525,7 +1525,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 @@ -1755,7 +1755,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 @@ -1767,7 +1767,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 @@ -1776,12 +1776,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 b74febcbaa07..a2801821349c 100644 --- a/code/modules/projectiles/gun_attachables.dm +++ b/code/modules/projectiles/gun_attachables.dm @@ -455,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" @@ -466,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" @@ -477,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" @@ -1271,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) @@ -1814,6 +1827,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, ...) @@ -1821,6 +1835,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." @@ -2105,6 +2132,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)." @@ -2197,7 +2261,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" @@ -2223,7 +2287,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" @@ -2249,7 +2313,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" @@ -2261,7 +2325,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" @@ -2273,7 +2337,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" @@ -2285,7 +2349,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" @@ -2297,7 +2361,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" @@ -2309,7 +2373,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" @@ -2438,7 +2502,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. @@ -2449,7 +2513,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 @@ -2941,7 +3005,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 @@ -3157,12 +3221,16 @@ 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 + 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 @@ -3264,6 +3332,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() ..() @@ -3274,16 +3346,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() @@ -3297,60 +3386,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) @@ -3358,25 +3449,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() @@ -3393,10 +3488,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) @@ -3408,6 +3503,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" @@ -3424,6 +3544,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 66e3a65f2f77..e5d0ef1c0ef8 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,7 +390,7 @@ 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 @@ -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 @@ -782,7 +782,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)) diff --git a/code/modules/projectiles/guns/boltaction.dm b/code/modules/projectiles/guns/boltaction.dm index d21cb5b87254..16ccb3438e23 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' @@ -279,3 +279,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/flamer/flamer.dm b/code/modules/projectiles/guns/flamer/flamer.dm index b9582cf5adb2..64499a71bb12 100644 --- a/code/modules/projectiles/guns/flamer/flamer.dm +++ b/code/modules/projectiles/guns/flamer/flamer.dm @@ -136,7 +136,10 @@ click_empty(user) else user.track_shot(initial(name)) - unleash_flame(target, user) + if(current_mag.reagents.has_reagent("stablefoam")) + unleash_foam(target, user) + else + unleash_flame(target, user) return AUTOFIRE_CONTINUE return NONE @@ -214,7 +217,7 @@ 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,6 +229,59 @@ 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_foam(atom/target, mob/living/user) + last_fired = world.time + if(!current_mag || !current_mag.reagents || !current_mag.reagents.reagent_list.len) + 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(turfs.len, 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 = round(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!")) @@ -478,15 +534,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) diff --git a/code/modules/projectiles/guns/flamer/flameshape.dm b/code/modules/projectiles/guns/flamer/flameshape.dm index ae6c2dec0a67..3e5e398c91e8 100644 --- a/code/modules/projectiles/guns/flamer/flameshape.dm +++ b/code/modules/projectiles/guns/flamer/flameshape.dm @@ -74,7 +74,7 @@ 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..362841651b2d 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' diff --git a/code/modules/projectiles/guns/rifles.dm b/code/modules/projectiles/guns/rifles.dm index 1ee8aa189ed3..b631f093bafe 100644 --- a/code/modules/projectiles/guns/rifles.dm +++ b/code/modules/projectiles/guns/rifles.dm @@ -1763,9 +1763,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 +1804,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 +1844,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 +1867,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..5acad2255356 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,7 +1019,7 @@ 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. + var/list/turf/path = get_line(get_step_towards(src, T), T) //Same path throw code will calculate from. if(!path.len) throw_turfs.Remove(T) continue diff --git a/code/modules/projectiles/guns/smartgun.dm b/code/modules/projectiles/guns/smartgun.dm index 8ac629310132..a2f2a8a003a2 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,7 +499,7 @@ if((angledegree*2) > angle_list[angle]) continue - path = getline2(user, M) + path = get_line(user, M) if(path.len) var/blocked = FALSE diff --git a/code/modules/projectiles/guns/smgs.dm b/code/modules/projectiles/guns/smgs.dm index 3d1a78e606fa..69fd5d968750 100644 --- a/code/modules/projectiles/guns/smgs.dm +++ b/code/modules/projectiles/guns/smgs.dm @@ -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..f1d951324930 100644 --- a/code/modules/projectiles/guns/specialist/launcher/grenade_launcher.dm +++ b/code/modules/projectiles/guns/specialist/launcher/grenade_launcher.dm @@ -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/sniper.dm b/code/modules/projectiles/guns/specialist/sniper.dm index 673de1a59602..5b4a81fde273 100644 --- a/code/modules/projectiles/guns/specialist/sniper.dm +++ b/code/modules/projectiles/guns/specialist/sniper.dm @@ -19,6 +19,12 @@ 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) @@ -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) && (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) + var/list/turf/path = get_line(firer, target, include_start_atom = FALSE) if(!path.len || 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,15 @@ /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.\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 + 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 +380,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 +400,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 +412,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. )) diff --git a/code/modules/projectiles/magazines/flamer.dm b/code/modules/projectiles/magazines/flamer.dm index 7fba325177c6..dfd9eda20d8a 100644 --- a/code/modules/projectiles/magazines/flamer.dm +++ b/code/modules/projectiles/magazines/flamer.dm @@ -90,7 +90,7 @@ to_chat(user, SPAN_WARNING("You can't mix fuel mixtures!")) return - if(!to_add.intensityfire) + if(!to_add.intensityfire && to_add.id != "stablefoam") to_chat(user, SPAN_WARNING("This chemical is not potent enough to be used in a flamethrower!")) return 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/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..698d9efeaca2 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 diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index f87b86a20c1f..edb565158185 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() @@ -164,6 +174,12 @@ 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)) else if(distance_travelled > effective_range_max) @@ -215,8 +231,9 @@ //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) + 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) @@ -381,7 +398,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) @@ -910,8 +927,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) @@ -1042,9 +1059,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) @@ -1216,15 +1234,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("[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 @@ -1232,7 +1250,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 @@ -1241,15 +1259,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-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index 14cd03f4fe61..36e8f9e179ff 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 @@ -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) @@ -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)) @@ -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 b8c3d20df671..9825c12501c0 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -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) - - var/chance = 1 - var/block = 0 + 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 - 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 + if(istype(clothing, /obj/item/clothing/head/bio_hood)) + if(prob(75)) + block = TRUE - if(istype(C, /obj/item/clothing/head/bio_hood)) - if(prob(75)) - block = 1 + chance *= 100 - chance = chance * 100 + if(prob(chance) && !block) + if(M.reagents) + M.reagents.add_reagent(self.id, self.volume * 0.5) - 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) + for(var/datum/chem_property/property in self.properties) + var/potency = property.level * 0.5 + property.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) diff --git a/code/modules/reagents/chemistry_machinery/chem_master.dm b/code/modules/reagents/chemistry_machinery/chem_master.dm index dc5206bb2df5..5b145f75940f 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") @@ -355,7 +363,8 @@ 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 += "Add label to [loaded_pill_bottle] \[[loaded_pill_bottle.contents.len]/[loaded_pill_bottle.max_storage_space]\]
      " + dat += "Set color 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

      " else dat += "No pill bottle inserted.

      " diff --git a/code/modules/reagents/chemistry_machinery/chem_simulator.dm b/code/modules/reagents/chemistry_machinery/chem_simulator.dm index 8a95e3f3b07e..dd7f008e47d2 100644 --- a/code/modules/reagents/chemistry_machinery/chem_simulator.dm +++ b/code/modules/reagents/chemistry_machinery/chem_simulator.dm @@ -380,8 +380,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] @@ -577,8 +576,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 +589,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() diff --git a/code/modules/reagents/chemistry_machinery/chem_storage.dm b/code/modules/reagents/chemistry_machinery/chem_storage.dm index 692daef7864f..3df417741d82 100644 --- a/code/modules/reagents/chemistry_machinery/chem_storage.dm +++ b/code/modules/reagents/chemistry_machinery/chem_storage.dm @@ -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..f44da3af9613 100644 --- a/code/modules/reagents/chemistry_machinery/pandemic.dm +++ b/code/modules/reagents/chemistry_machinery/pandemic.dm @@ -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"]] diff --git a/code/modules/reagents/chemistry_machinery/reagent_grinder.dm b/code/modules/reagents/chemistry_machinery/reagent_grinder.dm index 1de4a84451e1..3c596b6a79a2 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)) diff --git a/code/modules/reagents/chemistry_properties/prop_special.dm b/code/modules/reagents/chemistry_properties/prop_special.dm index 52354f0d6b01..cee75ca58c06 100644 --- a/code/modules/reagents/chemistry_properties/prop_special.dm +++ b/code/modules/reagents/chemistry_properties/prop_special.dm @@ -96,7 +96,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) diff --git a/code/modules/reagents/chemistry_reactions/other.dm b/code/modules/reagents/chemistry_reactions/other.dm index 6b60ae89059c..28250aa38803 100644 --- a/code/modules/reagents/chemistry_reactions/other.dm +++ b/code/modules/reagents/chemistry_reactions/other.dm @@ -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/food.dm b/code/modules/reagents/chemistry_reagents/food.dm index 2ee2a05bef32..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 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 ae1a42bd5e6d..dc70d65452fe 100644 --- a/code/modules/reagents/chemistry_reagents/other.dm +++ b/code/modules/reagents/chemistry_reagents/other.dm @@ -13,7 +13,7 @@ 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) @@ -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) @@ -592,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) @@ -613,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" @@ -664,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") @@ -690,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" diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index e5770d2f8437..c82109156a6c 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -652,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) diff --git a/code/modules/shuttle/computer.dm b/code/modules/shuttle/computer.dm index 79377d9c0849..5f96de812819 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 diff --git a/code/modules/shuttle/computers/dropship_computer.dm b/code/modules/shuttle/computers/dropship_computer.dm index ba6683321f9c..92196cb07e2e 100644 --- a/code/modules/shuttle/computers/dropship_computer.dm +++ b/code/modules/shuttle/computers/dropship_computer.dm @@ -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) @@ -239,7 +242,7 @@ 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 @@ -324,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) diff --git a/code/modules/shuttle/computers/escape_pod_computer.dm b/code/modules/shuttle/computers/escape_pod_computer.dm index c45ac7d56102..2af71fadaddb 100644 --- a/code/modules/shuttle/computers/escape_pod_computer.dm +++ b/code/modules/shuttle/computers/escape_pod_computer.dm @@ -55,7 +55,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 @@ -238,7 +238,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..63e220deadc6 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 diff --git a/code/modules/shuttle/dropship_hijack.dm b/code/modules/shuttle/dropship_hijack.dm index c01445be5b5b..73150f5bfc08 100644 --- a/code/modules/shuttle/dropship_hijack.dm +++ b/code/modules/shuttle/dropship_hijack.dm @@ -176,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") @@ -191,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) diff --git a/code/modules/shuttle/helpers.dm b/code/modules/shuttle/helpers.dm index 6b29f155582e..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]") diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 85fc38bf5f1b..5e8d1db63716 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -380,10 +380,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) @@ -442,6 +514,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 +525,12 @@ 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) + // ================ 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 @@ -716,6 +792,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,6 +814,8 @@ setTimer(callTime * engine_coeff()) enterTransit() return + if(SHUTTLE_CRASHED) + return set_idle() @@ -1004,3 +1086,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/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 f741df301bbb..cb04d9a81ddb 100644 --- a/code/modules/shuttle/shuttles/dropship.dm +++ b/code/modules/shuttle/shuttles/dropship.dm @@ -43,6 +43,9 @@ 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)) @@ -81,10 +84,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 @@ -118,15 +123,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 + 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 + 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() . = ..() @@ -287,7 +304,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 diff --git a/code/modules/shuttle/shuttles/ert.dm b/code/modules/shuttle/shuttles/ert.dm index b619645c501c..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) @@ -77,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 @@ -182,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) . = ..() @@ -189,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 @@ -254,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" @@ -263,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 @@ -310,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/shuttle.dm b/code/modules/shuttles/shuttle.dm index dc6f3a682b24..a7dbe35a9776 100644 --- a/code/modules/shuttles/shuttle.dm +++ b/code/modules/shuttles/shuttle.dm @@ -218,7 +218,7 @@ if(iselevator) if(istype(T,/turf/open/space)) if(is_mainship_level(T.z)) - T.ChangeTurf(/turf/open/floor/almayer/empty) + T.ChangeTurf(/turf/open/floor/almayer/empty/requisitions) else T.ChangeTurf(/turf/open/gm/empty) else if(istype(T,/turf/open/space)) 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/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 8be96f27404a..15622228e91f 100644 --- a/code/modules/tgs/core/core.dm +++ b/code/modules/tgs/core/core.dm @@ -166,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 616263098fd3..f4806f7adb97 100644 --- a/code/modules/tgs/v5/__interop_version.dm +++ b/code/modules/tgs/v5/__interop_version.dm @@ -1 +1 @@ -"5.8.0" +"5.9.0" diff --git a/code/modules/tgs/v5/_defines.dm b/code/modules/tgs/v5/_defines.dm index 1c7d67d20cdf..92c7a8388a71 100644 --- a/code/modules/tgs/v5/_defines.dm +++ b/code/modules/tgs/v5/_defines.dm @@ -14,6 +14,7 @@ #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" @@ -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 a5c064a8eaf1..95b8edd3ee5c 100644 --- a/code/modules/tgs/v5/api.dm +++ b/code/modules/tgs/v5/api.dm @@ -27,6 +27,8 @@ var/chunked_requests = 0 var/list/chunked_topics = list() + var/list/pending_events = list() + var/detached = FALSE /datum/tgs_api/v5/New() @@ -46,6 +48,10 @@ var/datum/tgs_version/api_version = ApiVersion() 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!") @@ -125,7 +131,7 @@ TGS_DEBUG_LOG("RequireInitialBridgeResponse: Starting sleep") logged = TRUE - sleep(1) + sleep(world.tick_lag) TGS_DEBUG_LOG("RequireInitialBridgeResponse: Passed") @@ -249,6 +255,40 @@ 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 a0ab35987670..0c5e701a32b6 100644 --- a/code/modules/tgs/v5/bridge.dm +++ b/code/modules/tgs/v5/bridge.dm @@ -65,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 @@ -77,8 +77,11 @@ /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 @@ -88,7 +91,7 @@ TGS_ERROR_LOG("Failed bridge request, missing content!") return - var/response_json = file2text(content) + var/response_json = TGS_FILE2TEXT_NATIVE(content) if(!response_json) TGS_ERROR_LOG("Failed bridge request, failed to load content!") return diff --git a/code/modules/tgs/v5/topic.dm b/code/modules/tgs/v5/topic.dm index 05e6c4e1b214..e1f2cb638578 100644 --- a/code/modules/tgs/v5/topic.dm +++ b/code/modules/tgs/v5/topic.dm @@ -176,6 +176,10 @@ 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) @@ -276,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 d531d4b7b9dd..237207fdfd05 100644 --- a/code/modules/tgs/v5/undefs.dm +++ b/code/modules/tgs/v5/undefs.dm @@ -14,6 +14,7 @@ #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 @@ -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 c29f83a981d1..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 @@ -105,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/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_number_input.dm b/code/modules/tgui/tgui_number_input.dm index aa189b1d2039..356448853db3 100644 --- a/code/modules/tgui/tgui_number_input.dm +++ b/code/modules/tgui/tgui_number_input.dm @@ -145,6 +145,7 @@ "min_value" = min_value, "preferences" = list(), "title" = title, + "integer_only" = integer_only ) /datum/tgui_input_number/ui_data(mob/user) @@ -158,11 +159,13 @@ 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 [usr]") + if(choice != choice) //isnan + CRASH("A NaN was input into tgui input number by [usr]") if(integer_only) - choice = round(params["entry"]) + choice = round(choice) if(choice > max_value) CRASH("A number greater than the max value was input into tgui input number by [usr]") if(choice < min_value) 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..4ef1f06bfac0 100644 --- a/code/modules/tgui_panel/telemetry.dm +++ b/code/modules/tgui_panel/telemetry.dm @@ -86,7 +86,7 @@ // Check for a malformed history object if (!row || row.len < 3 || (!row["ckey"] || !row["address"] || !row["computer_id"])) - return + 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/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/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/interior/interactable/seats.dm b/code/modules/vehicles/interior/interactable/seats.dm index 253b4a066b4f..8abbf9f1190d 100644 --- a/code/modules/vehicles/interior/interactable/seats.dm +++ b/code/modules/vehicles/interior/interactable/seats.dm @@ -108,7 +108,9 @@ 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 + if(!HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS)) + return + 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/interior.dm b/code/modules/vehicles/interior/interior.dm index f2afcd5ae5f7..8fb65602c9b3 100644 --- a/code/modules/vehicles/interior/interior.dm +++ b/code/modules/vehicles/interior/interior.dm @@ -304,21 +304,13 @@ // 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() diff --git a/code/modules/vehicles/multitile/multitile_hardpoints.dm b/code/modules/vehicles/multitile/multitile_hardpoints.dm index a6014c6cf2cd..2a6f97dda06f 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 || !in_range(src, user)) return var/obj/item/hardpoint/old = chosen_hp diff --git a/code/modules/vehicles/multitile/multitile_interaction.dm b/code/modules/vehicles/multitile/multitile_interaction.dm index a93872e4e9ac..552d9cea4561 100644 --- a/code/modules/vehicles/multitile/multitile_interaction.dm +++ b/code/modules/vehicles/multitile/multitile_interaction.dm @@ -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/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 014452426a3c..8632159b4f6d 100644 --- a/code/modules/vehicles/vehicle.dm +++ b/code/modules/vehicles/vehicle.dm @@ -84,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 diff --git a/code/span_macros.dm b/code/span_macros.dm index b6a0e79a956b..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]" 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 613ac61f6a71..757f5e3acab1 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -101,6 +101,7 @@ #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" @@ -112,6 +113,7 @@ #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" @@ -144,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" @@ -169,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" @@ -181,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" @@ -295,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" @@ -338,6 +346,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" @@ -403,6 +412,7 @@ #include "code\datums\components\overlay_lighting.dm" #include "code\datums\components\rename.dm" #include "code\datums\components\speed_modifier.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" @@ -475,6 +485,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" @@ -483,6 +494,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" @@ -501,6 +513,7 @@ #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\forsaken_xenos.dm" #include "code\datums\emergency_calls\goons.dm" @@ -779,9 +792,10 @@ #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\cic\captain.dm" #include "code\game\jobs\job\command\cic\executive.dm" @@ -820,6 +834,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" @@ -832,7 +847,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" @@ -864,6 +878,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" @@ -919,12 +934,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" @@ -966,7 +983,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" @@ -1236,6 +1255,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" @@ -1278,13 +1298,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" @@ -1391,10 +1415,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" @@ -1560,11 +1582,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" @@ -1756,11 +1783,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" @@ -1892,6 +1922,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" @@ -1962,7 +1993,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" @@ -2001,6 +2031,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" @@ -2042,23 +2073,24 @@ #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\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" @@ -2139,6 +2171,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" @@ -2330,6 +2363,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" @@ -2350,6 +2384,7 @@ #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" diff --git a/config/example/config.txt b/config/example/config.txt index 8a976e02a580..0aff7ee6def9 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,15 @@ 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. 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..01d0ca5c976c 100644 --- a/dependencies.sh +++ b/dependencies.sh @@ -4,8 +4,8 @@ #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 @@ -15,9 +15,7 @@ export NODE_VERSION=14 export NODE_VERSION_PRECISE=14.16.1 # 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 diff --git a/html/changelogs/AutoChangeLog-pr-5442.yml b/html/changelogs/AutoChangeLog-pr-5442.yml deleted file mode 100644 index 0e9d841ebe98..000000000000 --- a/html/changelogs/AutoChangeLog-pr-5442.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TheGamerdk" -delete-after: True -changes: - - rscadd: "A hive collapse (No new Queen) while at 3 xenos or below is now a marine major, instead of a minor." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-5498.yml b/html/changelogs/AutoChangeLog-pr-5498.yml deleted file mode 100644 index 0102f9532458..000000000000 --- a/html/changelogs/AutoChangeLog-pr-5498.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Huffie56" -delete-after: True -changes: - - refactor: "creating it's own file for souto mobile code instead of it being in vehicle.dm." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-5525.yml b/html/changelogs/AutoChangeLog-pr-5525.yml deleted file mode 100644 index 3a739a4195d6..000000000000 --- a/html/changelogs/AutoChangeLog-pr-5525.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Drathek" -delete-after: True -changes: - - bugfix: "Fixed more item exploits" - - bugfix: "Fixed lingering overlays in inventories for metal stacks and cards" \ No newline at end of file diff --git a/html/changelogs/archive/2024-01.yml b/html/changelogs/archive/2024-01.yml index 037ef09120b7..01bc18eaee1b 100644 --- a/html/changelogs/archive/2024-01.yml +++ b/html/changelogs/archive/2024-01.yml @@ -323,3 +323,141 @@ 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/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/mob/hud/actions.dmi b/icons/mob/hud/actions.dmi index 820da22ea5b1..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/hud.dmi b/icons/mob/hud/hud.dmi index c9e4c0c6c23d..507ec0dd485b 100644 Binary files a/icons/mob/hud/hud.dmi and b/icons/mob/hud/hud.dmi differ diff --git a/icons/mob/hud/marine_hud.dmi b/icons/mob/hud/marine_hud.dmi index 5de7b83a9309..8eefce871099 100644 Binary files a/icons/mob/hud/marine_hud.dmi and b/icons/mob/hud/marine_hud.dmi differ diff --git a/icons/mob/humans/onmob/back.dmi b/icons/mob/humans/onmob/back.dmi index 4758f430a498..42d46bcc9abe 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 cfe8b33da4ee..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..ab93b68640fc 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/items_lefthand_0.dmi b/icons/mob/humans/onmob/items_lefthand_0.dmi index b3adba7e980e..4e8c1d59a41a 100644 Binary files a/icons/mob/humans/onmob/items_lefthand_0.dmi and b/icons/mob/humans/onmob/items_lefthand_0.dmi differ diff --git a/icons/mob/humans/onmob/items_lefthand_1.dmi b/icons/mob/humans/onmob/items_lefthand_1.dmi index 357a94f60cf7..91dc908a8293 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_0.dmi b/icons/mob/humans/onmob/items_righthand_0.dmi index 485e270510d8..b8285acc65ad 100644 Binary files a/icons/mob/humans/onmob/items_righthand_0.dmi and b/icons/mob/humans/onmob/items_righthand_0.dmi differ diff --git a/icons/mob/humans/onmob/items_righthand_1.dmi b/icons/mob/humans/onmob/items_righthand_1.dmi index 7bcc772c7375..c5b67e97c2e1 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 3fc9e8e0770b..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 a230aa7e4300..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..535e2cc69181 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 a140c4db6d8b..9126bfccb699 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/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/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/warrior.dmi b/icons/mob/xenos/warrior.dmi index e871f7749145..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_64x64.dmi b/icons/mob/xenos/weeds_64x64.dmi index 53c971cfe97c..895338f542f9 100644 Binary files a/icons/mob/xenos/weeds_64x64.dmi and b/icons/mob/xenos/weeds_64x64.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 fa03f0434fb5..be2602f76c57 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..2506ee0eb48d 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..ff0aa3d08ec8 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 7db2158ee5bf..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/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 e9da08f07477..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/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 7d67de8e5a2e..5057a89fe278 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..012eb4a9630a 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 8eb3d03d68c7..788e24bf46e6 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 7623a980e435..1203f3d18edd 100644 Binary files a/icons/obj/items/drinks.dmi and b/icons/obj/items/drinks.dmi differ diff --git a/icons/obj/items/items.dmi b/icons/obj/items/items.dmi index 80daeefc21d5..c4d34d3b790c 100644 Binary files a/icons/obj/items/items.dmi and b/icons/obj/items/items.dmi differ diff --git a/icons/obj/items/paper.dmi b/icons/obj/items/paper.dmi index fa8858e8a17b..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 a5df6761d289..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..8655a8bfcf2c 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/text.dmi b/icons/obj/items/weapons/guns/ammo_boxes/text.dmi index 911b727ba5f6..d9a8d5da3fbc 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/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/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/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..a746bce1716b 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/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 e0e50ab9ae09..4377a48779cb 100644 Binary files a/icons/obj/structures/closet.dmi and b/icons/obj/structures/closet.dmi differ diff --git a/icons/obj/structures/doors/blastdoors_shutters.dmi b/icons/obj/structures/doors/blastdoors_shutters.dmi index c5ec97be49b8..8c63d0580922 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/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/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/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_props64.dmi b/icons/obj/structures/props/almayer_props64.dmi index c45b37d6ef15..f47f19be9081 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/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/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_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/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 ac519f37fa84..996d0d44422d 100644 --- a/maps/bigredv2.json +++ b/maps/bigredv2.json @@ -11,6 +11,7 @@ "/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", @@ -25,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/desert_dam.json b/maps/desert_dam.json index 6df419583cd3..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_liaison", - "/datum/equipment_preset/survivor/colonial_marshal", + "/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/lv624.json b/maps/lv624.json index 76b00753db24..7c782c0a43bf 100644 --- a/maps/lv624.json +++ b/maps/lv624.json @@ -12,6 +12,7 @@ "/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" diff --git a/maps/map_files/BigRed/BigRed.dmm b/maps/map_files/BigRed/BigRed.dmm index 30ef6b33d69a..dbcf22e2e586 100644 --- a/maps/map_files/BigRed/BigRed.dmm +++ b/maps/map_files/BigRed/BigRed.dmm @@ -8,11 +8,6 @@ icon_state = "pwall" }, /area/space) -"aac" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, -/area/bigredv2/outside/n) "aad" = ( /turf/open/mars_cave{ icon_state = "mars_cave_2" @@ -165,6 +160,12 @@ icon_state = "dark" }, /area/bigredv2/outside/space_port) +"aaB" = ( +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "aaC" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, @@ -571,23 +572,11 @@ icon_state = "darkgreen2" }, /area/bigredv2/outside/space_port) -"abL" = ( -/obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, -/area/bigredv2/outside/n) "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" - }, -/area/bigredv2/outside/n) "abO" = ( /turf/open/mars_cave, /area/bigredv2/caves_north) @@ -629,33 +618,21 @@ /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/outside/n) "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/outside/n) -"abX" = ( -/obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/outside/n) "abY" = ( +/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_7" }, -/area/bigredv2/outside/n) +/area/bigredv2/caves_north) "abZ" = ( /obj/structure/machinery/light{ dir = 1 @@ -671,11 +648,16 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/space_port) -"acc" = ( +"acb" = ( +/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" + icon_state = "mars_cave_2" }, -/area/bigredv2/outside/n) +/area/bigredv2/caves_north) "acd" = ( /obj/effect/landmark/good_item, /turf/open/floor/plating, @@ -711,11 +693,6 @@ icon_state = "warnplate" }, /area/bigredv2/outside/space_port) -"ack" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, -/area/bigredv2/caves_lambda) "acl" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/medium, @@ -818,12 +795,6 @@ icon_state = "white" }, /area/bigredv2/outside/marshal_office) -"acE" = ( -/obj/structure/machinery/botany, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/marshal_office) "acF" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -831,11 +802,6 @@ icon_state = "white" }, /area/bigredv2/outside/marshal_office) -"acG" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, -/area/bigredv2/outside/n) "acH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -1289,22 +1255,6 @@ icon_state = "wood" }, /area/bigredv2/outside/marshal_office) -"adX" = ( -/obj/structure/bookcase/manuals/engineering, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/marshal_office) -"adY" = ( -/obj/structure/closet/secure_closet/detective, -/obj/item/weapon/gun/smg/fp9000, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/marshal_office) "adZ" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/lambda/xenobiology) @@ -3010,7 +2960,8 @@ /turf/open/floor, /area/bigredv2/outside/marshal_office) "aiN" = ( -/obj/structure/machinery/computer/prisoner, +/obj/structure/surface/table, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor, /area/bigredv2/outside/marshal_office) "aiO" = ( @@ -3308,11 +3259,6 @@ icon_state = "bcircuit" }, /area/bigredv2/outside/marshal_office) -"ajD" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, -/area/bigredv2/outside/n) "ajE" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -3502,25 +3448,12 @@ icon_state = "bcircuit" }, /area/bigredv2/outside/marshal_office) -"akf" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor{ - dir = 8; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) -"akg" = ( -/obj/effect/landmark/static_comms/net_one, +"akh" = ( /turf/open/floor{ - icon_state = "bcircuit" + dir = 1; + icon_state = "asteroidfloor" }, -/area/bigredv2/outside/marshal_office) +/area/bigredv2/outside/telecomm/n_cave) "aki" = ( /obj/structure/surface/table, /obj/item/clothing/mask/gas, @@ -3577,8 +3510,7 @@ /turf/open/floor, /area/bigredv2/outside/marshal_office) "akr" = ( -/obj/structure/surface/table, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/obj/structure/machinery/computer/prisoner, /turf/open/floor, /area/bigredv2/outside/marshal_office) "aks" = ( @@ -3725,26 +3657,12 @@ icon_state = "dark" }, /area/bigredv2/outside/marshal_office) -"akN" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, +"akP" = ( /turf/open/floor{ - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) -"akO" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_x = -1; - pixel_y = 1 - }, -/turf/open/floor{ - dir = 6; - icon_state = "red" + dir = 8; + icon_state = "asteroidwarning" }, -/area/bigredv2/outside/marshal_office) +/area/bigredv2/outside/telecomm/n_cave) "akQ" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/door/window/brigdoor/southright, @@ -3820,6 +3738,14 @@ icon_state = "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" + }, +/area/bigredv2/caves/lambda/xenobiology) "ale" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -3889,9 +3815,12 @@ }, /area/bigredv2/outside/nw) "alp" = ( -/obj/structure/machinery/light, +/obj/structure/machinery/door/airlock/almayer/security/glass/colony{ + dir = 1; + name = "\improper Marshal Office Evidence Room" + }, /turf/open/floor{ - icon_state = "bcircuit" + icon_state = "delivery" }, /area/bigredv2/outside/marshal_office) "alr" = ( @@ -3944,15 +3873,6 @@ }, /turf/open/floor, /area/bigredv2/outside/marshal_office) -"aly" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/obj/structure/barricade/handrail{ - dir = 4 - }, -/turf/open/floor, -/area/bigredv2/outside/marshal_office) "alz" = ( /obj/structure/bed/chair{ dir = 4 @@ -4259,18 +4179,6 @@ /obj/effect/landmark/survivor_spawner, /turf/open/floor, /area/bigredv2/outside/marshal_office) -"amv" = ( -/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) "amw" = ( /obj/structure/bed/chair{ dir = 4 @@ -4572,11 +4480,6 @@ /obj/effect/spawner/random/powercell, /turf/open/floor/plating, /area/bigredv2/caves/lambda/xenobiology) -"ann" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, -/area/bigredv2/outside/n) "ano" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "\improper Lambda Lab Maintenance Storage" @@ -4605,11 +4508,14 @@ }, /area/bigredv2/outside/medical) "ant" = ( -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" +/obj/structure/window/framed/solaris, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4; + id = "Dormitories"; + name = "\improper Dormitories Shutters" }, -/area/bigredv2/outside/ne) +/turf/open/floor/plating, +/area/bigredv2/outside/general_offices) "anu" = ( /obj/structure/machinery/light{ dir = 4 @@ -4774,10 +4680,13 @@ /turf/closed/wall/solaris, /area/bigredv2/outside/hydroponics) "anU" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_20" +/obj/structure/window/framed/solaris, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "Greenhouse"; + name = "\improper Greenhouse Shutters" }, -/area/bigredv2/caves_lambda) +/turf/open/floor/plating, +/area/bigredv2/outside/hydroponics) "anV" = ( /obj/item/reagent_container/spray/pepper, /turf/open/floor{ @@ -4809,9 +4718,6 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/medical) -"aoa" = ( -/turf/closed/wall/solaris/reinforced, -/area/bigredv2/caves_north) "aob" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/lambda/virology) @@ -4916,29 +4822,6 @@ }, /turf/open/floor, /area/bigredv2/outside/general_offices) -"aor" = ( -/obj/item/clothing/under/darkred, -/obj/structure/surface/rack, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) -"aos" = ( -/obj/structure/surface/rack, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) -"aot" = ( -/obj/structure/machinery/washing_machine, -/obj/item/clothing/under/brown, -/obj/structure/machinery/washing_machine{ - pixel_y = 13 - }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) "aou" = ( /turf/open/floor/plating, /area/bigredv2/outside/general_offices) @@ -5173,12 +5056,6 @@ icon_state = "freezerfloor" }, /area/bigredv2/outside/general_offices) -"apf" = ( -/obj/structure/pipes/vents/pump/on, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) "apg" = ( /obj/item/clothing/under/lightbrown, /turf/open/floor{ @@ -5379,9 +5256,6 @@ icon_state = "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{ @@ -5672,7 +5546,7 @@ }, /area/bigredv2/outside/medical) "aqv" = ( -/obj/structure/machinery/cm_vending/sorted/medical/no_access, +/obj/structure/bed, /turf/open/floor{ icon_state = "white" }, @@ -5690,20 +5564,6 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/library) -"aqy" = ( -/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{ - icon_state = "white" - }, -/area/bigredv2/outside/medical) "aqz" = ( /obj/structure/window/framed/solaris, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -5712,15 +5572,6 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/bar) -"aqB" = ( -/obj/structure/machinery/computer/crew{ - density = 0; - pixel_y = 16 - }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/medical) "aqC" = ( /obj/structure/surface/table, /turf/open/floor{ @@ -5728,33 +5579,6 @@ icon_state = "whitebluefull" }, /area/bigredv2/outside/medical) -"aqE" = ( -/obj/structure/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/n) -"aqF" = ( -/obj/structure/surface/table, -/obj/item/bodybag, -/obj/item/bodybag, -/obj/item/bodybag, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, -/area/bigredv2/outside/medical) -"aqG" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/n) "aqH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -5877,22 +5701,6 @@ icon_state = "elevatorshaft" }, /area/bigredv2/caves/lambda/breakroom) -"aqZ" = ( -/obj/structure/noticeboard{ - desc = "A board for pinning important items upon."; - dir = 1; - name = "trophy board"; - pixel_y = 30 - }, -/obj/item/XenoBio/Chitin{ - anchored = 1; - pixel_y = 27 - }, -/turf/open/floor{ - dir = 1; - icon_state = "elevatorshaft" - }, -/area/bigredv2/caves/lambda/breakroom) "ara" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/device/flashlight/lamp{ @@ -5970,7 +5778,7 @@ }, /area/bigredv2/outside/medical) "ark" = ( -/obj/structure/bed, +/obj/structure/bed/roller, /turf/open/floor{ icon_state = "white" }, @@ -5986,15 +5794,6 @@ icon_state = "white" }, /area/bigredv2/outside/medical) -"arn" = ( -/obj/structure/machinery/computer/med_data{ - density = 0; - pixel_y = 16 - }, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/medical) "arp" = ( /turf/open/mars{ icon_state = "mars_dirt_3" @@ -6006,36 +5805,12 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/outside/n) -"arr" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, -/area/bigredv2/outside/n) "ars" = ( /obj/structure/bed/chair{ dir = 1 }, /turf/open/floor, /area/bigredv2/outside/general_offices) -"art" = ( -/obj/structure/surface/table, -/obj/item/clothing/under/lightbrown, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) -"aru" = ( -/obj/structure/surface/table, -/obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) -"arv" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, -/area/bigredv2/outside/n) "arw" = ( /obj/structure/machinery/power/apc, /turf/open/floor/plating, @@ -6058,14 +5833,6 @@ icon_state = "dark" }, /area/bigredv2/outside/general_offices) -"arz" = ( -/obj/structure/prop/vehicles/crawler{ - icon_state = "crawler_covered_bed" - }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/caves_lambda) "arA" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/rack, @@ -6212,14 +5979,6 @@ icon_state = "white" }, /area/bigredv2/outside/medical) -"arV" = ( -/obj/structure/pipes/vents/pump{ - dir = 8 - }, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/medical) "arW" = ( /obj/structure/surface/table, /obj/structure/machinery/light{ @@ -6339,12 +6098,6 @@ /obj/structure/window/framed/solaris/reinforced, /turf/open/floor/plating, /area/bigredv2/outside/virology) -"asm" = ( -/obj/item/device/flashlight/lantern, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/ne) "asn" = ( /obj/structure/surface/rack, /obj/item/clothing/suit/armor/vest, @@ -6489,13 +6242,6 @@ icon_state = "whitegreenfull" }, /area/bigredv2/outside/medical) -"asG" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/n) "asH" = ( /obj/structure/window/framed/solaris, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -6724,17 +6470,8 @@ icon_state = "whitepurplecorner" }, /area/bigredv2/outside/medical) -"atp" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/bed/roller, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/medical) "atq" = ( -/obj/structure/bed/roller, +/obj/structure/machinery/cm_vending/sorted/medical/no_access, /turf/open/floor{ icon_state = "white" }, @@ -6745,42 +6482,6 @@ icon_state = "white" }, /area/bigredv2/outside/medical) -"ats" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/obj/structure/surface/table, -/obj/structure/machinery/light, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/n) -"att" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/n) -"atu" = ( -/obj/structure/machinery/light, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/n) -"atv" = ( -/obj/structure/morgue{ - dir = 2 - }, -/turf/open/floor{ - dir = 9; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) "atw" = ( /obj/structure/window/framed/solaris, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -6978,18 +6679,6 @@ icon_state = "delivery" }, /area/bigredv2/outside/medical) -"atW" = ( -/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{ - icon_state = "delivery" - }, -/area/bigredv2/outside/medical) "atX" = ( /obj/item/stack/sheet/metal, /obj/effect/decal/cleanable/blood{ @@ -7141,6 +6830,12 @@ icon_state = "dark" }, /area/bigredv2/caves/lambda/breakroom) +"aus" = ( +/turf/open/floor{ + dir = 10; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "aut" = ( /turf/open/floor{ dir = 4; @@ -7164,17 +6859,6 @@ 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" - }, -/area/bigredv2/caves/lambda/breakroom) "aux" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -7268,13 +6952,6 @@ icon_state = "whitepurplecorner" }, /area/bigredv2/outside/medical) -"auJ" = ( -/obj/structure/bed/roller, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, -/area/bigredv2/outside/medical) "auK" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -7304,51 +6981,12 @@ icon_state = "whitegreen" }, /area/bigredv2/outside/medical) -"auO" = ( -/obj/structure/surface/table, -/obj/item/bodybag, -/obj/item/bodybag, -/obj/item/bodybag, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, -/area/bigredv2/outside/medical) "auP" = ( /turf/open/floor{ dir = 9; icon_state = "whiteblue" }, /area/bigredv2/outside/medical) -"auR" = ( -/obj/structure/morgue{ - dir = 2 - }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) -"auS" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/morgue{ - dir = 2 - }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) -"auT" = ( -/obj/structure/surface/table, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 5; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) "auU" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; @@ -7369,12 +7007,6 @@ "auW" = ( /turf/closed/wall/solaris/reinforced/hull, /area/bigredv2/outside/c) -"auX" = ( -/obj/structure/barricade/handrail, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/c) "auY" = ( /turf/open/floor/carpet, /area/bigredv2/caves/lambda/breakroom) @@ -7647,11 +7279,6 @@ }, /turf/open/floor, /area/bigredv2/outside/general_offices) -"avK" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, -/area/bigredv2/outside/n) "avM" = ( /obj/structure/machinery/light{ dir = 8 @@ -7791,11 +7418,6 @@ icon_state = "purple" }, /area/bigredv2/caves/lambda/research) -"awf" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, -/area/bigredv2/caves_lambda) "awg" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/green{ @@ -7823,14 +7445,6 @@ icon_state = "white" }, /area/bigredv2/outside/medical) -"awj" = ( -/obj/structure/machinery/door/airlock/almayer/medical{ - name = "\improper Medical Clinic Morgue" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/medical) "awk" = ( /obj/structure/machinery/medical_pod/sleeper, /turf/open/floor{ @@ -7843,13 +7457,6 @@ icon_state = "white" }, /area/bigredv2/outside/medical) -"awm" = ( -/obj/structure/machinery/optable, -/turf/open/floor{ - dir = 4; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) "awn" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, @@ -7914,19 +7521,6 @@ /obj/effect/landmark/crap_item, /turf/open/floor, /area/bigredv2/outside/general_offices) -"awx" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/outside/n) -"awy" = ( -/obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/ne) "awz" = ( /obj/item/ashtray/bronze{ pixel_x = -7 @@ -8145,12 +7739,6 @@ icon_state = "grimy" }, /area/bigredv2/outside/dorms) -"axf" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "grimy" - }, -/area/bigredv2/outside/dorms) "axg" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -8188,12 +7776,6 @@ /obj/structure/barricade/wooden, /turf/open/floor, /area/bigredv2/outside/general_offices) -"axm" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, -/area/bigredv2/outside/n) "axn" = ( /obj/structure/window/reinforced/toughened{ dir = 1; @@ -8314,20 +7896,6 @@ icon_state = "whitegreen" }, /area/bigredv2/outside/medical) -"axD" = ( -/obj/structure/morgue{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) -"axE" = ( -/turf/open/floor{ - dir = 6; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) "axF" = ( /obj/structure/barricade/wooden, /obj/structure/barricade/wooden, @@ -8643,11 +8211,6 @@ icon_state = "wood" }, /area/bigredv2/outside/general_offices) -"ayz" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, -/area/bigredv2/outside/ne) "ayA" = ( /obj/structure/machinery/vending/snack, /obj/structure/machinery/light, @@ -8809,12 +8372,6 @@ "ayV" = ( /turf/open/floor/plating, /area/bigredv2/outside/medical) -"ayW" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/plating, -/area/bigredv2/outside/medical) "ayX" = ( /obj/effect/landmark/good_item, /turf/open/floor, @@ -8855,16 +8412,6 @@ 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" - }, -/area/bigredv2/outside/ne) "azf" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -9065,11 +8612,13 @@ /turf/open/floor/plating, /area/bigredv2/outside/engineering) "azF" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, +/obj/effect/decal/warning_stripes{ + icon_state = "W-corner" + }, /turf/open/mars_cave{ - icon_state = "mars_dirt_4" + icon_state = "mars_cave_2" }, -/area/bigredv2/outside/n) +/area/bigredv2/caves_lambda) "azG" = ( /obj/structure/window/framed/solaris, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -9119,9 +8668,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/dorms) -"azR" = ( -/turf/closed/wall/solaris/reinforced, -/area/bigredv2/outside/w) "azS" = ( /obj/structure/machinery/vending/snack{ icon_state = "snack-broken"; @@ -9161,10 +8707,6 @@ }, /turf/open/floor, /area/bigredv2/outside/dorms) -"azX" = ( -/obj/structure/machinery/camera/autoname, -/turf/open/floor, -/area/bigredv2/outside/dorms) "azY" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 @@ -9192,32 +8734,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/bar) -"aAd" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass/colony{ - dir = 1; - name = "\improper Marshal Office Evidence Room" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/marshal_office) -"aAe" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor/plating, -/area/bigredv2/outside/bar) "aAf" = ( /obj/structure/machinery/light{ dir = 1 @@ -9227,11 +8743,6 @@ "aAg" = ( /turf/open/floor/plating, /area/bigredv2/outside/bar) -"aAh" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, -/area/bigredv2/outside/ne) "aAi" = ( /turf/open/floor{ dir = 8; @@ -9368,12 +8879,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/dorms) -"aAD" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/dorms) "aAE" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 1; @@ -9383,16 +8888,6 @@ icon_state = "delivery" }, /area/bigredv2/outside/dorms) -"aAF" = ( -/obj/structure/window_frame/solaris, -/turf/open/floor/plating, -/area/bigredv2/outside/marshal_office) -"aAG" = ( -/obj/structure/pipes/standard/manifold/hidden/green{ - dir = 8 - }, -/turf/open/floor/plating, -/area/bigredv2/outside/bar) "aAH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -9695,13 +9190,6 @@ /obj/structure/window/framed/solaris/reinforced, /turf/open/floor/plating, /area/bigredv2/caves/eta/research) -"aBx" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/ne) "aBy" = ( /obj/structure/window/framed/solaris/reinforced, /turf/open/floor/plating, @@ -9848,24 +9336,6 @@ /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 - }, -/obj/structure/mirror{ - pixel_x = -28 - }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) "aBW" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -9881,12 +9351,6 @@ icon_state = "freezerfloor" }, /area/bigredv2/outside/dorms) -"aBY" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/outside/ne) "aBZ" = ( /obj/structure/bed/stool, /turf/open/floor{ @@ -9909,28 +9373,17 @@ }, /area/bigredv2/outside/ne) "aCd" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_16" +/turf/open/mars{ + icon_state = "mars_dirt_3" }, /area/bigredv2/outside/ne) "aCe" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/eta/xenobiology) "aCf" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W-corner" - }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/caves_lambda) -"aCg" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper Greenhouse Storage" - }, +/obj/structure/machinery/portable_atmospherics/hydroponics, /turf/open/floor{ - icon_state = "delivery" + icon_state = "whitegreenfull" }, /area/bigredv2/outside/hydroponics) "aCh" = ( @@ -10180,12 +9633,6 @@ icon_state = "wood" }, /area/bigredv2/outside/bar) -"aCQ" = ( -/obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor{ - icon_state = "grimy" - }, -/area/bigredv2/outside/dorms) "aCR" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" @@ -10217,22 +9664,11 @@ icon_state = "delivery" }, /area/bigredv2/outside/bar) -"aCV" = ( -/obj/effect/landmark/hunter_primary, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" +"aCW" = ( +/turf/open/mars{ + icon_state = "mars_dirt_8" }, /area/bigredv2/outside/ne) -"aCX" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 6 - }, -/obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/hydroponics) "aCY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ @@ -10257,22 +9693,6 @@ }, /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 @@ -10281,17 +9701,6 @@ 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" - }, -/area/bigredv2/outside/library) "aDg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -10300,20 +9709,6 @@ 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" - }, -/area/bigredv2/outside/library) "aDi" = ( /obj/structure/machinery/light/small, /turf/open/floor/engine, @@ -10354,11 +9749,6 @@ icon_state = "darkpurple2" }, /area/bigredv2/caves/lambda/research) -"aDo" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/largecrate/random/barrel, -/turf/open/floor, -/area/bigredv2/outside/cargo) "aDp" = ( /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, @@ -10587,16 +9977,6 @@ }, /turf/open/floor, /area/bigredv2/outside/dorms) -"aDR" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, -/area/bigredv2/outside/ne) -"aDT" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, -/area/bigredv2/outside/ne) "aDU" = ( /obj/structure/closet/athletic_mixed, /obj/structure/machinery/light{ @@ -10667,19 +10047,6 @@ /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor, /area/bigredv2/outside/hydroponics) -"aEe" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E-corner" - }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/caves_north) -"aEf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/crap_item, -/turf/open/floor, -/area/bigredv2/outside/hydroponics) "aEg" = ( /obj/effect/decal/cleanable/dirt, /obj/item/trash/popcorn, @@ -10698,24 +10065,6 @@ /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; @@ -10811,13 +10160,6 @@ icon_state = "whitegreen" }, /area/bigredv2/outside/medical) -"aEB" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/n) "aEC" = ( /obj/effect/decal/cleanable/blood/gibs/body, /turf/open/floor{ @@ -10880,13 +10222,6 @@ /obj/structure/pipes/vents/pump, /turf/open/floor, /area/bigredv2/outside/dorms) -"aEL" = ( -/obj/structure/machinery/camera/autoname{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor, -/area/bigredv2/outside/dorms) "aEM" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood{ @@ -10929,15 +10264,6 @@ icon_state = "wood" }, /area/bigredv2/outside/bar) -"aES" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/hydroponics) "aET" = ( /obj/effect/decal/cleanable/dirt, /obj/item/tool/shovel/spade, @@ -10953,13 +10279,6 @@ }, /turf/open/floor, /area/bigredv2/outside/hydroponics) -"aEV" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/camera/autoname{ - dir = 4 - }, -/turf/open/floor, -/area/bigredv2/outside/cargo) "aEW" = ( /obj/item/tool/hatchet, /obj/effect/decal/cleanable/dirt, @@ -11277,29 +10596,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/dorms) -"aFQ" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/machinery/recharge_station, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) -"aFR" = ( -/obj/structure/toilet{ - dir = 1 - }, -/obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) -"aFS" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, -/area/bigredv2/outside/ne) "aFT" = ( /obj/structure/surface/table/woodentable, /obj/item/device/radio, @@ -11353,16 +10649,6 @@ icon_state = "wood" }, /area/bigredv2/outside/bar) -"aFZ" = ( -/obj/structure/machinery/door/poddoor/almayer/closed{ - dir = 4; - id = "lambda"; - name = "Lambda Lockdown" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/caves_north) "aGa" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; @@ -11406,16 +10692,6 @@ 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" - }, -/area/bigredv2/outside/library) "aGg" = ( /obj/structure/machinery/light/built{ dir = 4 @@ -11656,30 +10932,10 @@ icon_state = "wood" }, /area/bigredv2/outside/bar) -"aGK" = ( -/obj/structure/machinery/light, -/obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/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, @@ -11687,14 +10943,6 @@ icon_state = "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{ @@ -11995,20 +11243,6 @@ icon_state = "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{ @@ -12147,6 +11381,14 @@ icon_state = "white" }, /area/bigredv2/outside/virology) +"aIe" = ( +/obj/structure/surface/table/reinforced, +/obj/item/pizzabox/vegetable, +/turf/open/floor{ + dir = 9; + icon_state = "redfull" + }, +/area/bigredv2/outside/lambda_cave_cas) "aIg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -12324,20 +11566,6 @@ /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; @@ -12687,15 +11915,6 @@ }, /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; @@ -13051,16 +12270,6 @@ icon_state = "wood" }, /area/bigredv2/outside/bar) -"aKA" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, -/area/bigredv2/outside/ne) -"aKB" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, -/area/bigredv2/outside/ne) "aKC" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -13121,39 +12330,6 @@ icon_state = "yellowfull" }, /area/bigredv2/outside/hydroponics) -"aKK" = ( -/obj/structure/machinery/vending/coffee, -/turf/open/floor, -/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 @@ -13307,12 +12483,6 @@ icon_state = "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{ @@ -13331,14 +12501,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{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) "aLo" = ( /obj/structure/surface/table, /obj/item/device/radio, @@ -13470,19 +12632,6 @@ icon_state = "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" @@ -13934,12 +13083,6 @@ icon_state = "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" @@ -14427,19 +13570,6 @@ icon_state = "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" @@ -14839,49 +13969,6 @@ icon_state = "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; @@ -15306,20 +14393,6 @@ }, /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{ @@ -15716,18 +14789,6 @@ icon_state = "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{ @@ -15999,21 +15060,6 @@ icon_state = "asteroidwarning" }, /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 @@ -16461,16 +15507,6 @@ 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" - }, -/area/bigredv2/outside/e) "aTp" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -16521,30 +15557,6 @@ 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" - }, -/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, @@ -16797,63 +15809,6 @@ 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" - }, -/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 @@ -16863,49 +15818,6 @@ 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" - }, -/area/bigredv2/outside/lambda_cave_cas) "aUD" = ( /obj/structure/bed, /obj/item/bedsheet/medical, @@ -17202,15 +16114,6 @@ icon_state = "asteroidwarning" }, /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{ @@ -17494,6 +16397,17 @@ icon_state = "warnwhite" }, /area/bigredv2/outside/virology) +"aWj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor{ + dir = 10; + icon_state = "red" + }, +/area/bigredv2/outside/marshal_office) "aWk" = ( /turf/open/floor{ dir = 8; @@ -17556,6 +16470,11 @@ icon_state = "whitebluefull" }, /area/bigredv2/outside/general_store) +"aWy" = ( +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "aWz" = ( /obj/structure/showcase{ icon_state = "bus" @@ -17848,11 +16767,6 @@ "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{ @@ -17948,14 +16862,6 @@ "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{ - icon_state = "delivery" - }, -/area/bigredv2/outside/cargo) "aXL" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -18032,11 +16938,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/e) -"aXX" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, -/area/bigredv2/outside/e) "aXY" = ( /turf/open/floor{ dir = 10; @@ -18057,18 +16958,6 @@ /obj/structure/machinery/light, /turf/open/floor/plating, /area/bigredv2/outside/cargo) -"aYe" = ( -/obj/structure/window/framed/solaris, -/obj/structure/curtain, -/turf/open/floor/plating, -/area/bigredv2/outside/medical) -"aYf" = ( -/obj/structure/machinery/light, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/c) "aYh" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -18180,16 +17069,6 @@ 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" - }, -/area/bigredv2/outside/e) "aYx" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -18199,16 +17078,6 @@ 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" - }, -/area/bigredv2/outside/e) "aYA" = ( /obj/structure/closet/l3closet/virology, /turf/open/floor{ @@ -18436,27 +17305,6 @@ /obj/effect/landmark/objective_landmark/medium, /turf/open/floor, /area/bigredv2/outside/cargo) -"aZp" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1; - pixel_y = -1 - }, -/turf/open/floor{ - dir = 9; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) -"aZq" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S"; - pixel_y = -1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) "aZr" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, @@ -18543,14 +17391,6 @@ icon_state = "cult" }, /area/bigredv2/outside/chapel) -"aZI" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 6 - }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/chapel) "aZJ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -18558,14 +17398,6 @@ icon_state = "darkyellow2" }, /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{ @@ -18584,18 +17416,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/cargo) -"aZP" = ( -/obj/structure/machinery/camera/autoname, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1; - pixel_y = -1 - }, -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) "aZQ" = ( /obj/structure/surface/table, /obj/item/tool/lighter/random, @@ -18791,26 +17611,12 @@ 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" - }, -/area/bigredv2/outside/chapel) "bat" = ( /turf/open/floor{ dir = 4; icon_state = "chapel" }, /area/bigredv2/outside/chapel) -"bax" = ( -/obj/structure/closet/emcloset, -/turf/open/floor, -/area/bigredv2/outside/cargo) "bay" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -18949,16 +17755,6 @@ 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" - }, -/area/bigredv2/outside/chapel) "baW" = ( /turf/open/floor{ icon_state = "chapel" @@ -19424,13 +18220,6 @@ icon_state = "white" }, /area/bigredv2/outside/virology) -"bcp" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) "bcq" = ( /obj/effect/landmark/crap_item, /turf/open/floor{ @@ -19438,21 +18227,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/w) -"bcr" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/space_port_lz2) -"bcs" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) "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..."; @@ -19674,6 +18448,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, @@ -19707,14 +18485,6 @@ icon_state = "rampbottom" }, /area/bigredv2/outside/chapel) -"bdf" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor{ - icon_state = "loadingarea" - }, -/area/bigredv2/outside/cargo) "bdg" = ( /turf/open/floor{ icon_state = "delivery" @@ -19955,19 +18725,6 @@ icon_state = "asteroidfloor" }, /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/w) "bec" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor, @@ -19977,9 +18734,9 @@ /turf/open/floor, /area/bigredv2/outside/cargo) "bee" = ( -/obj/structure/cargo_container/kelland/left, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) +/obj/structure/closet/emcloset, +/turf/open/floor, +/area/bigredv2/outside/cargo) "bef" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, @@ -20080,22 +18837,12 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/w) -"bew" = ( -/obj/structure/cargo_container/kelland/right, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) "bex" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, /turf/open/floor, /area/bigredv2/outside/cargo) -"bey" = ( -/obj/structure/pipes/vents/pump{ - dir = 8 - }, -/turf/open/floor, -/area/bigredv2/outside/cargo) "bez" = ( /obj/structure/machinery/autolathe, /turf/open/floor, @@ -20206,19 +18953,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/w) -"beR" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/w) -"beS" = ( -/obj/structure/lz_sign/solaris_sign, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) "beT" = ( /obj/structure/machinery/light{ dir = 8 @@ -20294,34 +19028,6 @@ icon_state = "dark" }, /area/bigredv2/outside/office_complex) -"bff" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/pipes/vents/pump{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/office_complex) -"bfg" = ( -/obj/structure/machinery/door/airlock/almayer/maint/colony{ - dir = 1; - name = "\improper General Store Maintenance" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/cargo) -"bfh" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 6 - }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/office_complex) "bfi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -20445,15 +19151,6 @@ }, /turf/open/floor, /area/bigredv2/outside/cargo) -"bfA" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, -/area/bigredv2/outside/cargo) "bfB" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 @@ -20521,8 +19218,8 @@ }, /area/bigredv2/outside/office_complex) "bfK" = ( -/obj/structure/pipes/standard/manifold/hidden/green{ - dir = 8 +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 6 }, /turf/open/floor{ icon_state = "dark" @@ -20577,18 +19274,6 @@ icon_state = "whiteyellowfull" }, /area/bigredv2/outside/office_complex) -"bfT" = ( -/obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/space_port_lz2) -"bfU" = ( -/obj/effect/landmark/hunter_secondary, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/space_port_lz2) "bfV" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, @@ -20597,13 +19282,6 @@ icon_state = "bot" }, /area/bigredv2/outside/cargo) -"bfW" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) "bfX" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate/trashcart, @@ -20753,10 +19431,12 @@ }, /area/bigredv2/outside/office_complex) "bgq" = ( -/turf/open/mars{ - icon_state = "mars_dirt_14" +/obj/structure/closet/emcloset, +/turf/open/floor{ + dir = 1; + icon_state = "bot" }, -/area/bigredv2/outside/space_port_lz2) +/area/bigredv2/outside/cargo) "bgr" = ( /obj/structure/closet/secure_closet/security, /obj/effect/landmark/objective_landmark/close, @@ -20838,13 +19518,6 @@ icon_state = "whiteyellowfull" }, /area/bigredv2/outside/office_complex) -"bgC" = ( -/obj/structure/closet/emcloset, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, -/area/bigredv2/outside/cargo) "bgD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, @@ -21015,31 +19688,17 @@ }, /area/bigredv2/caves/mining) "bhb" = ( -/obj/structure/machinery/light, /turf/open/floor{ - dir = 1; - icon_state = "bot" + icon_state = "floor4" }, /area/bigredv2/outside/cargo) -"bhc" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) -"bhd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, +"bhe" = ( +/obj/structure/machinery/light, /turf/open/floor{ dir = 1; - icon_state = "asteroidfloor" + icon_state = "bot" }, -/area/bigredv2/outside/space_port_lz2) -"bhe" = ( -/obj/effect/landmark/hunter_secondary, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) +/area/bigredv2/outside/cargo) "bhf" = ( /obj/structure/machinery/power/apc{ dir = 1 @@ -21156,9 +19815,11 @@ }, /area/bigredv2/outside/space_port_lz2) "bhD" = ( -/obj/structure/cargo_container/arious/leftmid, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "floor4" + }, +/area/bigredv2/outside/cargo) "bhE" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/light{ @@ -21166,16 +19827,6 @@ }, /turf/open/floor, /area/bigredv2/outside/cargo) -"bhH" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/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{ @@ -21188,28 +19839,6 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/outside/c) -"bhM" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - layer = 2.5; - pixel_x = -1 - }, -/turf/open/floor{ - dir = 4; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) -"bhN" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor{ - dir = 10; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) "bhO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -21238,15 +19867,6 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/c) -"bhS" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/c) "bhT" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" @@ -21318,14 +19938,9 @@ dir = 4 }, /turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" + icon_state = "floor4" }, -/area/bigredv2/outside/space_port_lz2) -"bio" = ( -/obj/structure/cargo_container/arious/rightmid, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) +/area/bigredv2/outside/cargo) "biq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ @@ -21487,10 +20102,6 @@ /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{ @@ -21528,27 +20139,10 @@ /obj/structure/machinery/camera/autoname/lz_camera, /turf/open/floor/plating, /area/bigredv2/outside/space_port_lz2) -"bjh" = ( -/obj/item/reagent_container/spray/cleaner, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "floor4" - }, -/area/bigredv2/outside/cargo) "bji" = ( /obj/item/reagent_container/glass/bottle/tramadol, /turf/open/floor, /area/bigredv2/outside/cargo) -"bjj" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "bjk" = ( /obj/effect/landmark/crap_item, /turf/open/floor{ @@ -21588,25 +20182,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/space_port_lz2) -"bjt" = ( -/obj/structure/surface/table, -/obj/effect/spawner/random/technology_scanner, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/space_port_lz2) -"bjv" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - layer = 2.5; - pixel_x = -1 - }, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "bjw" = ( /turf/open/floor{ dir = 1; @@ -21684,11 +20259,14 @@ }, /area/bigredv2/outside/s) "bjJ" = ( +/obj/structure/machinery/light{ + dir = 1 + }, /turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" + dir = 4; + icon_state = "redcorner" }, -/area/bigredv2/caves_north) +/area/bigredv2/outside/office_complex) "bjK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -21727,13 +20305,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/space_port_lz2) -"bjP" = ( -/obj/structure/cargo_container/arious/right, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) -"bjQ" = ( -/turf/closed/wall/solaris, -/area/bigredv2/outside/space_port_lz2) "bjR" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -21744,15 +20315,6 @@ icon_state = "delivery" }, /area/bigredv2/outside/cargo) -"bjX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "bjY" = ( /turf/open/floor{ icon_state = "asteroidwarning" @@ -21789,14 +20351,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/s) -"bke" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/c) "bkf" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_y = -32 @@ -21823,10 +20377,6 @@ icon_state = "mars_dirt_10" }, /area/bigredv2/outside/se) -"bkk" = ( -/obj/structure/cargo_container/horizontal/blue/top, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) "bkl" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/science, @@ -22056,19 +20606,6 @@ icon_state = "white" }, /area/bigredv2/caves/lambda/xenobiology) -"blb" = ( -/obj/structure/surface/table, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) -"blc" = ( -/obj/structure/surface/table, -/obj/item/clothing/ears/earmuffs, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) "bld" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tech_supply, @@ -23130,14 +21667,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) -"boD" = ( -/obj/structure/surface/table, -/obj/effect/spawner/random/toolbox, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/space_port_lz2) "boG" = ( /obj/structure/closet/secure_closet/engineering_electrical, /turf/open/floor/almayer{ @@ -23388,13 +21917,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/space_port_lz2) -"bpv" = ( -/obj/structure/pipes/vents/pump/on, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/space_port_lz2) "bpx" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_4" @@ -23629,11 +22151,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/space_port_lz2) -"bqe" = ( -/turf/open/floor{ - icon_state = "floor4" - }, -/area/bigredv2/outside/cargo) "bqf" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; @@ -23643,17 +22160,6 @@ icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) -"bqg" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_x = -1; - pixel_y = 1 - }, -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "bqk" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/alarm{ @@ -23815,17 +22321,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/space_port_lz2) -"brc" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, -/area/bigredv2/outside/n) -"brd" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) "bre" = ( /obj/structure/bed/chair, /turf/open/floor{ @@ -23972,10 +22467,6 @@ "brE" = ( /turf/open/floor/greengrid, /area/bigredv2/outside/filtration_cave_cas) -"brG" = ( -/obj/structure/cargo_container/horizontal/blue/middle, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) "brI" = ( /obj/structure/sign/safety/galley{ pixel_x = -32 @@ -24389,12 +22880,6 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"btv" = ( -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) "btw" = ( /turf/open/floor/plating, /area/bigredv2/outside/lz2_south_cas) @@ -24503,13 +22988,6 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/s) -"bup" = ( -/obj/item/stack/sheet/wood, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, -/area/bigredv2/caves_north) "buu" = ( /turf/open/mars_cave{ icon_state = "mars_cave_17" @@ -24540,11 +23018,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/s) -"buP" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, -/area/bigredv2/outside/n) "buQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/mars_cave{ @@ -27653,6 +26126,11 @@ /obj/item/tool/hand_labeler, /turf/open/floor, /area/bigred/ground/garage_workshop) +"bGC" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_5" + }, +/area/bigredv2/outside/n) "bGL" = ( /turf/open/floor{ dir = 1; @@ -27677,6 +26155,11 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"bJQ" = ( +/turf/open/mars{ + icon_state = "mars_dirt_10" + }, +/area/bigredv2/outside/n) "bJS" = ( /obj/structure/largecrate/random/barrel/green, /obj/effect/decal/cleanable/dirt, @@ -27732,6 +26215,14 @@ icon_state = "dark" }, /area/bigredv2/outside/marshal_office) +"bOZ" = ( +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/bigredv2/outside/medical) "bPy" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, @@ -27748,11 +26239,21 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/admin_building) +"bQh" = ( +/turf/open/mars{ + icon_state = "mars_dirt_11" + }, +/area/bigredv2/outside/n) "bQi" = ( /turf/open/floor{ icon_state = "darkish" }, /area/bigredv2/caves/lambda/virology) +"bQG" = ( +/turf/open/mars_cave{ + icon_state = "mars_dirt_6" + }, +/area/bigredv2/caves_lambda) "bRd" = ( /obj/structure/cable{ icon_state = "1-4" @@ -27765,6 +26266,12 @@ icon_state = "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, @@ -27780,11 +26287,12 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"bSc" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_14" +"bRV" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor{ + icon_state = "white" }, -/area/bigredv2/outside/ne) +/area/bigredv2/outside/virology) "bSw" = ( /obj/structure/cable{ icon_state = "1-4" @@ -27797,6 +26305,15 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"bSy" = ( +/obj/structure/barricade/handrail{ + dir = 8 + }, +/turf/open/floor{ + dir = 8; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/c) "bTm" = ( /obj/structure/surface/table, /obj/item/folder/black_random, @@ -27813,6 +26330,17 @@ icon_state = "mars_cave_7" }, /area/bigredv2/caves_se) +"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{ + icon_state = "mars_cave_13" + }, +/area/bigredv2/caves_north) "bWk" = ( /turf/open/floor{ dir = 1; @@ -27835,17 +26363,6 @@ /obj/item/reagent_container/spray/cleaner, /turf/open/floor, /area/bigredv2/outside/cargo) -"bYp" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/lz2_cave) "bYW" = ( /obj/structure/pipes/vents/pump, /turf/open/floor{ @@ -27886,6 +26403,21 @@ /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{ + dir = 4; + icon_state = "warnplate" + }, +/area/bigredv2/outside/telecomm/warehouse) "ccP" = ( /obj/structure/surface/table, /obj/effect/spawner/random/bomb_supply, @@ -27895,15 +26427,6 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/filtration_plant) -"ccU" = ( -/obj/structure/machinery/door/airlock/almayer/maint/colony{ - dir = 1; - name = "\improper Medical Clinic Power Station" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/medical) "cdA" = ( /turf/open/mars_cave{ icon_state = "mars_cave_5" @@ -27922,6 +26445,14 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"ceA" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/e) "cfr" = ( /obj/item/explosive/grenade/baton{ dir = 8 @@ -27930,18 +26461,17 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) -"cfS" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) "cgt" = ( /turf/open/floor{ icon_state = "delivery" }, /area/bigredv2/outside/dorms) +"cgO" = ( +/turf/open/floor{ + dir = 5; + icon_state = "asteroidwarning" + }, +/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, @@ -27949,9 +26479,10 @@ icon_state = "mars_cave_18" }, /area/bigredv2/caves_lambda) -"chy" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" +"ciG" = ( +/obj/effect/landmark/hunter_secondary, +/turf/open/mars_cave{ + icon_state = "mars_cave_7" }, /area/bigredv2/outside/n) "ciY" = ( @@ -28021,18 +26552,15 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/solaris/rock, /area/bigredv2/caves) -"cnO" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/recharge_station, -/turf/open/floor{ - icon_state = "freezerfloor" +"cnG" = ( +/obj/structure/platform{ + dir = 1 }, -/area/bigredv2/outside/dorms) -"coc" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" }, -/area/bigredv2/outside/ne) +/area/bigredv2/outside/telecomm/n_cave) "coT" = ( /obj/effect/landmark/objective_landmark/science, /turf/open/floor{ @@ -28046,6 +26574,14 @@ icon_state = "mars_cave_6" }, /area/bigredv2/caves_se) +"cpQ" = ( +/obj/structure/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) "cqj" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -28058,6 +26594,25 @@ icon_state = "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{ + dir = 4; + icon_state = "chapel" + }, +/area/bigredv2/outside/chapel) +"crl" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/space_port_lz2) "crv" = ( /obj/structure/surface/table, /obj/structure/machinery/prop/almayer/computer/PC{ @@ -28069,11 +26624,14 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"crO" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" +"cry" = ( +/obj/structure/surface/table/reinforced, +/obj/item/handcuffs, +/turf/open/floor{ + dir = 9; + icon_state = "redfull" }, -/area/bigredv2/outside/sw) +/area/bigredv2/outside/lambda_cave_cas) "crQ" = ( /turf/open/mars_cave{ icon_state = "mars_cave_18" @@ -28116,6 +26674,12 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"cuG" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/chapel) "cvi" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/tunnel{ @@ -28125,15 +26689,6 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/xenobiology) -"cwk" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/space_port_lz2) "cxi" = ( /obj/structure/machinery/light{ dir = 4 @@ -28161,6 +26716,12 @@ icon_state = "mars_dirt_6" }, /area/bigredv2/caves/mining) +"cAf" = ( +/obj/item/stack/sheet/wood, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/caves_north) "cAs" = ( /turf/open/floor{ dir = 1; @@ -28172,6 +26733,15 @@ /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{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) "cCr" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/mars_cave{ @@ -28194,13 +26764,22 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"cGQ" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, +"cGc" = ( +/obj/structure/machinery/botany, /turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" + icon_state = "white" }, -/area/bigredv2/caves) +/area/bigredv2/outside/marshal_office) +"cGi" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor{ + dir = 8; + icon_state = "red" + }, +/area/bigredv2/outside/marshal_office) "cGT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/power/apc{ @@ -28229,6 +26808,22 @@ /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{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/lz2_cave) +"cHH" = ( +/turf/open/mars{ + icon_state = "mars_dirt_11" + }, +/area/bigredv2/outside/ne) "cHI" = ( /obj/structure/closet/crate, /obj/structure/machinery/light{ @@ -28239,14 +26834,6 @@ icon_state = "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, @@ -28268,6 +26855,9 @@ icon_state = "delivery" }, /area/bigredv2/outside/admin_building) +"cJd" = ( +/turf/open/space/basic, +/area/space) "cJh" = ( /obj/structure/bed/chair{ dir = 8; @@ -28295,6 +26885,15 @@ icon_state = "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, @@ -28336,6 +26935,12 @@ /obj/structure/sign/poster/clf, /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/mining) +"cOu" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor{ + icon_state = "yellowfull" + }, +/area/bigredv2/outside/hydroponics) "cOJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -28344,6 +26949,12 @@ icon_state = "delivery" }, /area/bigredv2/caves/eta/research) +"cPg" = ( +/obj/effect/landmark/crap_item, +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/outside/n) "cPZ" = ( /obj/structure/window/framed/solaris/reinforced, /obj/effect/decal/cleanable/dirt, @@ -28361,6 +26972,20 @@ icon_state = "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, @@ -28403,16 +27028,6 @@ icon_state = "mars_cave_11" }, /area/bigredv2/caves_se) -"cVT" = ( -/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{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/caves_north) "cVY" = ( /turf/open/mars, /area/bigredv2/outside/space_port_lz2) @@ -28424,6 +27039,12 @@ icon_state = "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 @@ -28484,6 +27105,11 @@ icon_state = "delivery" }, /area/bigredv2/outside/c) +"dgH" = ( +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_north) "dhN" = ( /obj/structure/window/framed/solaris, /obj/structure/machinery/door/poddoor/almayer{ @@ -28500,13 +27126,6 @@ icon_state = "mars_cave_15" }, /area/bigredv2/caves/mining) -"dhT" = ( -/obj/structure/fence, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/n) "dij" = ( /obj/structure/fence, /obj/structure/blocker/forcefield/multitile_vehicles, @@ -28524,15 +27143,36 @@ icon_state = "podhatchfloor" }, /area/bigredv2/outside/admin_building) -"dlr" = ( +"djo" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/recharger, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor{ + dir = 9; + icon_state = "redfull" + }, +/area/bigredv2/outside/lambda_cave_cas) +"dka" = ( +/obj/effect/landmark/crap_item, /turf/open/mars_cave{ - icon_state = "mars_cave_13" + icon_state = "mars_dirt_4" }, /area/bigredv2/outside/n) +"dkY" = ( +/obj/structure/platform, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/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{ @@ -28568,6 +27208,21 @@ icon_state = "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{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "drT" = ( /obj/structure/disposalpipe/broken{ dir = 4 @@ -28612,10 +27267,15 @@ }, /area/bigredv2/caves/lambda/research) "dtX" = ( +/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_14" }, -/area/bigredv2/outside/n) +/area/bigredv2/caves_north) "duo" = ( /obj/effect/landmark/corpsespawner/colonist/burst, /turf/open/floor/plating, @@ -28626,14 +27286,10 @@ }, /turf/open/gm/river, /area/bigredv2/outside/engineering) -"duI" = ( -/obj/structure/machinery/door/airlock/almayer/command/colony{ - name = "\improper Operations" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/admin_building) +"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; @@ -28650,19 +27306,17 @@ icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) -"dwe" = ( -/obj/item/tool/warning_cone{ - pixel_x = 16; - pixel_y = 14 +"dws" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 }, -/turf/open/mars, -/area/bigredv2/outside/n) -"dwg" = ( -/obj/structure/cargo_container/arious/rightmid, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" +/turf/open/floor/plating{ + dir = 6; + icon_state = "warnplate" }, -/area/bigredv2/outside/space_port_lz2) +/area/bigredv2/outside/telecomm/warehouse) "dwL" = ( /obj/structure/bed/chair{ buckling_y = 5; @@ -28701,21 +27355,29 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"dzs" = ( -/turf/open/mars{ - icon_state = "mars_dirt_8" - }, -/area/bigredv2/outside/n) "dzY" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ icon_state = "asteroidwarning" }, /area/bigredv2/outside/c) +"dAd" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/recharger, +/turf/open/floor{ + dir = 9; + icon_state = "redfull" + }, +/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{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) "dBa" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_y = 9 @@ -28782,6 +27444,10 @@ /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, @@ -28812,6 +27478,13 @@ icon_state = "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 @@ -28856,11 +27529,28 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"dIH" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/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{ + dir = 5; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_lambda) "dJM" = ( /obj/structure/surface/rack, /obj/item/storage/pouch/shotgun, @@ -28870,6 +27560,12 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"dKk" = ( +/turf/open/floor{ + dir = 8; + icon_state = "redcorner" + }, +/area/bigredv2/outside/lambda_cave_cas) "dKo" = ( /obj/item/ore/iron{ pixel_x = 6; @@ -28889,18 +27585,20 @@ icon_state = "mars_cave_5" }, /area/bigredv2/caves_lambda) -"dLe" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" - }, -/area/bigredv2/outside/lambda_cave_cas) -"dMT" = ( +"dLS" = ( /obj/effect/decal/cleanable/dirt, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_17"; + pixel_x = 7; + pixel_y = 14 + }, +/obj/structure/window{ + dir = 8 + }, /turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" + icon_state = "wood" }, -/area/bigredv2/outside/ne) +/area/bigredv2/outside/library) "dNd" = ( /obj/item/stack/cable_coil/cut, /turf/open/mars_cave{ @@ -28925,11 +27623,10 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"dNH" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, -/area/bigredv2/outside/n) +"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, @@ -28942,6 +27639,12 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"dOZ" = ( +/obj/effect/landmark/crap_item, +/turf/open/mars_cave{ + icon_state = "mars_cave_16" + }, +/area/bigredv2/outside/n) "dPb" = ( /obj/item/tool/pickaxe/drill, /turf/open/mars_cave{ @@ -28965,6 +27668,9 @@ icon_state = "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{ @@ -28977,6 +27683,11 @@ icon_state = "mars_dirt_5" }, /area/bigredv2/caves/mining) +"dQR" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/outside/n) "dQZ" = ( /obj/structure/closet/toolcloset, /obj/effect/decal/cleanable/dirt, @@ -28985,6 +27696,14 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/filtration_plant) +"dRc" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/colony{ + name = "\improper Lambda Checkpoint" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/lambda_cave_cas) "dSg" = ( /obj/effect/landmark/crap_item, /obj/effect/decal/cleanable/dirt, @@ -28993,12 +27712,15 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"dTa" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, +"dTi" = ( +/obj/item/stack/sheet/wood, /turf/open/mars_cave{ icon_state = "mars_cave_9" }, -/area/bigredv2/outside/ne) +/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; @@ -29015,11 +27737,27 @@ icon_state = "mars_cave_6" }, /area/bigredv2/caves/mining) +"dVp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/space_port_lz2) "dVA" = ( /turf/open/mars_cave{ icon_state = "mars_cave_5" }, /area/bigredv2/outside/lz2_south_cas) +"dVM" = ( +/obj/structure/largecrate/supply/supplies, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/n) "dWd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -29028,11 +27766,6 @@ icon_state = "dark" }, /area/bigredv2/outside/engineering) -"dWg" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, -/area/bigredv2/outside/ne) "dWl" = ( /obj/structure/closet/toolcloset, /turf/open/floor{ @@ -29057,6 +27790,11 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/eta) +"dXK" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_13" + }, +/area/bigredv2/outside/n) "dZO" = ( /obj/effect/decal/cleanable/blood{ dir = 8; @@ -29082,6 +27820,14 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"eaZ" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "yellowfull" + }, +/area/bigredv2/outside/hydroponics) "ebr" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -29129,6 +27875,29 @@ icon_state = "asteroidfloor" }, /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{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) +"efK" = ( +/obj/structure/machinery/computer/crew{ + density = 0; + pixel_y = 16 + }, +/turf/open/floor{ + icon_state = "whitegreenfull" + }, +/area/bigredv2/outside/medical) "egI" = ( /obj/item/ore, /obj/item/ore{ @@ -29151,14 +27920,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"eiS" = ( -/obj/structure/closet/coffin/woodencrate, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" +"ejp" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "filtration_restored" }, -/area/bigredv2/outside/n) +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/outside/s) "eju" = ( /obj/item/ore{ pixel_x = 9; @@ -29186,6 +27955,11 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"elh" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_6" + }, +/area/bigredv2/outside/n) "els" = ( /obj/structure/ore_box, /turf/open/mars_cave{ @@ -29232,6 +28006,14 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"enJ" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/solid{ + name = "\improper Dormitories Restroom" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/dorms) "eoU" = ( /turf/open/floor/almayer{ dir = 1; @@ -29249,21 +28031,15 @@ icon_state = "mars_cave_9" }, /area/bigredv2/caves/mining) -"erf" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 +"eqr" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/solid{ + dir = 1; + name = "\improper Dormitories Restroom" }, -/obj/structure/machinery/camera/autoname{ - dir = 1 +/turf/open/floor{ + icon_state = "delivery" }, -/turf/open/floor, /area/bigredv2/outside/dorms) -"ers" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "etatunnel" - }, -/turf/closed/wall/solaris/rock, -/area/bigredv2/caves) "erA" = ( /obj/item/ore, /turf/open/mars_cave{ @@ -29290,6 +28066,15 @@ icon_state = "mars_cave_20" }, /area/bigredv2/caves/mining) +"esS" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/window, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "eup" = ( /obj/structure/bed/chair, /obj/item/trash/cigbutt, @@ -29347,13 +28132,6 @@ icon_state = "asteroidwarning" }, /area/bigred/ground/garage_workshop) -"eyA" = ( -/obj/structure/largecrate/random/barrel/true_random, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/n) "ezQ" = ( /obj/structure/largecrate/supply/supplies/flares, /turf/open/floor/plating{ @@ -29361,12 +28139,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"eAG" = ( -/obj/item/stack/sheet/wood, -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, -/area/bigredv2/caves_north) "eAU" = ( /turf/open/floor{ dir = 4; @@ -29383,6 +28155,14 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"eBL" = ( +/obj/structure/bookcase{ + icon_state = "book-5" + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "eDQ" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/effect/landmark/objective_landmark/medium, @@ -29415,6 +28195,16 @@ icon_state = "mars_cave_5" }, /area/bigredv2/caves_lambda) +"eFr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/turf/open/floor{ + dir = 1; + icon_state = "red" + }, +/area/bigredv2/outside/marshal_office) "eGa" = ( /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, /turf/open/mars_cave{ @@ -29451,15 +28241,6 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/xenobiology) -"eIB" = ( -/obj/item/tool/warning_cone{ - pixel_y = 20 - }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) "eIN" = ( /obj/structure/machinery/power/port_gen/pacman, /obj/effect/decal/cleanable/dirt, @@ -29485,6 +28266,13 @@ icon_state = "freezerfloor" }, /area/bigredv2/outside/general_offices) +"eKm" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/n) "eKU" = ( /obj/structure/machinery/door_control{ id = "filtration"; @@ -29497,6 +28285,16 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/filtration_plant) +"eKZ" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/computer/cameras/wooden_tv{ + dir = 4 + }, +/turf/open/floor{ + dir = 9; + icon_state = "redfull" + }, +/area/bigredv2/outside/lambda_cave_cas) "eLp" = ( /obj/structure/closet/secure_closet/brig, /obj/effect/landmark/objective_landmark/medium, @@ -29523,6 +28321,13 @@ icon_state = "mars_cave_23" }, /area/bigredv2/caves_lambda) +"eNe" = ( +/obj/item/clothing/under/darkred, +/obj/structure/surface/rack, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/general_offices) "eNx" = ( /obj/effect/landmark/nightmare{ insert_tag = "lambda-cave-mushroom" @@ -29552,17 +28357,17 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_plant) +"eRe" = ( +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/turf/open/floor, +/area/bigredv2/outside/cargo) "eRI" = ( /turf/open/floor{ icon_state = "delivery" }, /area/bigredv2/outside/c) -"eRW" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "crashlanding-eva" - }, -/turf/closed/wall/solaris, -/area/bigredv2/outside/bar) "eSm" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -29601,12 +28406,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, @@ -29625,9 +28424,11 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"eVZ" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" +"eVM" = ( +/obj/structure/largecrate/random/barrel/true_random, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" }, /area/bigredv2/outside/n) "eWd" = ( @@ -29640,12 +28441,36 @@ /obj/effect/decal/cleanable/dirt, /turf/open/mars, /area/bigredv2/outside/filtration_plant) +"eWv" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 9; + icon_state = "asteroidwarning" + }, +/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{ + icon_state = "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{ + icon_state = "mars_cave_19" + }, +/area/bigredv2/caves_north) "eWG" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, @@ -29664,6 +28489,36 @@ }, /turf/open/floor, /area/bigredv2/outside/cargo) +"eYy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) +"eYA" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/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{ + icon_state = "floor4" + }, +/area/bigredv2/outside/cargo) "eZw" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" @@ -29674,11 +28529,17 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"fbF" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_9" +"fbf" = ( +/turf/open/mars{ + icon_state = "mars_dirt_8" }, -/area/bigredv2/outside/n) +/area/bigredv2/outside/sw) +"fbB" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "crashlanding-eva" + }, +/turf/closed/wall/solaris, +/area/bigredv2/outside/bar) "fcG" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/firecloset, @@ -29696,15 +28557,6 @@ "fdy" = ( /turf/open/floor, /area/bigredv2/caves/eta/living) -"fdC" = ( -/obj/structure/barricade/handrail{ - dir = 8 - }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/c) "feN" = ( /turf/open/floor{ dir = 9; @@ -29804,6 +28656,14 @@ icon_state = "darkyellowcorners2" }, /area/bigredv2/caves/eta/living) +"fni" = ( +/obj/structure/machinery/door/airlock/almayer/medical{ + name = "\improper Medical Clinic Morgue" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/medical) "fnv" = ( /obj/structure/bed/chair/comfy, /turf/open/floor/carpet, @@ -29813,29 +28673,11 @@ icon_state = "mars_cave_13" }, /area/bigredv2/caves/mining) -"foj" = ( -/obj/structure/largecrate/random/barrel/true_random, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/n) "foB" = ( /turf/open/mars_cave{ icon_state = "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; @@ -29843,10 +28685,21 @@ }, /turf/closed/wall/wood, /area/bigredv2/caves/mining) -"fpt" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/gm/river, -/area/bigredv2/outside/c) +"fsT" = ( +/turf/open/mars_cave{ + icon_state = "mars_dirt_7" + }, +/area/bigredv2/outside/n) +"fsY" = ( +/turf/open/mars{ + icon_state = "mars_dirt_6" + }, +/area/bigredv2/outside/space_port_lz2) +"ftY" = ( +/turf/open/mars_cave{ + icon_state = "mars_dirt_7" + }, +/area/bigredv2/outside/sw) "fus" = ( /turf/open/mars_cave{ icon_state = "mars_cave_7" @@ -29921,6 +28774,12 @@ icon_state = "mars_cave_10" }, /area/bigredv2/outside/lz1_telecomm_cas) +"fxZ" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/caves_lambda) "fyp" = ( /obj/structure/machinery/power/apc, /turf/open/floor{ @@ -29945,6 +28804,16 @@ icon_state = "whitepurplecorner" }, /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{ + dir = 9; + icon_state = "redfull" + }, +/area/bigredv2/outside/lambda_cave_cas) "fBc" = ( /obj/structure/pipes/standard/tank/phoron, /turf/open/floor/plating, @@ -29954,15 +28823,18 @@ icon_state = "dark" }, /area/bigredv2/outside/filtration_plant) -"fBU" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, -/area/bigredv2/caves_north) "fCb" = ( /turf/open/floor, /area/bigredv2/outside/filtration_cave_cas) +"fDf" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Greenhouse Storage" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/hydroponics) "fDr" = ( /turf/open/floor{ dir = 1; @@ -29977,6 +28849,11 @@ icon_state = "delivery" }, /area/bigredv2/outside/engineering) +"fEE" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_15" + }, +/area/bigredv2/outside/ne) "fFG" = ( /obj/structure/largecrate/random/barrel, /turf/open/mars_cave{ @@ -29988,11 +28865,25 @@ icon_state = "mars_dirt_3" }, /area/bigredv2/outside/space_port_lz2) +"fGK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E-corner" + }, +/turf/open/mars_cave{ + icon_state = "mars_cave_16" + }, +/area/bigredv2/caves_north) "fGN" = ( /turf/open/mars_cave{ icon_state = "mars_cave_20" }, /area/bigredv2/caves_research) +"fHw" = ( +/obj/structure/barricade/handrail, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/c) "fHF" = ( /obj/effect/landmark/corpsespawner/miner, /obj/effect/decal/cleanable/blood{ @@ -30010,6 +28901,25 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/eta) +"fJW" = ( +/obj/structure/window, +/obj/structure/surface/table/woodentable, +/obj/item/newspaper, +/turf/open/floor{ + icon_state = "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{ + icon_state = "mars_cave_5" + }, +/area/bigredv2/caves_north) "fKW" = ( /obj/structure/machinery/power/apc{ dir = 1 @@ -30078,11 +28988,6 @@ icon_state = "dark" }, /area/bigredv2/caves/lambda/xenobiology) -"fNh" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, -/area/bigredv2/caves_lambda) "fOc" = ( /turf/open/mars_cave{ icon_state = "mars_cave_3" @@ -30127,6 +29032,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"fPe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 8; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "fPB" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -30180,6 +29092,17 @@ icon_state = "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{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/c) "fUk" = ( /obj/structure/surface/table, /obj/item/clothing/head/hardhat, @@ -30201,19 +29124,35 @@ icon_state = "delivery" }, /area/bigredv2/outside/engineering) -"fVm" = ( +"fVt" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" +/obj/structure/surface/table, +/obj/structure/machinery/light{ + dir = 4 }, -/area/bigredv2/outside/n) +/obj/item/stack/sheet/glass{ + amount = 30 + }, +/turf/open/floor, +/area/bigredv2/outside/cargo) "fWw" = ( /turf/open/jungle{ bushes_spawn = 0; icon_state = "grass_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{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "fXm" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -30224,6 +29163,13 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"fXR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/portable_atmospherics/hydroponics, +/turf/open/floor{ + icon_state = "whitegreenfull" + }, +/area/bigredv2/outside/hydroponics) "fYH" = ( /turf/closed/wall/solaris/reinforced/hull, /area/bigredv2/caves/mining) @@ -30268,10 +29214,11 @@ icon_state = "bcircuitoff" }, /area/bigredv2/caves/lambda/research) -"gbt" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" +"gbA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" }, /area/bigredv2/outside/ne) "gcR" = ( @@ -30289,10 +29236,21 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"gdK" = ( +/turf/open/mars_cave{ + icon_state = "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{ + dir = 6; + icon_state = "whiteblue" + }, +/area/bigredv2/outside/medical) "geC" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_6" @@ -30381,14 +29339,6 @@ icon_state = "mars_cave_18" }, /area/bigredv2/caves_lambda) -"gnk" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/solid{ - name = "\improper Dormitories Restroom" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/dorms) "gnR" = ( /obj/structure/largecrate/random/barrel/red, /obj/effect/decal/cleanable/dirt, @@ -30415,6 +29365,14 @@ icon_state = "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{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) "gpB" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_6" @@ -30435,6 +29393,12 @@ /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; @@ -30454,17 +29418,18 @@ icon_state = "mars_dirt_4" }, /area/space) -"gtG" = ( -/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 +"gts" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_5" +/obj/structure/morgue{ + dir = 2 }, -/area/bigredv2/caves_north) +/turf/open/floor{ + dir = 1; + icon_state = "whiteblue" + }, +/area/bigredv2/outside/medical) "gtX" = ( /turf/open/mars_cave, /area/bigredv2/caves_se) @@ -30501,11 +29466,6 @@ icon_state = "elevatorshaft" }, /area/bigredv2/caves/lambda/breakroom) -"gwb" = ( -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, -/area/bigredv2/outside/ne) "gwg" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -30552,11 +29512,26 @@ }, /area/bigredv2/caves/mining) "gAE" = ( -/obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - icon_state = "whitegreenfull" +/obj/structure/sink{ + dir = 1; + pixel_y = -9 }, +/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{ + icon_state = "dark" + }, +/area/bigredv2/outside/office_complex) "gCx" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, @@ -30591,6 +29566,13 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_east) +"gEM" = ( +/obj/structure/machinery/vending/security, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor{ + icon_state = "red" + }, +/area/bigredv2/outside/lambda_cave_cas) "gFR" = ( /obj/structure/machinery/power/port_gen/pacman, /turf/open/floor{ @@ -30598,13 +29580,6 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"gGC" = ( -/obj/structure/fence, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/n) "gGO" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating{ @@ -30625,6 +29600,16 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"gIT" = ( +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "lambda-interior"; + name = "Lambda Checkpoint Interior" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/caves_north) "gJw" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave, @@ -30635,11 +29620,22 @@ icon_state = "mars_cave_4" }, /area/bigredv2/caves_virology) -"gKG" = ( +"gMj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 + }, /turf/open/floor{ - icon_state = "asteroidwarning" + dir = 1; + icon_state = "asteroidfloor" }, -/area/bigredv2/outside/telecomm/n_cave) +/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{ @@ -30657,10 +29653,6 @@ "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, @@ -30668,6 +29660,12 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_research) +"gPc" = ( +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "gPh" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/door/airlock/almayer/secure/colony{ @@ -30685,14 +29683,10 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"gQP" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/surface/table, -/obj/effect/spawner/random/toolbox, -/turf/open/floor, -/area/bigredv2/outside/cargo) +"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{ @@ -30756,6 +29750,15 @@ icon_state = "darkblue2" }, /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"; @@ -30793,13 +29796,6 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_sw) -"gYM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/hydroponics) "gZc" = ( /obj/structure/machinery/light{ dir = 8 @@ -30812,6 +29808,14 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"hah" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "loadingarea" + }, +/area/bigredv2/outside/cargo) "haT" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -30820,6 +29824,15 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/filtration_plant) +"hbx" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/bed/roller, +/turf/open/floor{ + icon_state = "white" + }, +/area/bigredv2/outside/medical) "hcb" = ( /obj/effect/landmark/hunter_secondary, /turf/open/mars_cave{ @@ -30844,12 +29857,15 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"hdJ" = ( -/obj/item/stack/sheet/wood, -/turf/open/mars_cave{ - icon_state = "mars_cave_9" +"heD" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/area/bigredv2/caves_north) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "heG" = ( /obj/structure/bed/chair{ can_buckle = 0; @@ -30863,19 +29879,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"heI" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, -/area/bigredv2/outside/n) -"heU" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "floor4" - }, -/area/bigredv2/outside/cargo) "hfB" = ( /obj/item/ore{ pixel_x = -5; @@ -30885,17 +29888,44 @@ icon_state = "mars_dirt_6" }, /area/bigredv2/caves/mining) +"hgr" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_16" + }, +/area/bigredv2/outside/ne) +"hgO" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_14" + }, +/area/bigredv2/outside/n) "hgT" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_7" }, /area/bigredv2/outside/lz1_north_cas) +"hho" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "hhK" = ( /turf/open/floor{ dir = 1; icon_state = "darkyellow2" }, /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 @@ -31005,13 +30035,11 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/filtration_plant) -"hul" = ( +"hto" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/tool/hatchet, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) +/obj/structure/machinery/vending/cola, +/turf/open/floor, +/area/bigredv2/outside/general_offices) "hvQ" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -31048,6 +30076,11 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"hyC" = ( +/turf/open/floor{ + icon_state = "bcircuit" + }, +/area/bigredv2/outside/telecomm/warehouse) "hzg" = ( /obj/structure/cable{ icon_state = "1-6" @@ -31100,6 +30133,14 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"hDK" = ( +/obj/structure/largecrate/supply, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/n) "hEz" = ( /turf/open/mars_cave{ icon_state = "mars_cave_6" @@ -31121,6 +30162,22 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"hFg" = ( +/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/caves_lambda) +"hFv" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) "hFP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/item_pool_spawner/survivor_ammo, @@ -31129,10 +30186,40 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"hFV" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_9" + }, +/area/bigredv2/outside/n) +"hGv" = ( +/obj/structure/machinery/light, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) +"hHa" = ( +/obj/structure/fence, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/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{ + icon_state = "podhatchfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) "hKl" = ( /obj/structure/surface/rack, /obj/item/reagent_container/food/drinks/bottle/goldschlager, @@ -31160,6 +30247,15 @@ icon_state = "mars_cave_17" }, /area/bigredv2/caves_north) +"hKO" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + dir = 10; + icon_state = "red" + }, +/area/bigredv2/outside/lambda_cave_cas) "hLp" = ( /obj/effect/landmark/corpsespawner/ua_riot, /turf/open/mars_cave, @@ -31182,6 +30278,13 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/research) +"hNW" = ( +/obj/structure/machinery/light, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/lambda_cave_cas) "hOx" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/stationary, /turf/open/floor{ @@ -31205,6 +30308,11 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_se) +"hQO" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_14" + }, +/area/bigredv2/outside/n) "hRy" = ( /obj/structure/surface/rack, /turf/open/floor/plating{ @@ -31212,12 +30320,6 @@ icon_state = "platingdmg3" }, /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{ @@ -31242,6 +30344,15 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"hVP" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + dir = 1; + icon_state = "bot" + }, +/area/bigredv2/outside/cargo) "hWa" = ( /turf/open/floor{ icon_state = "dark" @@ -31302,11 +30413,6 @@ }, /turf/open/floor, /area/bigredv2/outside/cargo) -"iaq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor, -/area/bigredv2/outside/general_offices) "iaC" = ( /obj/structure/platform, /turf/open/gm/river, @@ -31316,6 +30422,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"iaS" = ( +/obj/structure/bed/chair/comfy{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "iaX" = ( /obj/item/weapon/twohanded/folded_metal_chair, /obj/effect/landmark/corpsespawner/colonist/random/burst, @@ -31326,16 +30440,38 @@ "ibP" = ( /turf/open/floor/plating, /area/bigredv2/caves_research) +"ibV" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/effect/landmark/lv624/xeno_tunnel, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/dorms) "ibZ" = ( /turf/open/mars_cave{ icon_state = "mars_cave_16" }, /area/bigredv2/caves_sw) +"ice" = ( +/obj/structure/surface/table, +/obj/item/clothing/ears/earmuffs, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) "icQ" = ( /turf/open/mars_cave{ icon_state = "mars_cave_6" }, /area/bigredv2/caves_sw) +"idn" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/n) "idM" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor{ @@ -31343,12 +30479,18 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"idO" = ( +"idT" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_9" + }, +/area/bigredv2/caves_lambda) +"ied" = ( +/obj/structure/surface/table, +/obj/item/clothing/under/brown, /turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" + icon_state = "freezerfloor" }, -/area/bigredv2/outside/virology) +/area/bigredv2/outside/general_offices) "iep" = ( /obj/structure/surface/rack, /obj/item/clothing/head/hardhat/dblue{ @@ -31395,13 +30537,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"igi" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) "igM" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = 6 @@ -31429,6 +30564,15 @@ /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{ + icon_state = "red" + }, +/area/bigredv2/outside/marshal_office) "ijU" = ( /obj/structure/prop/almayer/cannon_cables{ name = "\improper Cables" @@ -31442,9 +30586,13 @@ icon_state = "floor1" }, /area/bigredv2/oob) -"ilN" = ( -/turf/closed/wall/solaris, -/area/bigredv2/outside/n) +"ilH" = ( +/obj/structure/machinery/light, +/obj/structure/machinery/portable_atmospherics/hydroponics, +/turf/open/floor{ + icon_state = "whitegreenfull" + }, +/area/bigredv2/outside/hydroponics) "ilO" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 1 @@ -31506,6 +30654,16 @@ icon_state = "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{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/caves_north) "iqF" = ( /obj/structure/prop/invuln/minecart_tracks, /turf/open/mars_cave{ @@ -31522,18 +30680,15 @@ /obj/effect/spawner/random/technology_scanner, /turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) -"isk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/vending/snack, -/turf/open/floor, -/area/bigredv2/outside/general_offices) -"isr" = ( -/obj/effect/decal/cleanable/dirt, +"irZ" = ( +/obj/structure/machinery/light{ + dir = 4 + }, /turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" + dir = 6; + icon_state = "red" }, -/area/bigredv2/outside/telecomm/n_cave) +/area/bigredv2/outside/lambda_cave_cas) "itL" = ( /obj/structure/closet/l3closet/virology, /obj/effect/landmark/objective_landmark/science, @@ -31546,6 +30701,11 @@ icon_state = "mars_cave_16" }, /area/bigredv2/outside/lz1_north_cas) +"ivW" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_9" + }, +/area/bigredv2/outside/ne) "iwG" = ( /obj/effect/landmark/crap_item, /turf/open/mars_cave{ @@ -31558,25 +30718,6 @@ icon_state = "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{ - dir = 8; - pixel_y = 6 - }, -/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" @@ -31624,6 +30765,19 @@ }, /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{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/w) "iDJ" = ( /obj/effect/landmark/corpsespawner/miner, /obj/effect/decal/cleanable/blood{ @@ -31673,6 +30827,10 @@ icon_state = "platingdmg3" }, /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, @@ -31681,15 +30839,32 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"iFz" = ( +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "lambda-interior"; + name = "Lambda Checkpoint Interior" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/lambda_cave_cas) "iGK" = ( /turf/open/mars_cave, /area/bigredv2/caves_sw) -"iIp" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "chapel" +"iGY" = ( +/obj/item/stack/sheet/wood, +/turf/open/mars_cave{ + icon_state = "mars_cave_6" }, -/turf/closed/wall/solaris, -/area/bigredv2/outside/chapel) +/area/bigredv2/caves_north) +"iHe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 8; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) "iJF" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6"; @@ -31720,15 +30895,22 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"iNE" = ( +/obj/effect/landmark/static_comms/net_one, +/turf/open/floor{ + icon_state = "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" +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" }, -/area/bigredv2/outside/n) +/area/bigredv2/outside/ne) "iPE" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 1 @@ -31754,9 +30936,10 @@ }, /area/bigredv2/caves_research) "iRf" = ( +/obj/structure/fence, /turf/open/floor{ dir = 1; - icon_state = "asteroidwarning" + icon_state = "asteroidfloor" }, /area/bigredv2/outside/telecomm/n_cave) "iRw" = ( @@ -31774,11 +30957,6 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_research) -"iSc" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, -/area/bigredv2/outside/n) "iSz" = ( /obj/structure/barricade/handrail{ dir = 1; @@ -31788,6 +30966,17 @@ /obj/structure/barricade/handrail, /turf/open/floor/plating/plating_catwalk, /area/bigredv2/outside/engineering) +"iTN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor/plating{ + dir = 10; + icon_state = "warnplate" + }, +/area/bigredv2/outside/telecomm/warehouse) "iUe" = ( /turf/open/floor{ dir = 6; @@ -31816,13 +31005,22 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_cave_cas) -"iXL" = ( -/obj/effect/decal/cleanable/dirt, +"iXs" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/obj/structure/prop/server_equipment/yutani_server{ + density = 0; + pixel_y = 16 + }, /turf/open/floor{ dir = 1; icon_state = "asteroidfloor" }, /area/bigredv2/outside/telecomm/n_cave) +"iXx" = ( +/turf/open/mars_cave, +/area/bigredv2/outside/n) "iXN" = ( /obj/item/ore{ pixel_x = -7; @@ -31855,22 +31053,19 @@ icon_state = "dark" }, /area/bigredv2/outside/admin_building) -"iZh" = ( -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) -"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{ + icon_state = "whitegreenfull" + }, +/area/bigredv2/outside/hydroponics) "jbU" = ( /obj/effect/decal/cleanable/blood{ base_icon = 'icons/obj/items/weapons/grenade.dmi'; @@ -31883,12 +31078,6 @@ icon_state = "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{ @@ -31915,17 +31104,11 @@ icon_state = "mars_dirt_3" }, /area/bigredv2/outside/s) -"jfn" = ( -/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{ - icon_state = "test_floor4" +"jeO" = ( +/turf/open/mars{ + icon_state = "mars_dirt_13" }, -/area/bigredv2/outside/engineering) +/area/bigredv2/outside/n) "jfr" = ( /turf/open/floor{ dir = 5; @@ -31989,14 +31172,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"jku" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/tool/surgery/hemostat, -/obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) "jkO" = ( /obj/item/explosive/grenade/high_explosive/frag, /turf/open/mars_cave, @@ -32008,11 +31183,17 @@ /obj/structure/reagent_dispensers/fueltank/gas, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"jmY" = ( -/turf/open/mars{ - icon_state = "mars_dirt_8" +"jlS" = ( +/turf/open/floor{ + dir = 10; + icon_state = "asteroidwarning" }, -/area/bigredv2/outside/sw) +/area/bigredv2/outside/space_port_lz2) +"jmD" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_6" + }, +/area/bigredv2/outside/ne) "jna" = ( /obj/item/prop/alien/hugger, /turf/open/floor{ @@ -32040,21 +31221,15 @@ icon_state = "platingdmg3" }, /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{ - icon_state = "bcircuit" - }, -/area/bigredv2/outside/telecomm/warehouse) "jpT" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, @@ -32078,6 +31253,12 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_research) +"jrN" = ( +/obj/structure/closet/crate/trashcart, +/turf/open/floor{ + icon_state = "asteroidplating" + }, +/area/bigredv2/outside/space_port_lz2) "jsL" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" @@ -32093,17 +31274,6 @@ icon_state = "mars_cave_7" }, /area/bigredv2/caves/mining) -"jtX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "juo" = ( /obj/structure/machinery/light{ dir = 8 @@ -32113,17 +31283,24 @@ icon_state = "podhatch" }, /area/bigredv2/caves/lambda/research) -"jvh" = ( -/obj/structure/largecrate/supply, +"juZ" = ( +/obj/structure/machinery/light{ + dir = 1 + }, /turf/open/floor{ dir = 1; - icon_state = "asteroidfloor" + icon_state = "asteroidwarning" }, -/area/bigredv2/outside/n) -"jvt" = ( -/obj/structure/cargo_container/horizontal/blue/bottom, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) +/area/bigredv2/outside/lambda_cave_cas) +"jvW" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor{ + dir = 6; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_lambda) "jwj" = ( /obj/structure/platform/shiva{ dir = 8 @@ -32182,6 +31359,17 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"jAR" = ( +/obj/structure/bookcase/manuals/engineering, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/marshal_office) +"jAX" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_17" + }, +/area/bigredv2/caves_lambda) "jBq" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/floor{ @@ -32221,6 +31409,12 @@ icon_state = "mars_cave_10" }, /area/bigredv2/caves_virology) +"jDo" = ( +/obj/effect/landmark/hunter_secondary, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/space_port_lz2) "jDy" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ @@ -32306,6 +31500,21 @@ icon_state = "mars_dirt_5" }, /area/bigredv2/caves/mining) +"jJO" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_13" + }, +/area/bigredv2/caves_north) +"jKp" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor{ + dir = 1; + icon_state = "red" + }, +/area/bigredv2/outside/lambda_cave_cas) "jKI" = ( /obj/structure/platform_decoration/shiva{ dir = 8 @@ -32336,11 +31545,22 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"jMB" = ( +"jNE" = ( +/obj/structure/machinery/washing_machine, +/obj/structure/machinery/washing_machine{ + pixel_y = 13 + }, /turf/open/floor{ - icon_state = "asteroidwarning" + icon_state = "freezerfloor" }, -/area/bigredv2/caves_north) +/area/bigredv2/outside/general_offices) +"jNN" = ( +/obj/structure/bed/chair/wood/normal, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "jOc" = ( /obj/structure/machinery/door/poddoor/almayer/closed{ dir = 4; @@ -32351,6 +31571,14 @@ icon_state = "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{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/dorms) "jOS" = ( /obj/structure/surface/rack, /obj/item/tool/pickaxe/plasmacutter{ @@ -32372,6 +31600,11 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"jPQ" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_16" + }, +/area/bigredv2/outside/ne) "jPV" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -1; @@ -32394,16 +31627,6 @@ /obj/item/storage/firstaid/fire, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"jQe" = ( -/obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/stationary{ - density = 0; - pixel_y = 16 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/c) "jQS" = ( /obj/structure/prop/almayer/cannon_cable_connector{ name = "\improper Cable connector" @@ -32441,6 +31664,32 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/filtration_plant) +"jRH" = ( +/obj/structure/surface/table, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + dir = 5; + icon_state = "whiteblue" + }, +/area/bigredv2/outside/medical) +"jSe" = ( +/obj/item/stack/sheet/wood, +/turf/open/mars_cave{ + icon_state = "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{ + dir = 5; + icon_state = "red" + }, +/area/bigredv2/outside/marshal_office) "jTk" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/molten_item, @@ -32454,6 +31703,28 @@ /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{ + icon_state = "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{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "jUM" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, @@ -32506,16 +31777,6 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) -"jWa" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) "jWj" = ( /obj/effect/decal/cleanable/blood, /turf/open/mars_cave{ @@ -32539,6 +31800,17 @@ icon_state = "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{ + dir = 9; + icon_state = "red" + }, +/area/bigredv2/outside/marshal_office) "jXf" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 @@ -32624,6 +31896,11 @@ /obj/item/weapon/broken_bottle, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"kcH" = ( +/turf/open/mars{ + icon_state = "mars_dirt_9" + }, +/area/bigredv2/outside/sw) "kcZ" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /obj/structure/fence, @@ -32631,12 +31908,6 @@ icon_state = "mars_cave_17" }, /area/bigredv2/outside/filtration_cave_cas) -"kdd" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) "kdf" = ( /obj/item/tool/warning_cone{ pixel_y = 17 @@ -32693,6 +31964,11 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /turf/open/mars_cave, /area/bigredv2/caves_lambda) +"kfx" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_15" + }, +/area/bigredv2/outside/n) "kfY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, @@ -32744,6 +32020,21 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"khB" = ( +/obj/structure/prop/vehicles/crawler{ + icon_state = "crawler_covered_bed" + }, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/caves_lambda) +"khK" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/n) "khP" = ( /obj/structure/platform{ dir = 1 @@ -32773,6 +32064,13 @@ icon_state = "platingdmg3" }, /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; @@ -32830,11 +32128,6 @@ icon_state = "darkyellowcorners2" }, /area/bigredv2/outside/engineering) -"knF" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, -/area/bigredv2/outside/ne) "knN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -32849,30 +32142,19 @@ icon_state = "mars_cave_7" }, /area/bigredv2/outside/filtration_cave_cas) -"kos" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) "kpd" = ( -/obj/structure/platform_decoration{ - dir = 4 +/turf/open/mars_cave{ + icon_state = "mars_cave_14" }, -/obj/effect/decal/cleanable/dirt, +/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{ dir = 1; icon_state = "asteroidfloor" }, -/area/bigredv2/outside/telecomm/n_cave) -"kpf" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E-corner" - }, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, -/area/bigredv2/caves_north) +/area/bigredv2/caves_lambda) "kqS" = ( /turf/open/floor{ icon_state = "wood" @@ -32952,6 +32234,16 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"kwq" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/ne) "kwQ" = ( /turf/open/floor{ dir = 10; @@ -32966,6 +32258,15 @@ icon_state = "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; @@ -32977,6 +32278,29 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/xenobiology) +"kzF" = ( +/turf/open/mars_cave{ + icon_state = "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{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) "kBn" = ( /turf/closed/wall/solaris, /area/bigredv2/caves) @@ -32998,11 +32322,19 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"kCm" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" +"kCR" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/area/bigredv2/outside/ne) +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor{ + dir = 8; + icon_state = "red" + }, +/area/bigredv2/outside/marshal_office) "kDs" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/cans/waterbottle{ @@ -33013,12 +32345,6 @@ icon_state = "mars_cave_3" }, /area/bigredv2/caves/mining) -"kED" = ( -/obj/structure/cargo_container/kelland/left, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/space_port_lz2) "kFe" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor{ @@ -33073,11 +32399,11 @@ icon_state = "darkred2" }, /area/bigredv2/caves/eta/research) -"kLW" = ( -/obj/effect/landmark/crap_item, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" +"kMk" = ( +/obj/effect/landmark/hunter_primary, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" }, /area/bigredv2/outside/ne) "kMs" = ( @@ -33128,14 +32454,12 @@ icon_state = "dark" }, /area/bigredv2/outside/engineering) -"kNP" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 9 - }, +"kOv" = ( +/obj/structure/largecrate/random, /turf/open/floor{ - icon_state = "asteroidwarning" + icon_state = "asteroidplating" }, -/area/bigredv2/caves_lambda) +/area/bigredv2/outside/space_port_lz2) "kPu" = ( /obj/structure/machinery/power/terminal{ dir = 1 @@ -33160,11 +32484,12 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /turf/open/mars_cave, /area/bigredv2/caves_east) -"kRo" = ( -/turf/open/floor{ - icon_state = "bcircuit" +"kRy" = ( +/obj/structure/machinery/power/apc{ + dir = 1 }, -/area/bigredv2/outside/telecomm/warehouse) +/turf/open/floor/plating, +/area/bigredv2/outside/medical) "kRK" = ( /obj/structure/window/framed/solaris/reinforced, /turf/open/floor/plating, @@ -33206,13 +32531,25 @@ /obj/effect/decal/cleanable/blood, /turf/open/floor, /area/bigredv2/outside/filtration_cave_cas) -"kTC" = ( -/obj/structure/surface/table, -/obj/item/stack/sheet/glass{ - amount = 30 +"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, -/area/bigredv2/outside/cargo) +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_lambda) +"kVR" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 + }, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) "kVS" = ( /obj/effect/landmark/crap_item, /turf/open/mars_cave{ @@ -33239,14 +32576,38 @@ icon_state = "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{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/lz2_cave) +"kXV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/roller, +/turf/open/floor{ + dir = 1; + icon_state = "whitegreen" + }, +/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{ + dir = 10; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_lambda) "laj" = ( /obj/structure/tunnel{ id = "hole5" @@ -33255,16 +32616,11 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_lambda) -"laX" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 9; - pixel_y = -3 - }, -/turf/open/floor{ - icon_state = "white" +"lbh" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_17" }, -/area/bigredv2/outside/medical) +/area/bigredv2/outside/n) "lbZ" = ( /obj/item/frame/rack, /obj/effect/decal/cleanable/dirt, @@ -33307,6 +32663,13 @@ icon_state = "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, @@ -33358,6 +32721,21 @@ icon_state = "asteroidwarning" }, /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{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "lom" = ( /obj/effect/landmark/corpsespawner/miner, /obj/effect/decal/cleanable/blood{ @@ -33381,6 +32759,24 @@ icon_state = "dark" }, /area/bigredv2/outside/engineering) +"lqp" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) +"lrs" = ( +/obj/structure/machinery/door/airlock/almayer/command/colony{ + name = "\improper Operations" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/admin_building) "lrH" = ( /obj/effect/landmark/crap_item, /turf/open/mars_cave{ @@ -33416,6 +32812,17 @@ icon_state = "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{ @@ -33464,6 +32871,18 @@ icon_state = "platingdmg3" }, /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{ @@ -33477,18 +32896,30 @@ /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{ + icon_state = "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, +"lAR" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/door_control{ + id = "lambda-interior"; + name = "Lambda Checkpoint Interior"; + pixel_x = null + }, /turf/open/floor{ - icon_state = "bcircuit" + dir = 9; + icon_state = "redfull" }, -/area/bigredv2/outside/telecomm/lz2_cave) +/area/bigredv2/outside/lambda_cave_cas) "lBc" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/c) @@ -33506,6 +32937,14 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"lCt" = ( +/obj/structure/machinery/power/reactor/colony{ + name = "Reactor Turbine" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/engineering) "lCR" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/flask/vacuumflask{ @@ -33554,6 +32993,12 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"lFR" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "viro_open" + }, +/turf/closed/wall/solaris/rock, +/area/bigredv2/caves) "lGt" = ( /turf/open/floor{ icon_state = "delivery" @@ -33567,10 +33012,24 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"lID" = ( +/obj/structure/barricade/handrail{ + dir = 4 + }, +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/c) "lIL" = ( /obj/structure/sign/safety/fire_haz, /turf/closed/wall/wood, /area/bigredv2/caves/mining) +"lIS" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_19" + }, +/area/bigredv2/outside/ne) "lKw" = ( /obj/item/paper/bigred/walls, /obj/structure/machinery/light/small{ @@ -33581,6 +33040,11 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"lLe" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_18" + }, +/area/bigredv2/outside/lambda_cave_cas) "lLf" = ( /obj/structure/largecrate/random/case, /turf/open/floor/plating{ @@ -33588,12 +33052,6 @@ icon_state = "platingdmg3" }, /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 @@ -33603,12 +33061,6 @@ icon_state = "asteroidfloor" }, /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 @@ -33619,6 +33071,31 @@ icon_state = "asteroidwarning" }, /area/bigred/ground/garage_workshop) +"lNp" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/pipes/vents/pump{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/office_complex) +"lOL" = ( +/turf/open/mars_cave{ + icon_state = "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; @@ -33649,16 +33126,22 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/virology) -"lRu" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 +"lRC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/handrail{ + dir = 8 }, /turf/open/floor{ - dir = 4; + dir = 8; icon_state = "asteroidwarning" }, -/area/bigredv2/outside/telecomm/lz2_cave) +/area/bigredv2/outside/c) +"lSb" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_9" + }, +/area/bigredv2/outside/ne) "lSm" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -33680,16 +33163,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"lSL" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/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, @@ -33708,6 +33181,17 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/filtration_plant) +"lTC" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/machinery/power/apc{ + dir = 1 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "lTM" = ( /obj/item/folder/yellow, /turf/open/floor{ @@ -33715,6 +33199,17 @@ icon_state = "darkyellowcorners2" }, /area/bigredv2/outside/engineering) +"lTV" = ( +/obj/structure/surface/table, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) +"lUa" = ( +/turf/open/mars{ + icon_state = "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, @@ -33728,11 +33223,10 @@ icon_state = "mars_cave_18" }, /area/bigredv2/caves_se) -"lVm" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/outside/n) +"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, @@ -33784,6 +33278,12 @@ icon_state = "mars_cave_23" }, /area/bigredv2/caves/mining) +"maB" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "viro-rock_open" + }, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/virology) "maD" = ( /turf/open/floor/almayer{ icon_state = "test_floor4" @@ -33803,25 +33303,22 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"mcc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/vending/cola, -/turf/open/floor, -/area/bigredv2/outside/general_offices) -"mdU" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - start_charge = 0 +"mbz" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 }, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 +/obj/structure/machinery/door/airlock/almayer/maint/colony{ + name = "\improper Bar Maintenance" }, /turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" + icon_state = "delivery" }, -/area/bigredv2/outside/telecomm/lz2_cave) +/area/bigredv2/outside/bar) +"mda" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_16" + }, +/area/bigredv2/caves_lambda) "meT" = ( /turf/open/mars, /area/bigredv2/outside/eta) @@ -33833,17 +33330,24 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) -"mhx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/surface/table, -/obj/structure/machinery/light{ - dir = 4 +"mfG" = ( +/obj/structure/pipes/vents/pump/on, +/turf/open/floor{ + icon_state = "freezerfloor" }, -/obj/item/stack/sheet/glass{ - amount = 30 +/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{ + dir = 10; + icon_state = "darkyellow2" }, -/turf/open/floor, -/area/bigredv2/outside/cargo) +/area/bigredv2/outside/engineering) "mhF" = ( /obj/structure/machinery/light{ dir = 4 @@ -33861,6 +33365,13 @@ }, /turf/closed/wall/solaris/reinforced/hull, /area/bigredv2/caves/mining) +"mhV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) "mhZ" = ( /obj/structure/machinery/portable_atmospherics/canister/air, /turf/open/floor{ @@ -33890,6 +33401,10 @@ }, /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, @@ -33911,18 +33426,31 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"mnv" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor{ + icon_state = "grimy" + }, +/area/bigredv2/outside/dorms) +"mnY" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/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{ icon_state = "mars_cave_9" }, /area/bigredv2/caves_research) -"mpn" = ( -/obj/structure/fence, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/n) "mqf" = ( /obj/structure/bed/chair{ dir = 8; @@ -33997,6 +33525,23 @@ }, /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{ + icon_state = "wood" + }, +/area/bigredv2/outside/marshal_office) +"mtS" = ( +/obj/structure/fence, +/turf/open/floor{ + dir = 8; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) "muP" = ( /turf/closed/wall/wood, /area/bigredv2/caves_research) @@ -34039,6 +33584,20 @@ "mzV" = ( /turf/open/mars, /area/bigredv2/outside/filtration_plant) +"mAY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) +"mBc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/tool/hatchet, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/dorms) "mBo" = ( /obj/item/weapon/twohanded/folded_metal_chair{ pixel_x = -7; @@ -34060,11 +33619,24 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/filtration_cave_cas) +"mDt" = ( +/turf/open/floor{ + icon_state = "asteroidplating" + }, +/area/bigredv2/outside/space_port_lz2) "mDN" = ( /turf/open/mars_cave{ icon_state = "mars_cave_15" }, /area/bigredv2/outside/lz1_north_cas) +"mEC" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E-corner" + }, +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/caves_north) "mEH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -34089,12 +33661,6 @@ icon_state = "mars_cave_17" }, /area/bigredv2/outside/lz1_north_cas) -"mGS" = ( -/obj/effect/landmark/static_comms/net_two, -/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, @@ -34103,11 +33669,24 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_se) +"mIc" = ( +/obj/effect/landmark/static_comms/net_two, +/turf/open/floor{ + icon_state = "podhatchfloor" + }, +/area/bigredv2/outside/admin_building) "mIr" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_7" }, /area/bigredv2/outside/filtration_plant) +"mIs" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "mIu" = ( /obj/structure/machinery/light{ dir = 4 @@ -34125,12 +33704,14 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_plant) -"mJH" = ( -/obj/structure/cargo_container/arious/leftmid, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" +"mKi" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_10" }, -/area/bigredv2/outside/space_port_lz2) +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "mKM" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_y = 6 @@ -34142,6 +33723,23 @@ icon_state = "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{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/e) +"mOc" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony{ + dir = 1; + name = "\improper General Store Maintenance" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/cargo) "mOW" = ( /obj/structure/pipes/standard/tank/oxygen, /turf/open/floor/plating{ @@ -34215,6 +33813,17 @@ icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) +"mUb" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 9 + }, +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "mUy" = ( /turf/open/mars_cave{ icon_state = "mars_cave_7" @@ -34239,20 +33848,22 @@ icon_state = "mars_dirt_5" }, /area/bigredv2/caves/mining) -"mWI" = ( -/turf/open/mars_cave, -/area/bigredv2/outside/n) -"mWJ" = ( -/turf/open/mars{ - icon_state = "mars_dirt_9" - }, -/area/bigredv2/outside/sw) "mXw" = ( /obj/item/storage/toolbox/mechanical, /turf/open/mars_cave{ icon_state = "mars_dirt_6" }, /area/bigredv2/caves/mining) +"mYV" = ( +/obj/structure/machinery/power/apc{ + dir = 1; + start_charge = 0 + }, +/turf/open/floor{ + dir = 1; + icon_state = "red" + }, +/area/bigredv2/outside/lambda_cave_cas) "mYW" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "A heavy duty power cable for high voltage applications"; @@ -34284,6 +33895,10 @@ icon_state = "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{ @@ -34329,12 +33944,27 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_cave_cas) +"nfY" = ( +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_east) "ngJ" = ( /obj/item/stack/cable_coil/cut, /turf/open/mars_cave{ icon_state = "mars_dirt_6" }, /area/bigredv2/caves/mining) +"nhF" = ( +/obj/structure/machinery/camera/autoname{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "niQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -34354,6 +33984,20 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/admin_building) +"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{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "nkQ" = ( /turf/open/mars_cave{ icon_state = "mars_cave_23" @@ -34379,6 +34023,11 @@ icon_state = "mars_dirt_6" }, /area/bigredv2/caves/mining) +"nlB" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_16" + }, +/area/bigredv2/outside/n) "nlJ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -34405,6 +34054,23 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves_research) +"nnz" = ( +/turf/open/mars_cave{ + icon_state = "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{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "nnK" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -34447,6 +34113,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"nra" = ( +/turf/open/mars{ + icon_state = "mars_dirt_13" + }, +/area/bigredv2/outside/sw) "nrj" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -1; @@ -34461,6 +34132,13 @@ icon_state = "mars_cave_6" }, /area/bigredv2/outside/filtration_cave_cas) +"nrA" = ( +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/ne) "ntX" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -34515,6 +34193,23 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"nuQ" = ( +/obj/structure/surface/table/woodentable, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) +"nvn" = ( +/obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/stationary{ + density = 0; + pixel_y = 16 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/c) "nwB" = ( /turf/open/floor{ dir = 8; @@ -34538,6 +34233,17 @@ icon_state = "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{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "nzN" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -34577,6 +34283,11 @@ icon_state = "mars_cave_13" }, /area/bigredv2/outside/lz2_south_cas) +"nEH" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_10" + }, +/area/bigredv2/outside/n) "nEJ" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_5" @@ -34601,6 +34312,15 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"nFp" = ( +/obj/structure/window, +/obj/structure/window{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "nFB" = ( /obj/item/weapon/gun/rifle/m16, /obj/item/ammo_magazine/rifle/m16, @@ -34623,26 +34343,6 @@ icon_state = "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) -"nGU" = ( -/obj/structure/toilet{ - dir = 1 - }, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) -"nHb" = ( -/turf/open/floor{ - icon_state = "bcircuit" - }, -/area/bigredv2/outside/telecomm/lz2_cave) "nHQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/machinery/door/poddoor/almayer/closed{ @@ -34663,14 +34363,14 @@ icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) -"nIs" = ( -/obj/structure/window/framed/solaris, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "Greenhouse"; - name = "\improper Greenhouse Shutters" +"nIS" = ( +/obj/structure/surface/table/reinforced, +/obj/item/storage/donut_box, +/turf/open/floor{ + dir = 9; + icon_state = "redfull" }, -/turf/open/floor/plating, -/area/bigredv2/outside/hydroponics) +/area/bigredv2/outside/lambda_cave_cas) "nKL" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "An exchange valve"; @@ -34709,6 +34409,14 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"nOe" = ( +/obj/structure/toilet{ + dir = 1 + }, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/dorms) "nPz" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -34777,22 +34485,11 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_cave_cas) -"nVa" = ( -/obj/structure/fence, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/n) "nVq" = ( /turf/open/floor{ icon_state = "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; @@ -34807,6 +34504,15 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"nWG" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 6 + }, +/obj/structure/machinery/portable_atmospherics/hydroponics, +/turf/open/floor{ + icon_state = "whitegreenfull" + }, +/area/bigredv2/outside/hydroponics) "nXh" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/remains/human, @@ -34840,6 +34546,19 @@ /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{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "nZD" = ( /obj/structure/platform_decoration{ dir = 8 @@ -34911,12 +34630,13 @@ icon_state = "dark" }, /area/bigredv2/caves/lambda/breakroom) -"oeT" = ( -/obj/item/stack/sheet/wood, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" +"oes" = ( +/obj/structure/surface/table/woodentable, +/obj/item/newspaper, +/turf/open/floor{ + icon_state = "wood" }, -/area/bigredv2/caves_north) +/area/bigredv2/outside/library) "ofn" = ( /obj/effect/decal/cleanable/dirt, /turf/closed/wall/solaris, @@ -34972,11 +34692,15 @@ /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/space_port_lz2) +/turf/open/floor{ + dir = 1; + icon_state = "whiteblue" + }, +/area/bigredv2/outside/medical) "ojD" = ( /obj/structure/platform_decoration{ dir = 4 @@ -35001,6 +34725,13 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"okt" = ( +/obj/structure/surface/table, +/obj/effect/spawner/random/tool, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) "ole" = ( /turf/open/floor/almayer{ dir = 1; @@ -35082,17 +34813,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_cave_cas) -"ooP" = ( -/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) "opz" = ( /obj/effect/landmark/crap_item, /turf/open/mars_cave{ @@ -35166,6 +34886,12 @@ icon_state = "mars_cave_2" }, /area/bigredv2/outside/lz2_west_cas) +"ovQ" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/ne) "ovZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" @@ -35222,6 +34948,15 @@ /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{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/dorms) "ozQ" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, @@ -35252,12 +34987,23 @@ icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) -"oEJ" = ( -/obj/structure/largecrate/random, -/turf/open/floor{ - icon_state = "asteroidplating" +"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; + health = 25000 }, -/area/bigredv2/outside/space_port_lz2) +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/caves_north) +"oFx" = ( +/obj/item/device/flashlight/lantern, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/ne) "oFY" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/item/prop/alien/hugger, @@ -35266,6 +35012,12 @@ icon_state = "darkred2" }, /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'; @@ -35302,6 +35054,16 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"oJv" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/computer/cameras/wooden_tv{ + dir = 8 + }, +/turf/open/floor{ + dir = 9; + icon_state = "redfull" + }, +/area/bigredv2/outside/lambda_cave_cas) "oJO" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -8; @@ -35337,6 +35099,14 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"oMf" = ( +/obj/structure/fence, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) "oNu" = ( /turf/open/mars_cave{ icon_state = "mars_cave_11" @@ -35356,20 +35126,22 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"oOt" = ( +"oOw" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" +/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 }, -/area/bigredv2/outside/telecomm/n_cave) -"oOM" = ( -/obj/structure/surface/table, -/obj/item/clothing/under/brown, /turf/open/floor{ - icon_state = "freezerfloor" + dir = 9; + icon_state = "redfull" }, -/area/bigredv2/outside/general_offices) +/area/bigredv2/outside/lambda_cave_cas) "oQz" = ( /obj/structure/machinery/light/double{ dir = 1 @@ -35398,12 +35170,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"oSN" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) "oTf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/barricade/handrail{ @@ -35453,6 +35219,22 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"oUY" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/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" @@ -35474,6 +35256,16 @@ icon_state = "darkblue2" }, /area/bigredv2/outside/admin_building) +"oWk" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor{ + dir = 8; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/lz2_cave) "oWp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/barricade/handrail, @@ -35494,12 +35286,6 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) -"oWM" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, -/area/bigredv2/outside/ne) "oXr" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -35616,12 +35402,6 @@ icon_state = "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" @@ -35631,6 +35411,11 @@ /obj/structure/window_frame/solaris, /turf/open/floor/plating, /area/bigredv2/outside/dorms) +"pgh" = ( +/turf/open/mars_cave{ + icon_state = "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, @@ -35653,11 +35438,35 @@ icon_state = "mars_cave_2" }, /area/bigredv2/outside/filtration_cave_cas) +"pgP" = ( +/obj/structure/surface/table, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/general_offices) +"pgV" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + dir = 6; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_east) "phi" = ( /turf/open/mars_cave{ icon_state = "mars_cave_6" }, /area/bigredv2/caves_research) +"phx" = ( +/obj/structure/pipes/standard/manifold/hidden/green{ + dir = 1 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/e) "plx" = ( /obj/structure/machinery/power/apc{ dir = 4 @@ -35689,6 +35498,15 @@ "pmS" = ( /turf/open/mars, /area/bigredv2/caves_north) +"pmV" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/caves_lambda) "pnL" = ( /turf/open/mars{ icon_state = "mars_dirt_11" @@ -35723,15 +35541,28 @@ /turf/closed/wall/solaris/rock, /area/bigredv2/caves) "pri" = ( -/obj/structure/barricade/handrail{ - dir = 1; - pixel_y = 2 +/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{ + icon_state = "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{ - dir = 1; - icon_state = "asteroidwarning" + icon_state = "wood" }, -/area/bigredv2/outside/c) +/area/bigredv2/outside/library) "psE" = ( /obj/effect/landmark/objective_landmark/medium, /turf/open/floor{ @@ -35744,16 +35575,6 @@ }, /turf/open/floor, /area/bigredv2/caves/eta/living) -"ptV" = ( -/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_19" - }, -/area/bigredv2/caves_north) "puU" = ( /obj/item/paper/bigred/witness, /turf/open/mars_cave{ @@ -35767,6 +35588,10 @@ icon_state = "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!"; @@ -35813,6 +35638,16 @@ icon_state = "dark" }, /area/bigredv2/outside/admin_building) +"pyq" = ( +/obj/structure/surface/table, +/obj/structure/machinery/computer/emails{ + dir = 8; + pixel_y = 4 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "pyU" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -35830,12 +35665,14 @@ icon_state = "dark" }, /area/bigredv2/outside/admin_building) -"pBh" = ( -/obj/structure/surface/table, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) +"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{ @@ -35873,20 +35710,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"pEp" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) -"pGN" = ( -/obj/structure/toilet{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) "pGP" = ( /obj/structure/barricade/handrail{ dir = 4 @@ -35896,13 +35719,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_plant) -"pGS" = ( -/obj/structure/surface/table, -/obj/effect/spawner/random/tool, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) "pHb" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -35910,12 +35726,15 @@ icon_state = "mars_cave_7" }, /area/bigredv2/caves_sw) -"pIh" = ( -/obj/structure/machinery/power/geothermal, +"pIl" = ( +/obj/structure/morgue{ + dir = 2 + }, /turf/open/floor{ - icon_state = "white" + dir = 9; + icon_state = "whiteblue" }, -/area/bigredv2/outside/virology) +/area/bigredv2/outside/medical) "pIN" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -35923,6 +35742,30 @@ icon_state = "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{ + icon_state = "delivery" + }, +/area/bigredv2/outside/lambda_cave_cas) +"pJn" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/outside/ne) +"pJt" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "pJS" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -4; @@ -35953,6 +35796,11 @@ icon_state = "mars_cave_19" }, /area/bigredv2/caves/mining) +"pLH" = ( +/turf/open/mars_cave{ + icon_state = "mars_dirt_6" + }, +/area/bigredv2/outside/ne) "pMi" = ( /obj/effect/decal/cleanable/dirt, /obj/item/tool/extinguisher, @@ -36002,12 +35850,28 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"pOt" = ( +/obj/structure/machinery/optable, +/turf/open/floor{ + dir = 4; + icon_state = "whiteblue" + }, +/area/bigredv2/outside/medical) "pOL" = ( /obj/structure/closet/crate/miningcar/yellow, /turf/open/mars_cave{ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"pPh" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/plating{ + icon_state = "warnplate" + }, +/area/bigredv2/outside/telecomm/warehouse) "pPo" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, @@ -36048,6 +35912,23 @@ icon_state = "platingdmg3" }, /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{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/lz2_cave) "pTA" = ( /obj/structure/platform_decoration/shiva{ dir = 1 @@ -36179,11 +36060,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"qap" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, -/area/bigredv2/outside/space_port_lz2) "qaK" = ( /obj/structure/largecrate, /turf/open/floor{ @@ -36195,14 +36071,35 @@ /obj/vehicle/powerloader/ft, /turf/open/floor/plating, /area/bigredv2/outside/nw/ceiling) -"qez" = ( -/obj/structure/fence, -/obj/effect/decal/cleanable/dirt, +"qby" = ( /turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" + icon_state = "bcircuit" }, -/area/bigredv2/outside/telecomm/n_cave) +/area/bigredv2/outside/telecomm/lz2_cave) +"qbG" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "lambda-interior"; + name = "Lambda Checkpoint Interior" + }, +/turf/open/floor{ + icon_state = "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{ + icon_state = "mars_dirt_7" + }, +/area/bigredv2/outside/space_port_lz2) "qeK" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, @@ -36266,16 +36163,6 @@ icon_state = "mars_cave_6" }, /area/bigredv2/caves/mining) -"qhS" = ( -/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_2" - }, -/area/bigredv2/caves_north) "qiA" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, @@ -36308,11 +36195,6 @@ icon_state = "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{ @@ -36324,14 +36206,6 @@ /obj/effect/spawner/random/toolbox, /turf/open/floor, /area/bigred/ground/garage_workshop) -"qlT" = ( -/obj/structure/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) "qmm" = ( /obj/structure/cargo_container/hd/right/alt, /turf/open/floor/plating, @@ -36347,12 +36221,6 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) -"qmY" = ( -/obj/effect/landmark/hunter_secondary, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, -/area/bigredv2/outside/n) "qoj" = ( /turf/open/mars_cave{ icon_state = "mars_cave_23" @@ -36373,6 +36241,24 @@ icon_state = "dark" }, /area/bigredv2/outside/admin_building) +"qoQ" = ( +/obj/structure/morgue{ + dir = 1 + }, +/turf/open/floor{ + dir = 10; + icon_state = "whiteblue" + }, +/area/bigredv2/outside/medical) +"qoS" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor{ + dir = 8; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/e) "qpn" = ( /obj/item/tool/warning_cone{ pixel_x = -6 @@ -36394,15 +36280,35 @@ /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{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/n) "qsE" = ( /turf/closed/wall/solaris/reinforced, /area/bigred/ground/garage_workshop) -"qtx" = ( +"qsV" = ( +/obj/structure/bookcase{ + icon_state = "book-5" + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" + icon_state = "wood" }, -/area/bigredv2/caves_north) +/area/bigredv2/outside/library) +"qus" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/dorms) "qux" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = 6 @@ -36419,6 +36325,17 @@ icon_state = "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{ + icon_state = "test_floor4" + }, +/area/bigredv2/outside/engineering) "qvA" = ( /obj/effect/landmark/xeno_spawn, /turf/open/mars_cave{ @@ -36431,6 +36348,11 @@ icon_state = "mars_cave_3" }, /area/bigredv2/caves/mining) +"qwm" = ( +/turf/open/mars{ + icon_state = "mars_dirt_12" + }, +/area/bigredv2/outside/n) "qwx" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -36459,17 +36381,6 @@ icon_state = "darkredcorners2" }, /area/bigredv2/outside/admin_building) -"qyq" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/c) "qzO" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /obj/structure/machinery/door/poddoor/almayer/closed{ @@ -36494,6 +36405,11 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/lz2_south_cas) +"qDZ" = ( +/turf/open/floor{ + icon_state = "podhatchfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) "qEs" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/mars_cave{ @@ -36574,13 +36490,20 @@ /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor, /area/bigredv2/outside/cargo) -"qJL" = ( -/obj/structure/fence, +"qJB" = ( +/obj/effect/decal/cleanable/blood{ + dir = 4; + icon_state = "gib6" + }, /turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" + dir = 1; + icon_state = "asteroidfloor" }, -/area/bigredv2/outside/n) +/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; @@ -36591,18 +36514,29 @@ icon_state = "platingdmg3" }, /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/marshal_office) +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_lambda) "qLk" = ( /obj/item/device/flashlight/lantern, /turf/open/mars_cave{ icon_state = "mars_dirt_5" }, /area/bigredv2/caves/mining) +"qLD" = ( +/turf/open/floor{ + icon_state = "red" + }, +/area/bigredv2/outside/lambda_cave_cas) "qLV" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -36610,6 +36544,11 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/eta) +"qMS" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_18" + }, +/area/bigredv2/outside/n) "qNu" = ( /obj/structure/surface/table, /obj/structure/machinery/light/small{ @@ -36620,21 +36559,27 @@ icon_state = "dark" }, /area/bigredv2/caves/lambda/xenobiology) +"qNH" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor{ + icon_state = "asteroidplating" + }, +/area/bigredv2/outside/space_port_lz2) "qNP" = ( /obj/structure/bed/chair{ dir = 8 }, /turf/open/floor, /area/bigred/ground/garage_workshop) -"qNT" = ( -/obj/structure/platform{ - dir = 4 +"qNU" = ( +/obj/structure/surface/table, +/obj/structure/machinery/computer/shuttle/dropship/flight/lz2{ + dir = 1 }, /turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" + icon_state = "asteroidwarning" }, -/area/bigredv2/outside/telecomm/n_cave) +/area/bigredv2/landing/console2) "qOM" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -9; @@ -36655,6 +36600,12 @@ "qPT" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/eta) +"qQl" = ( +/obj/effect/landmark/static_comms/net_one, +/turf/open/floor{ + icon_state = "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, @@ -36662,16 +36613,17 @@ icon_state = "mars_cave_6" }, /area/bigredv2/caves_lambda) +"qQr" = ( +/obj/item/stack/sheet/wood, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "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{ @@ -36705,6 +36657,12 @@ /obj/structure/window/framed/solaris/reinforced, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"qVw" = ( +/turf/open/floor{ + dir = 5; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/virology) "qVB" = ( /obj/item/weapon/shield/riot, /obj/effect/decal/cleanable/blood/drip{ @@ -36715,6 +36673,27 @@ icon_state = "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{ + icon_state = "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{ + icon_state = "delivery" + }, +/area/bigredv2/outside/lambda_cave_cas) "qXi" = ( /obj/structure/surface/table/woodentable, /obj/item/device/pinpointer, @@ -36722,6 +36701,24 @@ icon_state = "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{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/dorms) "qYY" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 8 @@ -36755,6 +36752,12 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"rat" = ( +/obj/structure/machinery/light, +/turf/open/floor{ + icon_state = "bcircuit" + }, +/area/bigredv2/outside/marshal_office) "raQ" = ( /obj/structure/barricade/handrail/wire{ dir = 4 @@ -36763,6 +36766,21 @@ icon_state = "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{ + dir = 4; + icon_state = "red" + }, +/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{ @@ -36770,6 +36788,13 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"rbV" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/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."; @@ -36837,27 +36862,31 @@ icon_state = "mars_cave_2" }, /area/space) +"rfX" = ( +/obj/structure/surface/table, +/obj/item/bodybag, +/obj/item/bodybag, +/obj/item/bodybag, +/turf/open/floor{ + dir = 5; + icon_state = "whitegreen" + }, +/area/bigredv2/outside/medical) +"rgm" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + icon_state = "chapel" + }, +/area/bigredv2/outside/chapel) "rgp" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave{ icon_state = "mars_cave_2" }, /area/bigredv2/outside/lz1_north_cas) -"rhx" = ( -/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{ - dir = 4; - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "rhP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ @@ -36891,6 +36920,12 @@ }, /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/mining) +"rkh" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor{ + icon_state = "red" + }, +/area/bigredv2/outside/lambda_cave_cas) "rkS" = ( /obj/structure/cable{ icon_state = "5-6" @@ -36900,12 +36935,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"rmk" = ( -/obj/effect/landmark/static_comms/net_one, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) "rml" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, /turf/open/floor, @@ -36913,6 +36942,17 @@ "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{ + icon_state = "delivery" + }, +/area/bigredv2/outside/lambda_cave_cas) "rnV" = ( /obj/item/stack/sheet/glass, /turf/open/floor{ @@ -36966,22 +37006,16 @@ icon_state = "mars_cave_19" }, /area/bigredv2/caves/mining) -"rrl" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "filtration" - }, +"rrF" = ( /turf/open/mars_cave{ - icon_state = "mars_cave_2" + icon_state = "mars_cave_13" }, -/area/bigredv2/outside/s) +/area/bigredv2/outside/ne) "rsv" = ( /turf/open/mars_cave{ icon_state = "mars_cave_3" }, /area/bigredv2/caves/mining) -"rsQ" = ( -/turf/closed/wall/r_wall/unmeltable, -/area/bigredv2/outside/c) "rtL" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave{ @@ -37017,14 +37051,6 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) -"ruF" = ( -/obj/structure/largecrate/supply, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/n) "ruS" = ( /obj/structure/bed/chair{ dir = 8; @@ -37065,6 +37091,12 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) +"rzR" = ( +/turf/open/floor{ + dir = 6; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/ne) "rzT" = ( /obj/structure/sign/nosmoking_1, /turf/closed/wall/solaris/reinforced, @@ -37074,6 +37106,12 @@ icon_state = "mars_cave_6" }, /area/bigredv2/caves_east) +"rBn" = ( +/obj/structure/window, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "rBK" = ( /obj/structure/fence, /turf/open/mars{ @@ -37091,6 +37129,11 @@ icon_state = "mars_cave_7" }, /area/bigredv2/outside/lz1_telecomm_cas) +"rDa" = ( +/turf/open/floor{ + icon_state = "redcorner" + }, +/area/bigredv2/outside/lambda_cave_cas) "rDl" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -3; @@ -37165,6 +37208,12 @@ icon_state = "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; @@ -37177,6 +37226,15 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"rKy" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/machinery/recharge_station, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/dorms) "rKP" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber, /turf/open/floor/plating{ @@ -37184,6 +37242,11 @@ icon_state = "warnplate" }, /area/bigredv2/oob) +"rLM" = ( +/turf/open/mars{ + icon_state = "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, @@ -37233,6 +37296,17 @@ /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, @@ -37289,16 +37363,6 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/storage) -"rTr" = ( -/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_14" - }, -/area/bigredv2/caves_north) "rTN" = ( /obj/structure/fence, /turf/open/floor{ @@ -37349,12 +37413,18 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) -"rVx" = ( +"rVE" = ( +/obj/effect/landmark/crap_item, +/turf/open/mars_cave{ + icon_state = "mars_cave_19" + }, +/area/bigredv2/outside/n) +"rVT" = ( +/obj/structure/fence, /turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" + icon_state = "asteroidwarning" }, -/area/bigredv2/outside/engineering) +/area/bigredv2/outside/n) "rWF" = ( /obj/item/stack/cable_coil/cut{ pixel_x = 6; @@ -37418,14 +37488,17 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"rZi" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/bed/roller, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" +"rYS" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/area/bigredv2/outside/medical) +/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, @@ -37436,6 +37509,13 @@ icon_state = "mars_cave_15" }, /area/bigredv2/caves/mining) +"rZU" = ( +/obj/structure/fence, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) "sap" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -37446,17 +37526,6 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"saH" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/obj/effect/landmark/objective_landmark/close, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) "saX" = ( /obj/structure/machinery/power/turbine, /turf/open/floor{ @@ -37471,6 +37540,14 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"sbm" = ( +/obj/structure/surface/table, +/obj/effect/spawner/random/toolbox, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/space_port_lz2) "sbz" = ( /obj/structure/platform/kutjevo/rock{ dir = 8 @@ -37499,6 +37576,24 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/living) +"scK" = ( +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) +"sdl" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/obj/structure/window, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "sdP" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor/plating, @@ -37536,24 +37631,26 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"shf" = ( -/obj/structure/barricade/handrail{ +"shn" = ( +/obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ +/obj/structure/machinery/door/poddoor/almayer/closed{ dir = 4; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/c) -"shm" = ( -/obj/structure/window/reinforced/tinted, -/obj/structure/machinery/shower{ - dir = 8 + id = "lambda-exterior"; + name = "Lambda Checkpoint Exterior" }, +/obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/floor{ - icon_state = "freezerfloor" + icon_state = "delivery" }, -/area/bigredv2/outside/dorms) +/area/bigredv2/outside/lambda_cave_cas) +"shK" = ( +/obj/structure/cargo_container/arious/right, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/space_port_lz2) "shV" = ( /turf/open/floor{ icon_state = "asteroidwarning" @@ -37660,17 +37757,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"som" = ( -/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{ - icon_state = "mars_cave_13" - }, -/area/bigredv2/caves_north) "sqc" = ( /obj/effect/decal/cleanable/blood{ base_icon = 'icons/obj/items/weapons/grenade.dmi'; @@ -37688,6 +37774,13 @@ icon_state = "mars_cave_10" }, /area/bigredv2/caves_research) +"sqt" = ( +/obj/effect/landmark/lv624/xeno_tunnel, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/ne) "sqQ" = ( /obj/item/paper/bigred/them, /turf/open/floor/plating{ @@ -37717,12 +37810,12 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) -"stJ" = ( +"stZ" = ( +/obj/effect/landmark/static_comms/net_two, /turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" + icon_state = "bcircuit" }, -/area/bigredv2/outside/telecomm/n_cave) +/area/bigredv2/outside/telecomm/lz2_cave) "sus" = ( /turf/open/mars_cave{ icon_state = "mars_cave_23" @@ -37768,11 +37861,15 @@ icon_state = "delivery" }, /area/bigred/ground/garage_workshop) -"svp" = ( +"swk" = ( +/obj/structure/machinery/light{ + dir = 4 + }, /turf/open/floor{ - icon_state = "asteroidplating" + dir = 8; + icon_state = "asteroidwarning" }, -/area/bigredv2/outside/space_port_lz2) +/area/bigredv2/outside/w) "swJ" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/science, @@ -37809,13 +37906,6 @@ icon_state = "mars_cave_16" }, /area/bigredv2/caves/mining) -"szg" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) "szi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -37837,6 +37927,15 @@ icon_state = "darkyellowcorners2" }, /area/bigredv2/outside/engineering) +"szZ" = ( +/obj/structure/window/reinforced/tinted, +/obj/structure/machinery/shower{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/dorms) "sAG" = ( /obj/effect/landmark/hunter_primary, /turf/open/mars_cave{ @@ -37868,12 +37967,6 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_east) -"sBF" = ( -/obj/structure/cargo_container/kelland/right, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/space_port_lz2) "sCj" = ( /obj/item/stack/cable_coil/cut, /turf/open/mars_cave{ @@ -37917,6 +38010,21 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"sEb" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 3 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) +"sEh" = ( +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/e) "sEi" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -37925,6 +38033,12 @@ icon_state = "darkgreencorners2" }, /area/bigredv2/caves/eta/research) +"sFv" = ( +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_north) "sFW" = ( /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/mars_cave{ @@ -37953,6 +38067,13 @@ icon_state = "mars_dirt_6" }, /area/bigredv2/caves/mining) +"sHO" = ( +/obj/effect/landmark/crap_item, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "sIh" = ( /obj/effect/landmark/nightmare{ insert_tag = "lambda-cave-extratunnel" @@ -38047,33 +38168,55 @@ icon_state = "delivery" }, /area/bigredv2/outside/admin_building) +"sRV" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_lambda) "sSU" = ( /turf/open/mars_cave{ icon_state = "mars_cave_19" }, /area/bigredv2/outside/lz2_south_cas) -"sTf" = ( -/obj/structure/surface/table, -/obj/structure/machinery/computer/shuttle/dropship/flight/lz2{ - dir = 1 +"sSY" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/bed/chair/comfy{ + dir = 4 }, /turf/open/floor{ - icon_state = "asteroidwarning" + icon_state = "wood" }, -/area/bigredv2/landing/console2) +/area/bigredv2/outside/library) "sUQ" = ( /obj/structure/machinery/photocopier, /turf/open/floor/wood, /area/bigredv2/caves/lambda/breakroom) -"sVY" = ( +"sVk" = ( +/obj/effect/decal/remains/human, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/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 }, -/obj/item/clothing/under/darkred, /turf/open/floor{ - icon_state = "freezerfloor" + dir = 1; + icon_state = "asteroidfloor" }, -/area/bigredv2/outside/general_offices) +/area/bigredv2/caves_lambda) "sWa" = ( /obj/item/ore{ pixel_x = 12; @@ -38083,6 +38226,17 @@ icon_state = "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{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) "sWS" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor/plating{ @@ -38090,6 +38244,12 @@ icon_state = "platingdmg3" }, /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{ @@ -38145,6 +38305,22 @@ icon_state = "podhatchfloor" }, /area/bigredv2/outside/admin_building) +"taV" = ( +/obj/structure/closet/coffin/woodencrate, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/n) +"tbS" = ( +/obj/structure/morgue{ + dir = 1 + }, +/turf/open/floor{ + icon_state = "whiteblue" + }, +/area/bigredv2/outside/medical) "tcb" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/pizzabox/meat, @@ -38160,15 +38336,6 @@ /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" @@ -38177,6 +38344,12 @@ icon_state = "mars_cave_16" }, /area/bigredv2/caves/mining) +"tdz" = ( +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor{ + icon_state = "grimy" + }, +/area/bigredv2/outside/dorms) "tdB" = ( /obj/structure/tunnel{ id = "hole1" @@ -38254,12 +38427,11 @@ /obj/effect/decal/cleanable/ash, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"tgk" = ( +"tgf" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "floor4" - }, -/area/bigredv2/outside/cargo) +/obj/structure/machinery/vending/snack, +/turf/open/floor, +/area/bigredv2/outside/general_offices) "tgF" = ( /obj/effect/spawner/random/tool, /turf/open/shuttle/escapepod{ @@ -38293,6 +38465,11 @@ icon_state = "freezerfloor" }, /area/bigredv2/outside/engineering) +"tjX" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_7" + }, +/area/bigredv2/outside/n) "tkN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -38301,11 +38478,22 @@ icon_state = "darkpurple2" }, /area/bigredv2/caves/lambda/research) -"tlj" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" +"tkY" = ( +/obj/structure/noticeboard{ + desc = "A board for pinning important items upon."; + dir = 1; + name = "trophy board"; + pixel_y = 30 }, -/area/bigredv2/outside/n) +/obj/item/XenoBio/Chitin{ + anchored = 1; + pixel_y = 27 + }, +/turf/open/floor{ + dir = 1; + icon_state = "elevatorshaft" + }, +/area/bigredv2/caves/lambda/breakroom) "tlP" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, /obj/structure/machinery/light{ @@ -38313,6 +38501,17 @@ }, /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{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "tmH" = ( /obj/structure/closet/crate, /obj/structure/machinery/light{ @@ -38331,11 +38530,12 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves_research) -"tng" = ( +"tnG" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave{ - icon_state = "mars_dirt_4" + icon_state = "mars_cave_2" }, -/area/bigredv2/caves_lambda) +/area/bigredv2/outside/n) "toA" = ( /obj/effect/decal/cleanable/dirt, /obj/item/prop/alien/hugger, @@ -38352,11 +38552,25 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"tpU" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/portable_atmospherics/hydroponics, +/turf/open/floor{ + icon_state = "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" }, /area/bigredv2/caves/mining) +"tqS" = ( +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/caves_north) "trk" = ( /turf/open/mars_cave{ icon_state = "mars_cave_13" @@ -38463,22 +38677,6 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"twS" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/lz2_cave) -"tyH" = ( -/obj/item/stack/sheet/wood, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, -/area/bigredv2/caves_north) "tzJ" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Engine Reactor Control" @@ -38573,11 +38771,6 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) -"tCQ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, -/area/bigredv2/caves_lambda) "tDk" = ( /obj/structure/machinery/light/double{ dir = 1 @@ -38603,6 +38796,13 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves_research) +"tFt" = ( +/obj/structure/surface/table, +/obj/structure/machinery/light, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/general_offices) "tFO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -38611,17 +38811,21 @@ icon_state = "delivery" }, /area/bigredv2/caves/lambda/breakroom) -"tGJ" = ( -/turf/open/floor{ - icon_state = "podhatchfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) "tHl" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/mars{ icon_state = "mars_dirt_10" }, /area/bigredv2/outside/c) +"tHB" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/c) "tIq" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/mars_cave{ @@ -38664,12 +38868,6 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) -"tJH" = ( -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) "tKr" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/chair{ @@ -38698,12 +38896,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"tKE" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/ne) "tKR" = ( /turf/open/floor{ icon_state = "delivery" @@ -38714,6 +38906,23 @@ icon_state = "mars_cave_14" }, /area/bigredv2/caves_north) +"tLO" = ( +/obj/structure/machinery/computer/med_data{ + density = 0; + pixel_y = 16 + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/bigredv2/outside/medical) +"tMa" = ( +/obj/structure/surface/table, +/obj/effect/spawner/random/technology_scanner, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/space_port_lz2) "tNz" = ( /obj/effect/decal/warning_stripes{ icon_state = "E-corner" @@ -38729,13 +38938,15 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) -"tPr" = ( -/obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" +"tQg" = ( +/obj/structure/cargo_container/horizontal/blue/bottom, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) +"tQj" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_20" }, -/area/bigredv2/outside/ne) +/area/bigredv2/caves_lambda) "tQo" = ( /obj/effect/decal/cleanable/dirt, /obj/item/ore/uranium{ @@ -38753,17 +38964,6 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_lambda) -"tQY" = ( -/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{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/caves_north) "tRd" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "A pipe."; @@ -38822,12 +39022,15 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"tVm" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" +"tUY" = ( +/obj/structure/machinery/light{ + dir = 4 }, -/area/bigredv2/caves_lambda) +/turf/open/floor{ + dir = 8; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) "tVn" = ( /obj/item/tool/lighter/zippo, /turf/open/floor, @@ -38845,6 +39048,12 @@ icon_state = "mars_cave_15" }, /area/bigredv2/caves/mining) +"tWf" = ( +/obj/structure/cargo_container/arious/leftmid, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/space_port_lz2) "tWS" = ( /obj/effect/landmark/item_pool_spawner/survivor_ammo, /turf/open/mars_cave{ @@ -38883,6 +39092,10 @@ icon_state = "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) @@ -38891,15 +39104,6 @@ icon_state = "mars_cave_4" }, /area/bigredv2/caves_se) -"uey" = ( -/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) "ueL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/window/framed/solaris, @@ -38907,10 +39111,11 @@ icon_state = "panelscorched" }, /area/bigredv2/outside/engineering) -"ueW" = ( -/obj/structure/closet/crate/trashcart, +"ufc" = ( +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - icon_state = "asteroidplating" + dir = 4; + icon_state = "asteroidwarning" }, /area/bigredv2/outside/space_port_lz2) "ufu" = ( @@ -38928,10 +39133,9 @@ icon_state = "darkgreencorners2" }, /area/bigredv2/caves/eta/research) -"ufD" = ( +"ugc" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/surface/table, -/obj/effect/spawner/random/tool, +/obj/structure/largecrate/random/barrel, /turf/open/floor, /area/bigredv2/outside/cargo) "ugW" = ( @@ -38956,6 +39160,13 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"ujq" = ( +/obj/structure/bed/roller, +/turf/open/floor{ + dir = 9; + icon_state = "whitegreen" + }, +/area/bigredv2/outside/medical) "ujC" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -38984,6 +39195,16 @@ icon_state = "floor5" }, /area/bigredv2/oob) +"ukv" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_15" + }, +/area/bigredv2/caves_lambda) +"ukW" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_20" + }, +/area/bigredv2/outside/ne) "ulk" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "A heavy duty power cable for high voltage applications"; @@ -39002,6 +39223,20 @@ /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{ + icon_state = "white" + }, +/area/bigredv2/outside/medical) "umK" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -8; @@ -39019,6 +39254,10 @@ icon_state = "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{ @@ -39058,32 +39297,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"usF" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/barricade/handrail{ - dir = 8 - }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/c) "usG" = ( /turf/open/mars_cave{ icon_state = "mars_cave_18" }, /area/bigredv2/caves_east) -"utg" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" - }, -/area/bigredv2/outside/sw) -"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" @@ -39111,10 +39329,24 @@ icon_state = "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) +"uyd" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/lz2_cave) "uyk" = ( /turf/open/mars_cave{ icon_state = "mars_cave_7" @@ -39143,6 +39375,10 @@ icon_state = "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{ @@ -39150,12 +39386,6 @@ icon_state = "platingdmg3" }, /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{ @@ -39163,6 +39393,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{ + dir = 1; + icon_state = "whitegreen" + }, +/area/bigredv2/outside/medical) "uDA" = ( /obj/item/stack/sheet/glass, /turf/open/floor{ @@ -39232,13 +39472,6 @@ icon_state = "darkredcorners2" }, /area/bigredv2/caves/eta/xenobiology) -"uHx" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/hydroponics) "uHE" = ( /obj/item/tool/warning_cone{ pixel_y = 19 @@ -39259,6 +39492,13 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"uIz" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 6; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "uIB" = ( /obj/effect/vehicle_spawner/van/decrepit, /obj/effect/decal/cleanable/blood/oil, @@ -39349,10 +39589,6 @@ icon_state = "bcircuitoff" }, /area/bigredv2/caves/lambda/research) -"uQY" = ( -/obj/effect/decal/cleanable/dirt, -/turf/closed/wall/solaris/reinforced, -/area/bigredv2/outside/general_offices) "uRE" = ( /obj/effect/landmark/nightmare{ insert_tag = "medbay-passage" @@ -39364,17 +39600,6 @@ icon_state = "floor1" }, /area/bigredv2/oob) -"uSp" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_x = -1; - pixel_y = 1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/c) "uSt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 @@ -39388,6 +39613,15 @@ icon_state = "mars_dirt_10" }, /area/bigredv2/outside/space_port_lz2) +"uST" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony{ + dir = 1; + name = "\improper Medical Clinic Power Station" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/medical) "uTO" = ( /obj/structure/machinery/pipedispenser, /turf/open/floor{ @@ -39405,6 +39639,13 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_cave_cas) +"uVi" = ( +/obj/structure/surface/table, +/obj/item/clothing/under/lightbrown, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/general_offices) "uVn" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave{ @@ -39418,13 +39659,6 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/living) -"uXO" = ( -/obj/structure/sink{ - dir = 1; - pixel_y = -9 - }, -/turf/open/floor, -/area/bigredv2/outside/hydroponics) "uXW" = ( /turf/open/mars_cave{ icon_state = "mars_cave_8" @@ -39448,14 +39682,6 @@ icon_state = "darkyellow2" }, /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" @@ -39508,6 +39734,16 @@ "vex" = ( /turf/closed/wall/wood, /area/bigredv2/outside/lz2_south_cas) +"vfo" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 9; + pixel_y = -3 + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/bigredv2/outside/medical) "vfI" = ( /turf/open/mars{ icon_state = "mars_dirt_13" @@ -39520,6 +39756,13 @@ icon_state = "mars_cave_3" }, /area/bigredv2/caves/mining) +"vgE" = ( +/obj/structure/fence, +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) "vgZ" = ( /obj/structure/platform/shiva, /obj/structure/platform/shiva{ @@ -39529,6 +39772,12 @@ icon_state = "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{ @@ -39543,11 +39792,6 @@ icon_state = "dark" }, /area/bigredv2/outside/filtration_plant) -"vis" = ( -/turf/open/mars{ - icon_state = "mars_dirt_8" - }, -/area/bigredv2/outside/ne) "viN" = ( /obj/structure/machinery/door_control{ id = "workshop_br_g"; @@ -39572,6 +39816,25 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/filtration_plant) +"vkf" = ( +/obj/effect/landmark/crap_item, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/ne) +"vkv" = ( +/turf/open/floor{ + dir = 9; + icon_state = "darkyellow2" + }, +/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{ @@ -39681,6 +39944,13 @@ icon_state = "mars_dirt_14" }, /area/bigredv2/outside/eta) +"vsi" = ( +/obj/structure/pipes/vents/pump/on, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/space_port_lz2) "vti" = ( /obj/structure/closet/crate, /obj/effect/landmark/objective_landmark/close, @@ -39708,15 +39978,6 @@ icon_state = "darkblue2" }, /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, @@ -39742,13 +40003,17 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"vwP" = ( -/obj/structure/fence, +"vxv" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 + }, +/obj/structure/surface/table, +/obj/structure/machinery/light, /turf/open/floor{ dir = 1; icon_state = "asteroidfloor" }, -/area/bigredv2/outside/telecomm/n_cave) +/area/bigredv2/outside/n) "vxQ" = ( /obj/item/tool/pickaxe/gold, /turf/open/floor/plating, @@ -39757,12 +40022,6 @@ /obj/structure/largecrate/random/barrel/red, /turf/open/floor/plating, /area/bigredv2/caves/lambda/xenobiology) -"vzk" = ( -/obj/structure/cargo_container/arious/right, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/space_port_lz2) "vzL" = ( /obj/item/weapon/gun/boltaction, /turf/open/floor/plating{ @@ -39774,23 +40033,17 @@ /obj/structure/window/framed/solaris/reinforced/tinted, /turf/open/floor/plating, /area/bigredv2/caves/lambda/xenobiology) -"vAy" = ( -/obj/structure/platform_decoration, -/obj/structure/machinery/power/apc{ - dir = 1; - start_charge = 0 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) "vBy" = ( /obj/item/ammo_magazine/shotgun/beanbag/riot, /turf/open/mars_cave{ icon_state = "mars_cave_17" }, /area/bigredv2/caves_research) +"vBI" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_9" + }, +/area/bigredv2/outside/n) "vBT" = ( /obj/structure/surface/table/reinforced, /obj/structure/transmitter/colony_net/rotary{ @@ -39842,6 +40095,20 @@ icon_state = "mars_dirt_10" }, /area/bigredv2/outside/s) +"vFA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "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{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_lambda) "vFS" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -39849,9 +40116,41 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/living) +"vGE" = ( +/turf/open/floor{ + dir = 6; + icon_state = "asteroidwarning" + }, +/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{ + icon_state = "delivery" + }, +/area/bigredv2/outside/medical) "vHw" = ( /turf/closed/wall/wood, /area/bigredv2/caves/mining) +"vHU" = ( +/obj/effect/landmark/hunter_primary, +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/outside/n) +"vIQ" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/c) "vKv" = ( /turf/open/floor{ dir = 8; @@ -39861,16 +40160,6 @@ "vLd" = ( /turf/open/floor, /area/bigred/ground/garage_workshop) -"vMb" = ( -/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_7" - }, -/area/bigredv2/caves_north) "vMj" = ( /turf/open/mars_cave{ icon_state = "mars_cave_6" @@ -39927,12 +40216,6 @@ icon_state = "white" }, /area/bigredv2/outside/marshal_office) -"vQe" = ( -/obj/structure/machinery/power/apc{ - dir = 1 - }, -/turf/open/floor/plating, -/area/bigredv2/outside/medical) "vQZ" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" @@ -39945,15 +40228,6 @@ /obj/structure/sign/safety/high_voltage, /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/mining) -"vRJ" = ( -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) "vRK" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -39981,6 +40255,28 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"vUw" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/lambda_cave_cas) +"vUy" = ( +/obj/structure/cargo_container/kelland/left, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/space_port_lz2) +"vUN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "vVl" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Dormitories Toilet" @@ -39990,20 +40286,6 @@ icon_state = "platingdmg3" }, /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) -"vVB" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, -/area/bigredv2/caves_lambda) "vVF" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -5; @@ -40030,12 +40312,26 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/nw) +"vXJ" = ( +/turf/open/mars_cave{ + icon_state = "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" }, /area/bigredv2/caves/mining) +"vZh" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/item/clothing/under/darkred, +/turf/open/floor{ + icon_state = "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, @@ -40071,6 +40367,18 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"wbD" = ( +/obj/effect/landmark/crap_item, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/space_port_lz2) +"wbY" = ( +/obj/effect/landmark/hunter_secondary, +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/outside/n) "wcs" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave{ @@ -40164,12 +40472,13 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_cave_cas) -"whv" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" +"whw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/surface/table/woodentable, +/turf/open/floor{ + icon_state = "wood" }, -/area/bigredv2/outside/ne) +/area/bigredv2/outside/library) "whE" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/objective_landmark/close, @@ -40229,16 +40538,39 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"wmN" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "wni" = ( /turf/open/floor{ icon_state = "darkredcorners2" }, /area/bigredv2/caves/eta/xenobiology) +"woe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/space_port_lz2) "wog" = ( /turf/open/mars_cave{ icon_state = "mars_cave_2" }, /area/bigredv2/caves_sw) +"woK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 + }, +/turf/open/floor{ + dir = 6; + icon_state = "red" + }, +/area/bigredv2/outside/marshal_office) "wpf" = ( /turf/open/mars_cave{ icon_state = "mars_cave_19" @@ -40250,17 +40582,6 @@ icon_state = "delivery" }, /area/bigredv2/outside/engineering) -"wpP" = ( -/obj/structure/platform, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) -"wpT" = ( -/obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) "wry" = ( /obj/structure/surface/table, /obj/structure/transmitter/colony_net/rotary{ @@ -40285,6 +40606,15 @@ /obj/structure/plasticflaps, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"wss" = ( +/obj/item/tool/warning_cone{ + pixel_y = 20 + }, +/turf/open/floor{ + dir = 8; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "wtj" = ( /turf/open/floor/plating, /area/bigredv2/caves/mining) @@ -40374,13 +40704,12 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"wzc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/light{ - dir = 1 +"wyP" = ( +/obj/structure/cargo_container/kelland/right, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" }, -/turf/open/floor, -/area/bigredv2/outside/general_offices) +/area/bigredv2/outside/space_port_lz2) "wBi" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -40395,6 +40724,24 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"wBu" = ( +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/c) +"wBK" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "wCo" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_4" @@ -40416,19 +40763,14 @@ icon_state = "mars_cave_17" }, /area/bigredv2/caves/mining) -"wDK" = ( -/obj/structure/platform_decoration{ - dir = 1 - }, -/obj/structure/prop/server_equipment/yutani_server{ - density = 0; - pixel_y = 16 +"wET" = ( +/obj/structure/machinery/light{ + dir = 8 }, /turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" + icon_state = "wood" }, -/area/bigredv2/outside/telecomm/n_cave) +/area/bigredv2/outside/library) "wFL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sign/safety/hazard{ @@ -40479,15 +40821,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/se) -"wGP" = ( -/obj/structure/morgue{ - dir = 1 - }, -/turf/open/floor{ - dir = 10; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) "wGV" = ( /obj/item/tool/wrench, /turf/open/floor{ @@ -40495,6 +40828,12 @@ icon_state = "asteroidwarning" }, /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"; @@ -40505,6 +40844,27 @@ icon_state = "darkredcorners2" }, /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{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) +"wIj" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/e) "wIw" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -40530,15 +40890,15 @@ icon_state = "mars_cave_17" }, /area/bigredv2/outside/lz1_north_cas) -"wLg" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/solid{ - dir = 1; - name = "\improper Dormitories Restroom" +"wKA" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - icon_state = "delivery" + icon_state = "wood" }, -/area/bigredv2/outside/dorms) +/area/bigredv2/outside/library) "wLD" = ( /obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/plating{ @@ -40586,21 +40946,19 @@ /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{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_lambda) "wPk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -40621,28 +40979,17 @@ icon_state = "mars_cave_16" }, /area/bigredv2/caves/mining) -"wQu" = ( -/obj/structure/surface/table/reinforced, -/obj/item/book/manual/research_and_development, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurple" - }, -/area/bigredv2/caves/lambda/xenobiology) "wQC" = ( /turf/open/mars_cave{ icon_state = "mars_cave_7" }, /area/bigredv2/caves_lambda) -"wQD" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" +"wRl" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "admin_pmc" }, -/area/bigredv2/outside/office_complex) +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/admin_building) "wRH" = ( /obj/effect/decal/cleanable/dirt, /obj/item/device/flashlight, @@ -40698,6 +41045,11 @@ icon_state = "mars_cave_17" }, /area/bigredv2/caves/mining) +"wWE" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_19" + }, +/area/bigredv2/outside/n) "wWK" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/mars_cave{ @@ -40717,6 +41069,11 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/outside/lz1_north_cas) +"wXv" = ( +/turf/open/mars{ + icon_state = "mars_dirt_14" + }, +/area/bigredv2/outside/space_port_lz2) "wXz" = ( /turf/open/floor/plating, /area/bigredv2/caves/eta/research) @@ -40738,19 +41095,33 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"wZv" = ( +/obj/structure/machinery/light, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/c) "wZC" = ( /turf/open/mars{ icon_state = "mars_dirt_11" }, /area/bigredv2/outside/eta) -"xah" = ( -/obj/structure/largecrate/supply/supplies, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ +"wZP" = ( +/obj/structure/cargo_container/arious/rightmid, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/space_port_lz2) +"xaE" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; - icon_state = "asteroidfloor" + name = "\improper Lambda Checkpoint" }, -/area/bigredv2/outside/n) +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/lambda_cave_cas) "xaH" = ( /turf/closed/wall/wood, /area/bigredv2/caves_sw) @@ -40780,6 +41151,17 @@ icon_state = "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{ + dir = 4; + icon_state = "warnplate" + }, +/area/bigredv2/outside/telecomm/warehouse) "xej" = ( /obj/effect/decal/warning_stripes{ icon_state = "S"; @@ -40795,11 +41177,6 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/outside/filtration_plant) -"xeV" = ( -/obj/structure/surface/table, -/obj/effect/spawner/random/bomb_supply, -/turf/open/floor, -/area/bigredv2/outside/cargo) "xfx" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "A heavy duty power cable for high voltage applications"; @@ -40845,6 +41222,12 @@ icon_state = "mars_cave_3" }, /area/bigredv2/caves/mining) +"xgm" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/ne) "xgw" = ( /turf/open/mars_cave{ icon_state = "mars_cave_9" @@ -40874,6 +41257,10 @@ icon_state = "platingdmg3" }, /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" @@ -40955,15 +41342,6 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"xrN" = ( -/obj/structure/machinery/washing_machine, -/obj/structure/machinery/washing_machine{ - pixel_y = 13 - }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) "xrO" = ( /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..."; @@ -40979,6 +41357,14 @@ icon_state = "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, @@ -41061,15 +41447,6 @@ icon_state = "vault" }, /area/bigredv2/outside/marshal_office) -"xyw" = ( -/obj/structure/platform{ - dir = 1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) "xyz" = ( /obj/structure/girder, /obj/effect/decal/cleanable/dirt, @@ -41078,6 +41455,12 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"xzb" = ( +/obj/structure/surface/rack, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/general_offices) "xzi" = ( /obj/effect/decal/remains/xeno, /turf/open/floor/plating{ @@ -41152,22 +41535,6 @@ "xFZ" = ( /turf/open/mars_cave, /area/bigredv2/caves_lambda) -"xGT" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor{ - icon_state = "asteroidplating" - }, -/area/bigredv2/outside/space_port_lz2) -"xHQ" = ( -/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{ - icon_state = "mars_cave_15" - }, -/area/bigredv2/caves_north) "xIo" = ( /obj/structure/window/framed/solaris/reinforced/hull, /turf/open/floor/plating{ @@ -41226,6 +41593,15 @@ /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{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port) "xLM" = ( /obj/structure/machinery/light{ dir = 1 @@ -41273,6 +41649,12 @@ icon_state = "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{ @@ -41284,6 +41666,14 @@ /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{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/n) "xRl" = ( /obj/item/weapon/gun/pistol/b92fs{ pixel_x = 13; @@ -41293,16 +41683,38 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"xRn" = ( +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/caves_north) "xSa" = ( /obj/structure/prop/dam/crane, /turf/open/mars_cave{ icon_state = "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{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/lambda_cave_cas) "xUo" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -41316,6 +41728,16 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"xWl" = ( +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "lambda"; + name = "Lambda Lockdown" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/caves_north) "xWm" = ( /turf/open/floor{ icon_state = "whitepurplefull" @@ -41337,6 +41759,14 @@ }, /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{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/caves_lambda) "xWz" = ( /obj/effect/decal/cleanable/dirt{ pixel_x = 17 @@ -41354,12 +41784,16 @@ icon_state = "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/outside/n) +/turf/open/floor/plating{ + dir = 8; + icon_state = "warnplate" + }, +/area/bigredv2/outside/telecomm/warehouse) "xWV" = ( /obj/structure/machinery/power/apc{ dir = 1 @@ -41397,6 +41831,11 @@ icon_state = "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"; @@ -41427,6 +41866,9 @@ icon_state = "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; @@ -41487,12 +41929,15 @@ icon_state = "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{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) "yfs" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -41522,6 +41967,16 @@ icon_state = "platingdmg3" }, /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{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/general_offices) "ygP" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -41551,6 +42006,18 @@ icon_state = "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{ + icon_state = "darkish" + }, +/area/bigredv2/caves/lambda/breakroom) "yhN" = ( /obj/effect/decal/cleanable/blood{ layer = 3 @@ -43625,7 +44092,7 @@ aao aao aao aao -jcn +rNs aao aao xmy @@ -44956,7 +45423,7 @@ aao aao aao aao -qTu +lFR aao aao aao @@ -46067,11 +46534,11 @@ aao aao aao ayf -wpT +bcW cVY ayf cVY -bhD +uBP ayf cVY cVY @@ -46288,10 +46755,10 @@ cVY cVY cVY cVY -bio -bkk -brG -jvt +ucl +gQj +dCU +tQg cVY cVY bjN @@ -46505,7 +46972,7 @@ ayf cVY cVY cVY -bjP +xjU cVY cVY cVY @@ -46718,10 +47185,10 @@ aao aao aao ayf -bee +qsd cVY cVY -bhe +nbu cVY cVY cVY @@ -46935,7 +47402,7 @@ aao aao aao ayf -bew +mkt cVY cVY hpg @@ -46954,7 +47421,7 @@ ayf bsa ayf ayf -qap +qcQ tVp fFO cVY @@ -47143,8 +47610,8 @@ aXw aXw aZl aoD -pIh -pIh +bRV +bRV aoD aoD aoD @@ -47181,7 +47648,7 @@ vKv vKv vKv vKv -btv +jlS tVp ayf ayf @@ -47342,7 +47809,7 @@ aIb lQU aFt aFu -idO +qVw aoD aNg aNc @@ -47398,7 +47865,7 @@ eWd eWd eWd eWd -brd +dAX tVp tVp ayf @@ -47615,8 +48082,8 @@ bjn bid bsa eWd -brd -kED +dAX +vUy tVp ayf aao @@ -47832,8 +48299,8 @@ bje bie bsb eWd -brd -sBF +dAX +wyP tVp ayf aao @@ -48020,7 +48487,7 @@ aoD aao aao ayf -beS +tpY cVY uSC tVp @@ -48049,7 +48516,7 @@ bie bie bsc eWd -brd +dAX tVp tVp ayf @@ -48266,7 +48733,7 @@ bie bie bsd eWd -brd +dAX tVp tVp ayf @@ -48456,7 +48923,7 @@ aao ayf ayf cVY -bgq +wXv tVp bgX bhx @@ -48483,7 +48950,7 @@ bie bie bse eWd -brd +dAX tVp tVp ayf @@ -48700,7 +49167,7 @@ bie bie bsb eWd -brd +dAX tVp tVp ayf @@ -48832,7 +49299,7 @@ ajx aoN ajx vXp -pdN +oVq aeI aeI aeI @@ -48870,7 +49337,7 @@ aoD aoD aoD aoD -eUT +maB aoD aoD aoD @@ -48917,7 +49384,7 @@ bie bie bsc eWd -brd +dAX tVp tVp ayf @@ -49030,7 +49497,7 @@ acw acw aam aam -vvi +xLz aam aam aam @@ -49102,7 +49569,7 @@ aSB aoD aSB aSB -azR +rZn aSB tVp mMf @@ -49134,7 +49601,7 @@ bie bie bsd eWd -brd +dAX tVp tVp ayf @@ -49351,7 +49818,7 @@ bie bie bse eWd -brd +dAX tVp tVp ayf @@ -49538,8 +50005,8 @@ aWk aVI aWk aWk -bcp -bcp +iHe +iHe vKv vKv vKv @@ -49568,7 +50035,7 @@ bie bjo bsb eWd -brd +dAX tVp tVp ayf @@ -49718,7 +50185,7 @@ axv anp anp anp -anp +gri ajx ajY akK @@ -49756,7 +50223,7 @@ bdZ bdZ bdZ bmN -bfW +ufc bmN bmN bmN @@ -49785,7 +50252,7 @@ bie bie bsc eWd -brd +dAX tVp tVp ayf @@ -49972,7 +50439,7 @@ bdZ bdZ bdZ beu -bcr +woe tVp tVp tVp @@ -50002,9 +50469,9 @@ bje bie bsd eWd -brd +dAX tVp -mJH +tWf ayf aao aao @@ -50096,7 +50563,7 @@ wcs aae aae aae -aLh +wHg aah aah aaU @@ -50144,9 +50611,9 @@ ahR aln ajy bFw -bjj -bjj -jtX +xWR +xWR +iTN axZ avT azo @@ -50189,9 +50656,9 @@ bdZ aUQ bdZ bev -bcr +woe tVp -bfT +wbD tVp tVp bgX @@ -50219,9 +50686,9 @@ brb bpu bsa eWd -brd +dAX tVp -dwg +wZP ayf aao aao @@ -50361,9 +50828,9 @@ akK aln ajy bFw -kRo -joi -bjX +hyC +iNE +pPh axZ avT avT @@ -50396,7 +50863,7 @@ asj aoH aoH asK -aXJ +jUd asK beQ aYF @@ -50406,7 +50873,7 @@ bdZ aUQ bdZ bev -bcr +woe tVp tVp tVp @@ -50436,9 +50903,9 @@ eWd eWd eWd eWd -brd +dAX tVp -vzk +shK ayf aao aao @@ -50578,9 +51045,9 @@ ahR aln ajy bFw -kRo -kRo -bjX +hyC +hyC +pPh axZ avT avT @@ -50629,7 +51096,7 @@ aao tVp tVp bgX -boD +sbm kHK kHK bmN @@ -50653,7 +51120,7 @@ eWd bmN bmN bmN -tJH +vGE tVp ayf ayf @@ -50795,9 +51262,9 @@ atm aln ajy bFw -rhx -bjv -bqg +ccI +xcz +dws aya avT azo @@ -50846,29 +51313,29 @@ aao aao tVp bgX -boD +sbm eWd -brd -oEJ -xGT -svp +dAX +kOv +qNH +mDt bgX eWd -qlT +cpQ ayf ayf bsa ayf ayf -qap +qcQ tVp tVp tVp bgX eWd -brd +dAX tVp -qap +qcQ tVp tVp tVp @@ -51059,7 +51526,7 @@ bdZ bev tVp tVp -bfU +jDo tVp tVp bgX @@ -51071,7 +51538,7 @@ vKv vKv eWd eWd -sTf +qNU ayf ayf ayf @@ -51079,17 +51546,17 @@ ayf ayf tVp tVp -qap +qcQ tVp bgX eWd -brd +dAX tVp tVp tVp tVp tVp -qap +qcQ aao aao aao @@ -51288,26 +51755,26 @@ bmN bmN eWd eWd -aLn +gpA ayf aFc aFc aFc ayf -jfn -jfn +quX +quX axX tVp bgX eWd -brd +dAX tVp tVp tVp tVp tVp tVp -oip +fsY lzI aao aao @@ -51496,22 +51963,22 @@ tVp tVp tVp tVp -bhc -bpv -cwk -brd -svp -ueW -oEJ +mAY +vsi +dIH +dAX +mDt +jrN +kOv bgX eWd -blb -bjQ +lTV +gWD aFc aFc bsI azb -rVx +vkv kVT azb vKv @@ -51702,28 +52169,28 @@ aXH asK bdZ aWk -beR +swk aUQ aUQ aUQ aUQ bdZ -bcs +tUY vKv vKv vKv vKv -bhd +dVp kHK -bik +crl kHK vKv vKv vKv eWd eWd -pGS -bjQ +okt +gWD aFc aFc bsI @@ -51776,7 +52243,7 @@ aao aao aao aao -ers +lOY aao uHQ oRK @@ -51923,7 +52390,7 @@ asK aUQ bdZ bdZ -beb +iCu bdZ asK eWd @@ -51932,15 +52399,15 @@ eWd asK eWd eWd -bik +crl kHK -bjt -bjt -bjQ +tMa +tMa +gWD eWd eWd -blc -bjQ +ice +gWD aFc aFc bsI @@ -52157,10 +52624,10 @@ asK asK bkz asK -lMt +xOk aFc -crO -mWJ +ftY +kcH azb hhK sCt @@ -52364,19 +52831,19 @@ aZu aZu aZu asK -kTC +kjH beT baz aZu bbM -gQP +rYS asK aZw aZu bld asK -crO -mWJ +ftY +kcH bme azb hhK @@ -52570,22 +53037,22 @@ aXH asK baz aZu -aEV +cRb aZu aZu aZu aZu aZu -bdf +hah bfy bfV -bgC +bgq atA -xeV -bqe -heU -bqe -bqe +gMC +bhb +bik +bhb +bhb aZu asK aZu @@ -52799,10 +53266,10 @@ aZO aZu atA bkn -bqe +bhb bfB bgD -bjh +eYK bbe bjR bbe @@ -52825,7 +53292,7 @@ rzb bsK axX bme -utg +nra aao glB xpb @@ -52933,7 +53400,7 @@ aae aae aae aae -lMB +nZd aae aae aaq @@ -53011,16 +53478,16 @@ bdK aZM aZu beU -bfA +hVP bgE baF asK aZu -bqe -heU -bqe -tgk -aDo +bhb +bik +bhb +bhD +ugc atA bkl aZO @@ -53041,7 +53508,7 @@ tTI rzb bsL azb -utg +nra bpx aao euF @@ -53236,8 +53703,8 @@ bbe bhE bbR biK -ufD -mhx +vkF +fVt atA bkl aZu @@ -53447,7 +53914,7 @@ aZu beU bfC bfX -bhb +bhe asK asK asK @@ -53460,8 +53927,8 @@ aLl aZu blh asK -crO -jmY +ftY +fbf bme axX azB @@ -54092,7 +54559,7 @@ bbg auk asK asK -bax +bee aZu bex bbe @@ -54309,7 +54776,7 @@ aZO baz bcy asK -bax +bee aZu baz beU @@ -54518,7 +54985,7 @@ aWB aoH aXH aXH -bfg +mOc aZu aZO aZO @@ -54528,7 +54995,7 @@ bcz asK bdM aZu -bey +eRe aZu aZu aZu @@ -54795,7 +55262,7 @@ wog wog wog aao -uCD +bRC aao aao aao @@ -55203,7 +55670,7 @@ bnr bok bnr bpi -kVT +mfQ ayr nPz nVq @@ -55318,8 +55785,8 @@ aao aao aao aao -lVm -dlr +dQR +dXK asc acp adi @@ -55344,13 +55811,13 @@ ahP aog aoR alu -aqv +atq aqw aqw aqw -atp +hbx amj -auJ +ujq avw awb awP @@ -55534,8 +56001,8 @@ aao aao aao aao -dlr -dtX +dXK +hQO aqL asc acp @@ -55561,13 +56028,13 @@ ahP ahP ajz alD -aqv +atq aqw arR arR -atq +ark amj -rZi +kXV aqw awc awQ @@ -55750,9 +56217,9 @@ aao aao aao aao -acc +kfx aqL -ann +nnz aqL asc acp @@ -55778,11 +56245,11 @@ ahP ahP ajz alD -aqv +atq aqw arR asC -atq +ark amj auK aqw @@ -55818,7 +56285,7 @@ aOB aVO aoH asK -aXJ +jUd asK asK aZu @@ -55966,8 +56433,8 @@ aao aao aao aao -lVm -acc +dQR +kfx aqL aqL aqL @@ -56182,9 +56649,9 @@ pXu aao aao aao -lVm -lVm -dtX +dQR +dQR +hQO aqL agq ahe @@ -56397,9 +56864,9 @@ pXu pXu pXu rgp -lVm -dlr -lVm +dQR +dXK +dQR agq ahe ahe @@ -56470,7 +56937,7 @@ aVP aoH aHF aHF -aYf +wZv asK aZw aZu @@ -56503,7 +56970,7 @@ bmV ayr bnV tTI -cKu +eYy ayZ bpF slG @@ -56613,10 +57080,10 @@ wXg wKx pXu pXu -awx -dtX +tnG +hQO aqL -avK +lOL asc acp acp @@ -56645,12 +57112,12 @@ ana acp acp acp -qKx -aqy -ark -arV -ark -ark +sXd +ume +aqv +bOZ +aqv +aqv amj auL avx @@ -56720,7 +57187,7 @@ ayr ayr xAX tTI -cKu +eYy ayZ nPz tTI @@ -56830,15 +57297,15 @@ wXg wKx pXu pXu -axm +hgO aqL -ann +nnz aqL asc acp acy -acE -acE +cGc +cGc acC acU acC @@ -57045,10 +57512,10 @@ aao wXg wXg wKx -lVm -acc -azF -buP +dQR +kfx +idn +gdK aqL aqL asc @@ -57073,7 +57540,7 @@ aiZ afS afS afS -aAd +alp ame ahj anx @@ -57260,14 +57727,14 @@ aao aao aao aao -ajD -lVm -lVm -lVm -azF -ann +nlB +dQR +dQR +dQR +idn +nnz aqL -aac +wWE asc acr acz @@ -57289,7 +57756,7 @@ acp aja ajC ake -alp +rat acr ame ahj @@ -57297,7 +57764,7 @@ aer afS aoT acp -arn +tLO arm aip asE @@ -57477,14 +57944,14 @@ aao aao aao aao -lVm -lVm -lVm -lVm -brc +dQR +dQR +dQR +dQR +hFV aqL aqL -heI +lbh asc acs acz @@ -57514,7 +57981,7 @@ acp acp acp acp -aqB +efK arl aiY asF @@ -57604,9 +58071,9 @@ duA ykR iaC pWs -vVz -vVz -vVz +lCt +lCt +lCt jxA duA ykR @@ -57694,14 +58161,14 @@ aao aao aao aao -lVm -lVm -lVm -lVm -awx -ajD -ajD -lVm +dQR +dQR +dQR +dQR +tnG +nlB +nlB +dQR asc acq acz @@ -57720,10 +58187,10 @@ agz ahm ahj acp -aZp -bhH -akf -bhN +jWR +cGi +kCR +aWj biA ame ahj @@ -57913,12 +58380,12 @@ aao aao aao aao -lVm -lVm -awx -lVm -lVm -lVm +dQR +dQR +tnG +dQR +dQR +dQR asc acq acz @@ -57937,10 +58404,10 @@ agz ahm aie acp -aZq +eFr aiX -akg -akN +qQl +iis afS ame ahj @@ -57948,11 +58415,11 @@ anx afS akM acp -aEB -asG -asG -asG -ats +eKm +rbV +rbV +rbV +vxv alu auN aqw @@ -57988,7 +58455,7 @@ apC apC apC apJ -duI +lrs apJ apC apC @@ -57998,7 +58465,7 @@ apC apC apC apC -nGt +wRl aHF aHD aBR @@ -58133,9 +58600,9 @@ aao aao aao aao -lVm -lVm -acc +dQR +dQR +kfx asc acp acz @@ -58154,10 +58621,10 @@ agz ahn ahj acp -aZq +eFr aiX aiX -akN +iis afS amg ahj @@ -58166,11 +58633,11 @@ afS aoT acp aqM -buP -buP +gdK +gdK aqL -att -atW +yej +vGN atr atr arU @@ -58201,7 +58668,7 @@ aQV aRT aof aTV -mGS +mIc tap aof aNK @@ -58350,9 +58817,9 @@ aao aao aao aao -lVm -abU -acc +dQR +elh +kfx asc acq acz @@ -58371,10 +58838,10 @@ agz ahn aic acp -aZP -bhM -bhM -akO +jTa +raU +raU +woK afS amg aic @@ -58383,7 +58850,7 @@ acp acp acp aqM -buP +gdK aqL aqL asc @@ -58472,9 +58939,9 @@ duA ykR iaC pWs -vVz -vVz -vVz +lCt +lCt +lCt jxA duA ykR @@ -58567,14 +59034,14 @@ aao aao aao aao -abY -lVm -acc +tjX +dQR +kfx asc acp acy -acE -acE +cGc +cGc acC acC adp @@ -58783,10 +59250,10 @@ aao aao aao aao -buP -avK -lVm -mWI +gdK +lOL +dQR +iXx asc acp acp @@ -58822,7 +59289,7 @@ aqL aqL asc alD -aqF +uDt arR arR aqw @@ -59002,8 +59469,8 @@ aao aao aqL aqL -heI -lVm +lbh +dQR ags alF alF @@ -59039,7 +59506,7 @@ aqL aqL asc alD -auO +rfX avy aqw avy @@ -59219,9 +59686,9 @@ aao aao aqL aqL -heI -lVm -acc +lbh +dQR +kfx aqL arp acP @@ -59254,12 +59721,12 @@ aqM aqL aqL aqL -atu +hGv alu alu -aYe -awj -aYe +pzC +fni +pzC alu alu ayR @@ -59308,9 +59775,9 @@ aBR tHl bhi dbi -lSL -lSL -qyq +oWk +oWk +fTg aHD aIn bjD @@ -59436,9 +59903,9 @@ aao aqL aqL aqL -heI -lVm -tlj +lbh +dQR +bGC aqL arp acP @@ -59471,13 +59938,13 @@ aqM aqL aqL aqL -aqE +cBq alu -atv +pIl avz aqw auP -wGP +qoQ alu ayS azv @@ -59525,9 +59992,9 @@ aBR bhi bhi dbi -nHb -lAK -bYp +qby +stZ +cHz aHD eRI ofX @@ -59650,15 +60117,15 @@ aao aao aao aqL -ann +nnz aqL -abL -lVm -dlr -dtX +rVE +dQR +dXK +hQO aqL arp -dwe +ldD acP acP acP @@ -59690,11 +60157,11 @@ aqL aqL asc alu -auR +oji avA aqw awW -axD +tbS alu ayT awi @@ -59742,9 +60209,9 @@ aBR bhi bhi dbi -nHb -nHb -twS +qby +qby +kWW aHF mSn bjE @@ -59868,16 +60335,16 @@ aao aao aqL aqL -aac -lVm -igi -oOt -oOt -eIB -kos -oOt -oOt -stJ +wWE +dQR +eWv +fPe +fPe +wss +akP +fPe +fPe +aus acP acP acP @@ -59907,11 +60374,11 @@ aqL aqL asc alu -auR +oji avA aqw awW -axD +tbS alu ayU aqw @@ -59959,9 +60426,9 @@ aBR eTj bhi dbi -mdU -lRu -uSp +pTo +uyd +gMj aHF aMg bjF @@ -60083,22 +60550,22 @@ aao aao aao aao -aac -ajD -lVm -lVm -isr +wWE +nlB +dQR +dQR +nZB pRP -vwP -pEp -iXL -qez +iRf +akh +mhV +oMf pRP -gKG +aWy acP acP acP -chy +jeO asc acp afn @@ -60124,11 +60591,11 @@ aqL aqL asc alu -auS +gts avA aqw awW -axD +tbS alu alu azH @@ -60300,22 +60767,22 @@ aao aao aao aao -abY -lVm -lVm -dlr -iRf +tjX +dQR +dQR +dXK +aaB pRP -vAy -qNT -qNT -saH -qez -gKG +sWh +hFv +hFv +kAs +oMf +aWy acP acP acP -eVZ +bJQ aao acp afo @@ -60341,13 +60808,13 @@ aqL aqL asc alu -auR +oji avA -laX +vfo awW -axD +tbS alu -vQe +kRy ayV ayV alu @@ -60517,21 +60984,21 @@ aao aao aao aao -acG -lVm -acc -dNH +qMS +dQR +kfx +fsT +aaB +oMf +dkY +qDZ +hJH +lqp iRf -qez -wpP -tGJ -rmk -jWa -vwP -gKG +aWy acP acP -chy +jeO aqL aao acp @@ -60556,15 +61023,15 @@ aqM aqL aqL asa -atu +hGv alu -auT +jRH avB -awm +pOt awX -axE -ccU -ayW +gej +uST +vhw ayV ayV alu @@ -60735,19 +61202,19 @@ aao aao aao aao -abY -acc +tjX +kfx aqL -isr -qez -wpP -tGJ -tGJ -xyw -vwP -gKG +nZB +oMf +dkY +qDZ +qDZ +cnG +iRf +aWy acP -chy +jeO aqL aao aao @@ -60952,17 +61419,17 @@ aao aao aao aao -abY -acc +tjX +kfx aqL -isr +nZB pRP -wDK -vRJ -vRJ -kpd -qez -oSN +iXs +scK +scK +oUY +oMf +wmN acP agq aao @@ -60986,7 +61453,7 @@ anz aoj aoj apH -aqG +kVR aqL arp acP @@ -61169,17 +61636,17 @@ aao aao aao aao -acG -acG -fbF -iRf +qMS +qMS +vBI +aaB pRP -qez -vwP -qez -qez +oMf +iRf +oMf +oMf pRP -oSN +wmN acP asc acp @@ -61348,7 +61815,7 @@ aCe aCe aCe aCe -yfe +gWv aao jrD jrD @@ -61387,16 +61854,16 @@ aao aao aao aao -abY -acc -iZh -szg -szg -kdd -kdd -kdd -szg -cfS +tjX +kfx +cgO +pJt +pJt +gPc +gPc +gPc +pJt +uIz acP asc acp @@ -61605,10 +62072,10 @@ aao aao aao aao -lVm -ajD -ajD -fbF +dQR +nlB +nlB +vBI arp acP acP @@ -61823,9 +62290,9 @@ aao aao aao aao -lVm -lVm -acc +dQR +dQR +kfx arp acP acP @@ -62038,11 +62505,11 @@ aao aao aao aao -abY -lVm -lVm -lVm -dtX +tjX +dQR +dQR +dQR +hQO arp acP acP @@ -62255,13 +62722,13 @@ aao aao aao aao -abY -abN -lVm -dtX +tjX +vHU +dQR +hQO aqL aqL -dzs +lUa acP acP acP @@ -62276,7 +62743,7 @@ acp acp acp acp -aiN +akr adS ajL akq @@ -62472,9 +62939,9 @@ aao aao aao aao -acG -lVm -acc +qMS +dQR +kfx aqL aqL aqL @@ -62496,7 +62963,7 @@ adS ahk adk ajL -akr +aiN acr adS ajL @@ -62690,10 +63157,10 @@ aao aao aao aao -abY -acc +tjX +kfx aqL -ann +nnz aqL arp acP @@ -62781,12 +63248,12 @@ aIn aKt aMc aHF -bhS +tHB aVp aVp aVp aVp -bke +vIQ bku bmF wtC @@ -62907,13 +63374,13 @@ aao aao aao aao -abY -qmY -fbF +tjX +ciG +vBI aqL aqL aqL -dzs +lUa acP acP acP @@ -62932,12 +63399,12 @@ aje ajM adS acr -aly -amv +cLq +lym alx adS -aly -aly +cLq +cLq acr aqK arq @@ -62952,13 +63419,13 @@ ayY axG ayY ayY -joa +kxr asJ asJ aua asJ aDQ -aEL +eYH aws amI aHD @@ -63124,9 +63591,9 @@ aao aao aao aao -abY -abY -acc +tjX +tjX +kfx aqL aqL aqL @@ -63136,7 +63603,7 @@ acP acP asc acq -adX +jAR aeu adc afs @@ -63216,8 +63683,8 @@ aBR aMc aHF aMg -shf -shf +lID +lID aMg aHF aHF @@ -63341,19 +63808,19 @@ aao aao aao aao -abY -abY -dtX +tjX +tjX +hQO aqL aqL aao aqL -dzs +lUa acP acP asc acp -adY +mtM jGn adW adW @@ -63372,7 +63839,7 @@ adS anD alA alA -aAF +sVB aqM aqL ase @@ -63432,11 +63899,11 @@ aIm aBR aMc aHD -rsQ +dPJ gpR gpR -rsQ -jQe +dPJ +nvn bkf awp bkH @@ -63557,9 +64024,9 @@ aao aao aao aao -arv -lVm -dtX +nEH +dQR +hQO aqL aqL aqL @@ -63591,7 +64058,7 @@ adk adS acr aqM -arr +qwm asc amI aty @@ -63648,12 +64115,12 @@ aFM aHC aBR aMc -auX +fHw gpR gpR gpR gpR -pri +wBu aHF awM awM @@ -63713,7 +64180,7 @@ byM ycP rTq aBE -bww +dmO bww bww hkv @@ -63774,8 +64241,8 @@ aao aao aao aao -abY -acc +tjX +kfx aqL aqL aqL @@ -63825,7 +64292,7 @@ amn amn amn cgt -wLg +eqr amn amn amn @@ -63865,12 +64332,12 @@ aHF aHD aBR aMc -auX +fHw gpR gpR gpR gpR -pri +wBu aHF awM bkI @@ -63930,7 +64397,7 @@ aNx bAA bDi aBE -gOf +hHG bBv bww bBN @@ -63991,9 +64458,9 @@ aao aao aao aao -lVm -lVm -fbF +dQR +dQR +vBI aqL aqL aqL @@ -64031,7 +64498,7 @@ amn atz atY amn -azX +pvj asJ awY axH @@ -64040,11 +64507,11 @@ asJ azT amn aBj -aBV +qYB aBk aBk aBj -aFQ +rKy amn aHD aIp @@ -64083,10 +64550,10 @@ aHD aIm aMc aHD -rsQ +dPJ gpR -fpt -rsQ +oOw +dPJ aMc aHF awM @@ -64147,7 +64614,7 @@ ofJ aOP aOP aBE -gOf +hHG bww bww bBO @@ -64207,23 +64674,23 @@ aao aao aao aao -arv -lVm -lVm -lVm -fbF +nEH +dQR +dQR +dQR +vBI aqL -buP +gdK aqL aqL arp acP acP -ilN -qJL -qJL -qJL -ilN +lPg +mtS +mtS +mtS +lPg acP asc acr @@ -64261,7 +64728,7 @@ aBW aCR aBW aEM -cnO +eWB amn aHD aBR @@ -64301,8 +64768,8 @@ aFM aHF aHF aCN -usF -fdC +lRC +bSy aCN aHF aHF @@ -64424,23 +64891,23 @@ aao aao aao aao -avK -lVm -lVm -abX -lVm -ajD -fbF +lOL +dQR +dQR +cPg +dQR +nlB +vBI aqL aqL arp acP acP -dhT -fVm -eiS -xah -nVa +rZU +khK +taV +dVM +rVT acP ags alF @@ -64642,22 +65109,22 @@ aao aao aao aqL -avK -dlr -lVm -lVm -lVm -tlj +lOL +dXK +dQR +dQR +dQR +bGC aqL aqL arp acP acP -dhT -fVm +rZU +khK ahS -xah -nVa +dVM +rVT acP acP acP @@ -64688,14 +65155,14 @@ dJc axK ayp asJ -erf +jph amn aBm -hul +mBc aBk aBk aEN -aFR +ibV amn aHD aBR @@ -64735,8 +65202,8 @@ aIn aMc aHF aMg -shf -shf +lID +lID aMg aHF aHF @@ -64861,20 +65328,20 @@ aao aqL aqL aqL -heI -lVm -lVm -acc +lbh +dQR +dQR +kfx aqL aqL arp acP acP -dhT +rZU ahS ahS -jvh -nVa +qse +rVT acP acP acP @@ -64908,7 +65375,7 @@ asJ azW amn aBn -jku +jOj aBk aBk amn @@ -64951,11 +65418,11 @@ aHD aWJ aMc aHD -rsQ +dPJ gpR gpR -rsQ -jQe +dPJ +nvn aHF awp bkL @@ -65076,12 +65543,12 @@ aao aao aao aqL -buP +gdK aqL -heI -lVm -lVm -dtX +lbh +dQR +dQR +hQO aqL aqL arp @@ -65123,13 +65590,13 @@ awZ ayp asJ aws -gnk +enJ aBo aBW aBk aBk aEN -nGU +ozO amn aHD aBR @@ -65167,12 +65634,12 @@ aMg axW aIp aMc -auX +fHw gpR gpR gpR gpR -pri +wBu aHF awp bkM @@ -65295,20 +65762,20 @@ aao aqL aqL aqL -heI -lVm -acc +lbh +dQR +kfx aqL aqL aqL arp acP acP -dhT +rZU ahS ahS -fVm -nVa +khK +rVT acP acP acP @@ -65340,7 +65807,7 @@ axd asJ asJ azY -aAD +qus aBp aBW aBk @@ -65384,12 +65851,12 @@ aKt aIp aBR aMc -auX +fHw gpR gpR gpR gpR -pri +wBu aHF awp qeK @@ -65401,8 +65868,8 @@ bnH yar box yar -iyd -iyd +nzB +nzB eKU yar yar @@ -65510,22 +65977,22 @@ aao aao aao aao -ann -aac -lVm -lVm -acc +nnz +wWE +dQR +dQR +kfx aqL aqL aqL arp acP acP -dhT +rZU ahS -fVm -eiS -nVa +khK +taV +rVT acP acP acP @@ -65556,14 +66023,14 @@ aua aua awn aua -ooP +ltK amn aBq aBq -shm +szZ aBk aEN -pGN +nOe amn aHF aFM @@ -65602,10 +66069,10 @@ aBR aBR aWW aHD -rsQ +dPJ gpR -fpt -rsQ +oOw +dPJ aMc aHF awp @@ -65636,7 +66103,7 @@ buc buc buc buu -rrl +ejp azO meT meT @@ -65728,21 +66195,21 @@ aao aao aao aqL -heI -lVm -lVm -acc -dNH +lbh +dQR +dQR +kfx +fsT aqL aqL aqL -dzs +lUa acP -dhT -ruF -foj -eyA -nVa +rZU +hDK +xQd +eVM +rVT acP acP acP @@ -65820,8 +66287,8 @@ aBR aMc aHF aCN -usF -fdC +lRC +bSy aCN aHF aHF @@ -65946,20 +66413,20 @@ aao aao aao aao -abY -lVm -dtX +tjX +dQR +hQO aqL aqL aqL aqL arp acP -ilN -mpn -mpn -mpn -ilN +lPg +vgE +vgE +vgE +lPg acP acP acP @@ -65987,7 +66454,7 @@ amn avG awq awq -aCQ +tdz awq axM aws @@ -66163,15 +66630,15 @@ aao aao aao aao -acG -acc +qMS +kfx aqL aqL aqL aao aqL aqL -dzs +lUa acP acP acP @@ -66203,7 +66670,7 @@ atY amn asJ awq -axf +mnv axN ays axN @@ -66381,8 +66848,8 @@ aao aao aao aao -acc -ann +kfx +nnz aqL aao aao @@ -66598,7 +67065,7 @@ aao aao aao aao -acc +kfx aqL aqL aqL @@ -66635,7 +67102,7 @@ amI aty atY amn -azX +pvj awr axg axO @@ -66691,7 +67158,7 @@ aHF aHF aHF asv -wQD +bjJ bgx bkw blX @@ -66815,15 +67282,15 @@ aao aao aao aao -lVm -fbF +dQR +vBI aqL aqL aqL aqL aqL aqL -dzs +lUa acP acP acP @@ -66898,8 +67365,8 @@ bdv bac bcf asv -bff -bfK +lNp +gAX bge bgs bfM @@ -67032,18 +67499,18 @@ aao aao aao aao -lVm -abY -ajD -xWI -ajD -fbF +dQR +tjX +nlB +dOZ +nlB +vBI aqL aqL aqL -iSc -iSc -dzs +bQh +bQh +lUa acP acP acP @@ -67075,11 +67542,11 @@ axh amn amn anJ -aAc +mbz anJ anJ anJ -eRW +fbB amn amn amn @@ -67249,29 +67716,29 @@ aao aao aao aao -lVm -lVm -mWI -lVm -lVm -lVm -fbF +dQR +dQR +iXx +dQR +dQR +dQR +vBI aqL aqL aqL aqL aqL -dzs +lUa acP acP acP acP asc -ilN -gGC -gGC -gGC -gGC +lPg +hHa +hHa +hHa +hHa ahS ahS ahS @@ -67332,7 +67799,7 @@ bdx bdx bdx asv -bfh +bfK bfM bgc bgt @@ -67467,27 +67934,27 @@ aao aao aao aao -lVm -lVm -acG -lVm -lVm -dlr -abU -abU -fbF +dQR +dQR +qMS +dQR +dQR +dXK +elh +elh +vBI aqL aqL aqL -dzs +lUa acP acP acP asc -gGC -ruF -ruF -fVm +hHa +hDK +hDK +khK ahS ahS ahS @@ -67509,8 +67976,8 @@ apc apc ars anJ -aAe -aAG +hhX +cYy aCb aCb aCU @@ -67685,14 +68152,14 @@ aao aao aao aao -lVm -lVm -lVm -dtX +dQR +dQR +dQR +hQO aqL -avK -dlr -tlj +lOL +dXK +bGC aqL aqL aqL @@ -67701,12 +68168,12 @@ acP acP acP asc -gGC -eiS -fVm +hHa +taV +khK ahS ahS -fVm +khK ahS ahS aku @@ -67904,26 +68371,26 @@ aao aao aao aao -acc +kfx aqL aqL aqL aqL -heI -fbF +lbh +vBI aqL aqL aqL -dzs +lUa acP acP asc -gGC -foj +hHa +xQd ahS ahS -fVm -fVm +khK +khK ahS ahS ako @@ -68121,34 +68588,34 @@ aao aao aao aao -acc +kfx aqL -buP +gdK aqL aqL -heI -lVm -fbF +lbh +dQR +vBI aqL aqL arp acP acP asc -gGC +hHa ahS ahS ahS -fVm +khK ahS ahS -fVm +khK ako -aor +eNe ape apN ape -art +uVi ako asL atD @@ -68338,18 +68805,18 @@ aao aao aao aao -lVm -fbF +dQR +vBI aqL -dNH +fsT aqL -heI -lVm -tlj +lbh +dQR +bGC aqL aqL aqL -dzs +lUa acP asc ahS @@ -68359,19 +68826,19 @@ ahS ahS ahS ahS -fVm +khK ako -aos +xzb ape apN ape -pBh +pgP ako asM atE apc ako -isk +tgf aop apc axR @@ -68380,7 +68847,7 @@ azc ako aAJ apo -tPr +sqt anJ aEa aER @@ -68555,14 +69022,14 @@ aao aao aao aao -lVm -acc +dQR +kfx aqL aqL -aac -lVm -abX -dtX +wWE +dQR +cPg +hQO aqL aao aqL @@ -68570,25 +69037,25 @@ arp acP asc ahS -fVm -fVm +khK +khK ahS ahS ahS -fVm -eiS +khK +taV ako ape ape -sVY +vZh ape -oOM +ied ako asN atE apc ako -iaq +xXT aop apc ako @@ -68773,39 +69240,39 @@ aao aao aao aao -lVm -ajD -ajD -lVm -lVm -acc -dNH +dQR +nlB +nlB +dQR +dQR +kfx +fsT aqL aao aao aqL -dzs +lUa asc -gGC +hHa ahS -fVm +khK ahS ahS -fVm -foj -foj +khK +xQd +xQd ako ape -apf +mfG apO aqR -aru +tFt ako asO atE apc ako -mcc +hto aop axi ako @@ -68988,14 +69455,14 @@ aao aao aao aao -arv -abU -abU -lVm -lVm -lVm -lVm -dtX +nEH +elh +elh +dQR +dQR +dQR +dQR +hQO aqL aqL aqL @@ -69003,16 +69470,16 @@ aao aqL arp asc -gGC +hHa ahS ahS ahS -xah +dVM aao aao aao ako -xrN +jNE ape eJU aqS @@ -69204,14 +69671,14 @@ aao aao aao aao -dlr -dlr -abW -lVm -lVm -lVm -lVm -acc +dXK +dXK +wbY +dQR +dQR +dQR +dQR +kfx aqL aqL aqL @@ -69220,16 +69687,16 @@ aqL aqL arp asc -gGC -foj -ruF +hHa +xQd +hDK aao aao aao aao aao ako -aot +ygN apg apP ape @@ -69249,7 +69716,7 @@ ako aAK apo apo -aCV +kMk apo apo apo @@ -69421,23 +69888,23 @@ aao aao aao aao -ann +nnz aqL -avK -dlr -lVm -lVm -abW -acc +lOL +dXK +dQR +dQR +wbY +kfx aqL -buP +gdK aqL aqL aqL aqL aqL asc -gGC +hHa aao aao aao @@ -69446,7 +69913,7 @@ aao aao aao ako -xrN +jNE ape apN aqT @@ -69472,7 +69939,7 @@ apo apo apo apo -awy +iOR apo apo apo @@ -69642,10 +70109,10 @@ aqL aqL aqL aqL -avK -lVm -lVm -acc +lOL +dQR +dQR +kfx aqL aqL aao @@ -69860,7 +70327,7 @@ aqL aqL aqL aqL -heI +lbh aad alJ akX @@ -70072,15 +70539,15 @@ aao aao aao aao -buP +gdK aqL -iOL -dNH +dka +fsT aqL hKM aad aad -hdJ +dTi aao aao aao @@ -70116,12 +70583,12 @@ ako ako aAK apo -nIs -aCX -uHx -aES -gAE -aGK +anU +nWG +tpU +jay +aCf +ilH anT aIw msq @@ -70328,12 +70795,12 @@ avI apc axk axS -aBx -aze -aBx +mnY +kwq +mnY aAL -aBx -aCg +mnY +fDf aCY aCZ aET @@ -70508,11 +70975,11 @@ aao aao aao aao -oeT -ptV +cAf +eWE aad aad -qhS +acb abM aao aao @@ -70555,7 +71022,7 @@ aCo aCZ aEU aMQ -uXO +gAE anT aIw aJs @@ -70726,11 +71193,11 @@ aao aao aao aao -bup -tQY -fBU -som -gtG +qQr +oFj +jJO +bVX +fKO aao aao aao @@ -70767,7 +71234,7 @@ arD arD aMk apo -nIs +anU aCZ aCZ aQa @@ -70943,11 +71410,11 @@ aao aao aao aao -vMb -rTr +abY +dtX akX akX -eAG +jSe aao aao aao @@ -70984,12 +71451,12 @@ arD arD aMk apo -nIs -gYM +anU +fXR aCo aEU aCZ -gAE +aCf anT aIy aIC @@ -71159,12 +71626,12 @@ aao aao aao abq -tyH -xHQ -cVT -cVT +iGY +pri +ipo +ipo rYt -cVT +ipo aao aao aao @@ -71201,12 +71668,12 @@ arD arD aMk apo -nIs -gYM +anU +fXR aCo aEW aCZ -gAE +aCf anT aIz aIC @@ -71418,12 +71885,12 @@ arD arD aMk apo -nIs -gYM -aEf +anU +fXR +rNd aEU aCZ -gAE +aCf anT bix aIC @@ -71598,7 +72065,7 @@ aad wMp akX akX -oeT +cAf akX aao aao @@ -71635,12 +72102,12 @@ arD arD aMk apo -nIs -gAE +anU +aCf aCZ aQa aCZ -aGK +ilH anT aIz aIC @@ -72060,7 +72527,7 @@ akL akL akL akL -wzc +cQO apc avJ ako @@ -72068,7 +72535,7 @@ aBu arD arD aMk -nIs +anU aCi aCZ aCZ @@ -72276,16 +72743,16 @@ apU asX aoB auf -uQY -uey -uey -uey +uwV +ant +ant +ant ako aBu arD arD aMk -nIs +anU aCj aCo aCo @@ -72494,15 +72961,15 @@ aoB apU aoB akL -dMT +gbA aqa aqa aqa -ant -aKB -vis +rzR +cHH +aCW aMk -nIs +anU aOc aCo aCo @@ -72711,13 +73178,13 @@ asY aoB aug akL -tKE +xgm aCc aCc aCc aCc aCc -gwb +aCd aMk anT aCl @@ -72930,11 +73397,11 @@ auh akL aBu aCc -knF -aDR -aKA -aAh -gwb +pLH +lIS +jmD +ivW +aCd aMk anT aCm @@ -73147,13 +73614,13 @@ akL akL aBu aCc -knF -aDT +pLH +pgh aao -kCm -aAh +kzF +ivW aMk -nIs +anU aCn aCZ aCo @@ -73172,8 +73639,8 @@ aOb aQo aQl aqU -aTo -aUo +qhl +aVv aUk aKP aKP @@ -73334,12 +73801,12 @@ aao aao aao aao -aEe -kpf -kpf -kpf -aEe -aEe +mEC +fGK +fGK +fGK +mEC +mEC aao aao aao @@ -73362,15 +73829,15 @@ ata ata ata aqa -ant +rzR aCc aCc -aDT +pgh aao aao -ayz +fEE aMk -nIs +anU aCo aCZ aEg @@ -73378,7 +73845,7 @@ aCo aQa aCZ anT -aIE +cOu aJA aKJ aEd @@ -73389,8 +73856,8 @@ aPi aQp aQm aqU -aTp -aTk +qhl +sEh aUk aKP aKP @@ -73550,13 +74017,13 @@ aao aao aao aao -aoa -aFZ -aFZ -aFZ -aFZ -aFZ -aoa +tqS +xWl +xWl +gIT +xWl +xWl +tqS aao aao aao @@ -73574,20 +74041,20 @@ aao aao aao aCc -asm +oFx aCc aCc aCc -knF +pLH aCc aCc aCc -aFS -kCm +ukW +kzF aao -ayz +fEE aMk -nIs +anU aCp aDb aEh @@ -73596,8 +74063,8 @@ aQa aCZ anT aIF -aJB -aKK +eaZ +aCZ aLE aMp aLE @@ -73606,8 +74073,8 @@ aPj aQq aRs anT -aTp -aUp +qhl +wIj aUk aKP aKP @@ -73767,13 +74234,13 @@ aao aao aao aao -aoa -bjJ -qtx -qtx -qtx -jMB -aoa +tqS +sFv +xRn +xRn +xRn +dgH +tqS aao aao aao @@ -73793,16 +74260,16 @@ aao aao aao aao -oWM -oWM +hgr +hgr aao aao -knF +pLH aCc -knF -aFS -dWg -bSc +pLH +ukW +rrF +kpd aMk anW anW @@ -73823,8 +74290,8 @@ anW anW anW anW -aTq -aUp +aDy +wIj aUk aKP aKP @@ -73984,13 +74451,13 @@ aao aao aao aao -aoa -aFZ -aFZ -aFZ -aFZ -aFZ -aoa +tqS +xWl +xWl +xWl +xWl +xWl +tqS aao aao aao @@ -74009,39 +74476,39 @@ aao aao aao aao -anU -kCm -kCm -gbt +tQj +kzF +kzF +lAC aao aao aCc aCc aCc aCc -knF +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 @@ -74056,7 +74523,7 @@ atP atP atP atb -iIp +gAK bja bes bes @@ -74201,12 +74668,12 @@ aao aao aao aao -aCf -aCf -aCf -aCf -aCf -aCf +azF +azF +azF +azF +azF +azF aao aao tQw @@ -74224,14 +74691,14 @@ tQw aao aao aao -ack -tng -arz -anU -kCm -ayz -knF -whv +bQG +vXJ +khB +tQj +kzF +fEE +pLH +ovQ aCc aCc aCc @@ -74240,25 +74707,25 @@ 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 @@ -74440,42 +74907,42 @@ tQw tQw aao aao -tVm -tng -tng -tng -ack -awf -ayz -knF -whv +fxZ +vXJ +vXJ +vXJ +bQG +jAX +fEE +pLH +ovQ aCc aCc -knF +pLH aCc aCc -knF +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 @@ -74656,43 +75123,43 @@ tQw tQw tQw aao -ack -tng -tng -tng -tng -arz -awf -kCm -aAh -kLW +bQG +vXJ +vXJ +vXJ +vXJ +khB +jAX +kzF +ivW +vkf aCc -knF +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 @@ -74873,16 +75340,16 @@ tQw ahw tQw tQw -fNh -tng -tng -tng -tng -tng +idT +vXJ +vXJ +vXJ +vXJ +vXJ aao aao -kCm -dTa +kzF +lSb aCc aCc aCc @@ -74891,25 +75358,25 @@ aCc aCc aMk anW -aDd -aEi -aDg -aEi -aEi +wHM +sSY +mUb +sdl +vFA +vFA +vFA aEi aEi aEi -aEi -aEi -aDc -aEi -aOj -aPm -aQt +aHO +fWY +pSf +qcE +mIs aRu nnK -aTt -aUq +mNT +wIj aQu aUk aKP @@ -75090,43 +75557,43 @@ tQw ujC ujC tQw -vVB -ack -tng -tng +ukv +bQG +vXJ +vXJ aao aao aao aao aao -aBY -aAh -knF -knF +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 @@ -75308,42 +75775,42 @@ ujC ujC tQw tQw -tCQ -tCQ +mda +mda aao aao aao -kCm -gbt -kCm -kCm -gbt -aCd -aAh +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 @@ -75531,9 +75998,9 @@ aao aao aao aao -kCm -kCm -kCm +kzF +kzF +kzF aao aao aao @@ -75541,26 +76008,26 @@ 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 @@ -75748,36 +76215,36 @@ tQw aao aao aao -kCm -gbt +kzF +lAC aao aao aao aao -knF -knF +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 @@ -75973,12 +76440,12 @@ aao aao aao aao -coc +rLM aMk -anW -anW -anW -anW +apo +apo +apo +apo anW anW anW @@ -75993,8 +76460,8 @@ aoc anW anW aTq -aTp -aUp +qhl +wIj aUk aKP aKP @@ -76209,9 +76676,9 @@ aSg aSg aSg aSg -aSg -aTp -aUp +aTq +qhl +wIj aUk aKP aKP @@ -76219,10 +76686,10 @@ aKP aSh aYx atb -aZI -bas -baV -bbG +nRT +bar +baU +bbF bar baU nRT @@ -76426,20 +76893,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 @@ -76643,17 +77110,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 @@ -76859,18 +77326,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 @@ -77073,21 +77540,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 @@ -77293,17 +77760,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 @@ -77510,18 +77977,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 @@ -77728,17 +78195,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 @@ -77906,7 +78373,7 @@ aev adZ aao gNH -biX +lUM aev aev aoE @@ -77944,17 +78411,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 @@ -78123,13 +78590,13 @@ aev adZ aao gNH -biX +lUM aev anM aqb aps adZ -aqZ +tkY arF aso arF @@ -78162,16 +78629,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 @@ -78378,17 +78845,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 @@ -78595,20 +79062,20 @@ eFh aao aao aao -aRv -nVw -hLs -vcm -qkB -aao -aao -aao +dTB +iFz +qbG +iFz +iFz +dTB +dAd +oHn +pAX +qLD +xZL aao aao -aao -sON -sfI -aao +gCE aao aao aao @@ -78813,17 +79280,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 @@ -79030,16 +79497,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 @@ -79247,15 +79714,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 @@ -79463,16 +79930,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 @@ -79682,14 +80149,14 @@ tQw tQw tQw eFh -aTw -aUy -amG -aao -aao -aao -aao -ecK +sRV +aMT +tQw +tQw +pIN +gCE +gCE +gCE gCE gCE gCE @@ -79899,14 +80366,14 @@ tQw tQw tQw eFh -aTw -aUy -wQC -eMX -aao -aao -aao -ecK +sRV +aMT +tQw +tQw +aWN +gCE +gCE +gCE gCE xuU qFY @@ -80110,19 +80577,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 @@ -80327,18 +80794,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 @@ -80544,18 +81011,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 @@ -80761,7 +81228,7 @@ aJF anI anI anI -aMV +jvW gXp gXp gXp @@ -80769,10 +81236,10 @@ gXp aTw ocR uoj -wQC tQw -aWN tQw +aWN +gCE gCE ohD aao @@ -80988,9 +81455,9 @@ aTv aMT tQw tQw -pIN -xFZ -ohD +ujC +gCE +gCE aao aao aao @@ -81204,8 +81671,8 @@ aSm lMw aMT tQw -xFZ -ahy +tQw +ujC aao aao aao @@ -81376,7 +81843,7 @@ adZ adZ adZ aeQ -wQu +ald daB amO afy @@ -81420,7 +81887,7 @@ aao aao aSm aMV -sNQ +tQw aao aao sIh @@ -82040,7 +82507,7 @@ tFO axs ati atN -auw +yhG avj avR awI @@ -88821,7 +89288,7 @@ aab aaa aaa aaa -aaa +cJd aaa aaa aaa @@ -89038,7 +89505,7 @@ aab aaa aaa aaa -aaa +cJd aaa aaa aaa @@ -89257,7 +89724,7 @@ aaa aaa aaa aaa -aaa +cJd aaa aaa aaa @@ -89474,15 +89941,15 @@ aaa aaa aaa aaa +cJd aaa aaa aaa aaa aaa -aaa -aaa -aaa -aaa +cJd +cJd +cJd aaa aaa aaa @@ -89697,9 +90164,9 @@ aaa aaa aaa aaa -aaa -aaa -aaa +cJd +cJd +cJd aaa aaa aaa diff --git a/maps/map_files/BigRed/sprinkles/15.reactor_meltdown.dmm b/maps/map_files/BigRed/sprinkles/15.reactor_meltdown.dmm index 8f6063172ff5..7b28c00cc0d6 100644 --- a/maps/map_files/BigRed/sprinkles/15.reactor_meltdown.dmm +++ b/maps/map_files/BigRed/sprinkles/15.reactor_meltdown.dmm @@ -916,9 +916,8 @@ }, /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) diff --git a/maps/map_files/BigRed/sprinkles/25.chapel_cult.dmm b/maps/map_files/BigRed/sprinkles/25.chapel_cult.dmm index 7acf197b3ddb..19f720daf929 100644 --- a/maps/map_files/BigRed/sprinkles/25.chapel_cult.dmm +++ b/maps/map_files/BigRed/sprinkles/25.chapel_cult.dmm @@ -51,11 +51,6 @@ icon_state = "darkish" }, /area/bigredv2/outside/chapel) -"aj" = ( -/turf/open/floor{ - icon_state = "darkish" - }, -/area/bigredv2/outside/chapel) "ak" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -550,7 +545,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..bfce848e5656 100644 --- a/maps/map_files/BigRed/sprinkles/25.containerroom_xenos.dmm +++ b/maps/map_files/BigRed/sprinkles/25.containerroom_xenos.dmm @@ -36,12 +36,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) @@ -130,6 +126,84 @@ /obj/structure/machinery/light, /turf/open/floor/plating, /area/bigredv2/outside/nw) +"D" = ( +/obj/effect/landmark/static_comms/net_one, +/turf/open/floor{ + icon_state = "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{ + dir = 10; + icon_state = "warnplate" + }, +/area/bigredv2/outside/telecomm/warehouse) +"K" = ( +/turf/open/floor{ + icon_state = "bcircuit" + }, +/area/bigredv2/outside/telecomm/warehouse) +"O" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/plating{ + dir = 8; + icon_state = "warnplate" + }, +/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{ + dir = 4; + icon_state = "warnplate" + }, +/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{ + dir = 6; + icon_state = "warnplate" + }, +/area/bigredv2/outside/telecomm/warehouse) +"V" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/plating{ + icon_state = "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{ + dir = 4; + icon_state = "warnplate" + }, +/area/bigredv2/outside/telecomm/warehouse) (1,1,1) = {" b @@ -144,10 +218,10 @@ b b "} (2,1,1) = {" -b -e -j -j +i +O +O +H q j u @@ -156,10 +230,10 @@ j b "} (3,1,1) = {" -b -f -j -j +i +K +D +V q j v @@ -168,10 +242,10 @@ y b "} (4,1,1) = {" -b -g -m -j +i +K +K +V q j j @@ -180,10 +254,10 @@ j b "} (5,1,1) = {" -b -h -m -j +i +S +Z +T q j j @@ -194,7 +268,7 @@ b (6,1,1) = {" b g -j +m j r j @@ -205,8 +279,8 @@ b "} (7,1,1) = {" b -g -j +h +m j q j @@ -217,7 +291,7 @@ b "} (8,1,1) = {" b -i +f j j q @@ -301,7 +375,7 @@ b "} (15,1,1) = {" b -j +e j j q 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/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/standalone/crashlanding-eva.dmm b/maps/map_files/BigRed/standalone/crashlanding-eva.dmm index 18b4ab1b0e9f..33eefe09518f 100644 --- a/maps/map_files/BigRed/standalone/crashlanding-eva.dmm +++ b/maps/map_files/BigRed/standalone/crashlanding-eva.dmm @@ -47,9 +47,7 @@ /area/bigredv2/outside/general_offices) "aE" = ( /obj/structure/computerframe, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/general_offices) "aF" = ( /turf/closed/shuttle/ert{ @@ -107,26 +105,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/dark_grey, /area/bigredv2/outside/general_offices) "aV" = ( /turf/closed/shuttle/ert{ @@ -191,34 +181,24 @@ /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/dark_grey, /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/dark_grey, /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, @@ -249,9 +229,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/dark_grey, /area/bigredv2/outside/general_offices) "br" = ( /turf/closed/shuttle/ert{ @@ -262,22 +240,16 @@ /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /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/dark_grey, /area/bigredv2/outside/general_offices) "bv" = ( /obj/structure/bed/chair/dropship/passenger{ @@ -287,9 +259,7 @@ dir = 1; icon_state = "gib6" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/general_offices) "bw" = ( /turf/closed/shuttle/ert{ @@ -339,9 +309,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{ @@ -481,25 +449,17 @@ "cb" = ( /obj/structure/surface/rack, /obj/item/restraints, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /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/dark_grey, /area/bigredv2/outside/general_offices) "cf" = ( /turf/closed/shuttle/ert{ @@ -546,9 +506,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{ @@ -586,9 +544,7 @@ "cu" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/remains, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/general_offices) "cv" = ( /turf/closed/shuttle/ert{ @@ -1049,9 +1005,7 @@ /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, @@ -1104,9 +1058,7 @@ "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/dark_grey, /area/bigredv2/outside/general_offices) (1,1,1) = {" diff --git a/maps/map_files/BigRed/standalone/crashlanding-offices.dmm b/maps/map_files/BigRed/standalone/crashlanding-offices.dmm index e0c625805375..48bac15b3127 100644 --- a/maps/map_files/BigRed/standalone/crashlanding-offices.dmm +++ b/maps/map_files/BigRed/standalone/crashlanding-offices.dmm @@ -230,9 +230,7 @@ /area/bigredv2/outside/office_complex) "aP" = ( /obj/structure/computerframe, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "aQ" = ( /turf/closed/shuttle/ert{ @@ -257,22 +255,16 @@ "aU" = ( /obj/structure/surface/rack, /obj/item/restraints, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "aV" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /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{ @@ -311,9 +303,7 @@ }, /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, @@ -356,32 +346,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/dark_grey, /area/bigredv2/outside/office_complex) "bq" = ( /turf/closed/shuttle/ert{ @@ -418,13 +398,6 @@ 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" - }, -/area/bigredv2/outside/office_complex) "bw" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, @@ -754,13 +727,12 @@ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "cv" = ( /turf/open/shuttle/dropship{ - icon_state = "rasputin10" + icon_state = "rasputin10"; + supports_surgery = 1 }, /area/bigredv2/outside/office_complex) "cw" = ( @@ -769,7 +741,8 @@ name = "smashed NSG 23 assault rifle" }, /turf/open/shuttle/dropship{ - icon_state = "rasputin12" + icon_state = "rasputin12"; + supports_surgery = 1 }, /area/bigredv2/outside/office_complex) "cx" = ( @@ -777,9 +750,7 @@ /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, @@ -1113,24 +1084,18 @@ /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/dark_grey, /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, @@ -1150,18 +1115,14 @@ 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{ @@ -1169,31 +1130,26 @@ icon_state = "gib6" }, /turf/open/shuttle/dropship{ - icon_state = "rasputin10" + icon_state = "rasputin10"; + supports_surgery = 1 }, /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/dark_grey, /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, @@ -1204,15 +1160,11 @@ "dL" = ( /obj/structure/surface/rack, /obj/item/device/binoculars, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "dM" = ( /obj/structure/surface/rack, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "dN" = ( /obj/structure/surface/rack, @@ -1220,9 +1172,7 @@ /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/dark_grey, /area/bigredv2/outside/office_complex) "dO" = ( /obj/effect/decal/cleanable/dirt, @@ -1234,9 +1184,7 @@ "dP" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tech_supply, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "dQ" = ( /obj/structure/bed/chair/dropship/passenger{ @@ -1244,30 +1192,22 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/spawner/gibspawner/human, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /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/dark_grey, /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/dark_grey, /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/dark_grey, /area/bigredv2/outside/office_complex) "dU" = ( /obj/effect/decal/cleanable/dirt, @@ -1412,36 +1352,28 @@ dir = 8 }, /obj/effect/landmark/survivor_spawner/bigred_crashed_pmc, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /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/dark_grey, /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/dark_grey, /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/dark_grey, /area/bigredv2/outside/office_complex) "jx" = ( /obj/effect/decal/cleanable/blood{ @@ -1449,18 +1381,19 @@ 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/dark_grey, /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/dark_grey, /area/bigredv2/outside/office_complex) "qX" = ( /obj/effect/decal/cleanable/blood, @@ -1479,9 +1412,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/dark_grey, /area/bigredv2/outside/office_complex) "rK" = ( /obj/structure/bed/chair/dropship/passenger{ @@ -1489,21 +1420,15 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /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 +1436,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/dark_grey, /area/bigredv2/outside/office_complex) "AB" = ( /obj/structure/bed/chair/dropship/passenger{ @@ -1545,9 +1462,7 @@ name = "dented M4A3 service pistol" }, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "Bu" = ( /obj/effect/decal/cleanable/blood, @@ -1555,27 +1470,21 @@ /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/dark_grey, /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, @@ -1589,18 +1498,14 @@ dir = 4 }, /obj/item/device/radio/headset/distress/pmc/hvh, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /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/dark_grey, /area/bigredv2/outside/office_complex) "PR" = ( /turf/open/floor{ @@ -1613,24 +1518,18 @@ dir = 8 }, /obj/effect/landmark/survivor_spawner/bigred_crashed_cl, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /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/dark_grey, /area/bigredv2/outside/office_complex) (1,1,1) = {" @@ -1915,7 +1814,7 @@ XH AB yS aV -bv +nE dN dP aV @@ -1964,7 +1863,7 @@ av ar aN aU -bv +nE bm dA fv @@ -2003,9 +1902,9 @@ yS yS yS dH -bv -bv -bv +nE +nE +nE dT cF do @@ -2071,7 +1970,7 @@ ap az bu aN -bv +nE dL bm yS @@ -2132,8 +2031,8 @@ rK bp aV dM -bv -bv +nE +nE aV fv dA diff --git a/maps/map_files/CORSAT/Corsat.dmm b/maps/map_files/CORSAT/Corsat.dmm index 17dc301de79d..9c09a95e9f94 100644 --- a/maps/map_files/CORSAT/Corsat.dmm +++ b/maps/map_files/CORSAT/Corsat.dmm @@ -10039,20 +10039,6 @@ icon_state = "bluegreycorner" }, /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"; @@ -10653,20 +10639,6 @@ icon_state = "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,22 +10647,6 @@ /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" @@ -10724,22 +10680,6 @@ icon_state = "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; @@ -11295,6 +11235,9 @@ /obj/structure/machinery/light{ dir = 1 }, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/surface/rack, /turf/open/floor/corsat{ dir = 1; icon_state = "yellow" @@ -15046,6 +14989,10 @@ /turf/open/floor/plating, /area/corsat/gamma/engineering/lobby) "aPX" = ( +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/surface/rack, /turf/open/floor/corsat{ dir = 1; icon_state = "yellow" @@ -18863,6 +18810,7 @@ /obj/structure/machinery/light{ dir = 1 }, +/obj/structure/machinery/fuelcell_recycler/full, /turf/open/floor/corsat{ icon_state = "plate" }, @@ -26593,15 +26541,6 @@ 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" - }, -/area/corsat/sigma/south/robotics) "bwZ" = ( /obj/structure/surface/table/almayer, /obj/item/tool/screwdriver, @@ -26720,12 +26659,6 @@ 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" - }, -/area/corsat/sigma/south/robotics) "bxs" = ( /obj/structure/surface/table/almayer, /obj/item/book/manual/ripley_build_and_repair, @@ -26742,18 +26675,6 @@ 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" - }, -/area/corsat/sigma/south/robotics) "bxw" = ( /turf/open/floor/corsat{ icon_state = "arrow_east" @@ -26778,12 +26699,6 @@ 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" - }, -/area/corsat/sigma/south/robotics) "bxB" = ( /obj/structure/girder/displaced, /turf/open/floor/corsat, @@ -36821,6 +36736,7 @@ /obj/structure/machinery/camera/autoname{ network = list("gamma") }, +/obj/structure/machinery/fuelcell_recycler/full, /turf/open/floor/corsat{ dir = 1; icon_state = "yellow" @@ -37457,6 +37373,19 @@ icon_state = "whitetancorner" }, /area/corsat/sigma/dorms) +"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{ + icon_state = "plate" + }, +/area/corsat/gamma/engineering/core) "drW" = ( /turf/open/floor/corsat{ dir = 8; @@ -38180,6 +38109,17 @@ icon_state = "bluegreycorner" }, /area/corsat/gamma/hangar/flightcontrol) +"dSc" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/item/fuel_cell, +/obj/structure/surface/rack, +/turf/open/floor/corsat{ + dir = 1; + icon_state = "yellow" + }, +/area/corsat/gamma/engineering/core) "dSi" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 @@ -40881,6 +40821,12 @@ icon_state = "yellow" }, /area/corsat/gamma/engineering) +"fTK" = ( +/obj/structure/prop/mech/parts/durand_left_leg, +/turf/open/floor/corsat{ + icon_state = "arrow_east" + }, +/area/corsat/sigma/south/robotics) "fTT" = ( /obj/structure/pipes/vents/pump{ dir = 8 @@ -43752,6 +43698,21 @@ }, /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{ + icon_state = "plate" + }, +/area/corsat/gamma/engineering/core) "hOb" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/r_wall/biodome, @@ -45471,6 +45432,15 @@ "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{ + icon_state = "plate" + }, +/area/corsat/sigma/south/robotics) "jgb" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/surgery/retractor, @@ -50626,6 +50596,12 @@ icon_state = "white" }, /area/corsat/gamma/residential/east) +"mZm" = ( +/obj/structure/prop/mech/parts/durand_head, +/turf/open/floor/corsat{ + icon_state = "arrow_north" + }, +/area/corsat/sigma/south/robotics) "naG" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2; @@ -51771,6 +51747,15 @@ icon_state = "whitetan" }, /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{ + dir = 1; + icon_state = "yellow" + }, +/area/corsat/sigma/south/robotics) "nSA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -52647,6 +52632,12 @@ icon_state = "plate" }, /area/corsat/gamma/biodome/complex) +"oCt" = ( +/obj/structure/prop/mech/parts/durand_torso, +/turf/open/floor/corsat{ + icon_state = "cargo" + }, +/area/corsat/sigma/south/robotics) "oCz" = ( /obj/structure/machinery/light{ dir = 4 @@ -52925,6 +52916,15 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/corsat/sigma/southeast/generator) "oNI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -53474,6 +53474,18 @@ icon_state = "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{ + dir = 1; + icon_state = "yellow" + }, +/area/corsat/gamma/engineering/core) "phK" = ( /obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/corsat{ @@ -54277,6 +54289,14 @@ icon_state = "bluegrey" }, /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{ + icon_state = "yellow" + }, +/area/corsat/sigma/south/robotics) "pUA" = ( /turf/open/floor/corsat{ dir = 8; @@ -56471,6 +56491,13 @@ icon_state = "squares" }, /area/corsat/sigma/hangar/security) +"ryn" = ( +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/corsat{ + dir = 1; + icon_state = "yellow" + }, +/area/corsat/gamma/engineering/core) "ryE" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/corsat{ @@ -57420,6 +57447,21 @@ icon_state = "red" }, /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{ + icon_state = "plate" + }, +/area/corsat/sigma/southeast/generator) "sgX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -58828,14 +58870,6 @@ icon_state = "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; @@ -59862,15 +59896,6 @@ }, /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{ @@ -63615,6 +63640,12 @@ icon_state = "retrosquareslight" }, /area/corsat/gamma/sigmaremote) +"wKf" = ( +/obj/structure/prop/mech/parts/durand_right_arm, +/turf/open/floor/corsat{ + icon_state = "arrow_west" + }, +/area/corsat/sigma/south/robotics) "wKh" = ( /obj/structure/bed/chair{ dir = 8 @@ -65388,6 +65419,14 @@ icon_state = "squares" }, /area/corsat/sigma/cargo) +"yhI" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/corsat{ + icon_state = "plate" + }, +/area/corsat/sigma/southeast/generator) "yhK" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/corsat{ @@ -65428,6 +65467,19 @@ icon_state = "purplewhite" }, /area/corsat/gamma/sigmaremote) +"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{ + icon_state = "plate" + }, +/area/corsat/sigma/southeast/generator) "ykO" = ( /turf/open/floor/corsat{ icon_state = "red" @@ -93708,9 +93760,9 @@ apI aau axp aqa -aEp -aEp -aEp +drE +drE +drE axB apZ bnl @@ -94198,9 +94250,9 @@ apI aFY aqa aqa -aEp -aEp -aEp +drE +drE +drE sNG kRO ufN @@ -94930,7 +94982,7 @@ aEq aEq agK apI -aPX +ryn aqa aqa hKc @@ -95420,12 +95472,12 @@ ouk bqM buz apI -aFY +dSc aqa aqa -aEs -aEs -aEs +hNL +hNL +hNL sNG kRO ufN @@ -95665,7 +95717,7 @@ oUz boV bOc apI -aPX +phl aqa aqa aPS @@ -95913,9 +95965,9 @@ apI aau axp aqa -aEs -aEs -aEs +hNL +hNL +hNL orz iYR bnl @@ -109525,7 +109577,7 @@ pbS auJ bxm aCs -bxu +wKf bxy aMi fVm @@ -109769,8 +109821,8 @@ ahu vzc auJ bEg -bxr -bxv +mZm +oCt bxz pCi lLe @@ -110016,7 +110068,7 @@ auJ hqv aCs bxw -bxA +fTK fbs bxF auJ @@ -112231,7 +112283,7 @@ auJ bxT aMi aMi -thp +pUy auR ylo ylo @@ -112471,7 +112523,7 @@ aMi aMi aMi kjH -tWD +nSp auJ bvL bxW @@ -112716,7 +112768,7 @@ aMi uJq qAk kad -bwY +jfW aEx auR auR @@ -121738,11 +121790,11 @@ auO atl aCz unf -aCR +ykJ aCz -aCR +ykJ aCz -aCR +ykJ aEK sWd xoK @@ -122228,11 +122280,11 @@ aXX atl aZE unf -aEA +sgN aCz -aCR +ykJ aCz -aEA +sgN apE apN aqp @@ -122716,13 +122768,13 @@ alw alw alw atl -aCz +oNi unf -aEA +sgN aCz -aEA +sgN aCz -aEA +sgN aEK aEK aqU @@ -122961,7 +123013,7 @@ auU avf asX ati -aCz +yhI apz dFP dFP diff --git a/maps/map_files/DesertDam/Desert_Dam.dmm b/maps/map_files/DesertDam/Desert_Dam.dmm index 806cffd28a01..a86fb326152d 100644 --- a/maps/map_files/DesertDam/Desert_Dam.dmm +++ b/maps/map_files/DesertDam/Desert_Dam.dmm @@ -11227,11 +11227,6 @@ /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{ @@ -15509,21 +15504,6 @@ "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 - }, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, -/area/desert_dam/building/security/lobby) "aVA" = ( /obj/structure/machinery/light{ dir = 4 @@ -16767,12 +16747,6 @@ icon_state = "red" }, /area/desert_dam/building/security/lobby) -"aZt" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/interior/wood, -/area/desert_dam/building/security/detective) "aZu" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -18103,12 +18077,6 @@ dir = 4 }, /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/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, @@ -19719,28 +19687,6 @@ 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" - }, -/area/desert_dam/interior/dam_interior/hanger) "bjd" = ( /obj/structure/machinery/light{ dir = 4 @@ -19792,17 +19738,6 @@ 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{ @@ -19881,12 +19816,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" @@ -20036,28 +19965,6 @@ icon_state = "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; @@ -20111,22 +20018,6 @@ 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; @@ -20963,22 +20854,6 @@ 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" - }, -/area/desert_dam/interior/dam_interior/hanger) "bnf" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall_f9" @@ -24170,18 +24045,10 @@ icon_state = "warning" }, /area/desert_dam/interior/dam_interior/engine_room) -"bxE" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating, -/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; @@ -24474,20 +24341,6 @@ icon_state = "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 @@ -25318,6 +25171,7 @@ }, /area/desert_dam/interior/dam_interior/engine_east_wing) "bBI" = ( +/obj/structure/machinery/fuelcell_recycler/full, /turf/open/floor/prison{ icon_state = "darkyellow2" }, @@ -27400,6 +27254,15 @@ }, /area/desert_dam/interior/dam_interior/atmos_storage) "bIz" = ( +/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{ icon_state = "green" }, @@ -31734,6 +31597,12 @@ icon_state = "vault" }, /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{ @@ -61089,6 +60958,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, @@ -61219,6 +61095,12 @@ icon_state = "cement_sunbleached1" }, /area/desert_dam/exterior/valley/south_valley_dam) +"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{ dir = 4; @@ -61316,6 +61198,10 @@ icon_state = "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, @@ -61481,6 +61367,13 @@ icon_state = "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{ @@ -61746,6 +61639,10 @@ /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, @@ -61869,6 +61766,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, @@ -62121,6 +62021,10 @@ icon_state = "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" @@ -62281,7 +62185,7 @@ /area/desert_dam/exterior/valley/valley_telecoms) "lrn" = ( /obj/effect/landmark/nightmare{ - insert_tag = "damtemple" + insert_tag = "damtemple_intact" }, /turf/open/desert/dirt{ icon_state = "desert_transition_edge1" @@ -62720,6 +62624,21 @@ icon_state = "floor_plate" }, /area/desert_dam/interior/dam_interior/hanger) +"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{ + dir = 5; + icon_state = "red" + }, +/area/desert_dam/building/security/lobby) "mMm" = ( /turf/open/desert/dirt{ dir = 5; @@ -63171,6 +63090,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" @@ -63228,6 +63151,12 @@ icon_state = "desert_transition_edge1" }, /area/desert_dam/exterior/valley/valley_hydro) +"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" @@ -63291,6 +63220,10 @@ icon_state = "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{ @@ -63658,6 +63591,15 @@ icon_state = "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, @@ -64268,6 +64210,15 @@ icon_state = "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) @@ -64355,6 +64306,12 @@ icon_state = "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,6 +64346,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, @@ -65128,7 +65097,7 @@ icon_state = "S" }, /obj/effect/landmark/nightmare{ - insert_tag = "shipgone" + insert_tag = "shipgone_northlz" }, /turf/open/floor/prison{ dir = 10; @@ -65481,7 +65450,7 @@ /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) @@ -65493,6 +65462,12 @@ icon_state = "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{ @@ -65565,6 +65540,12 @@ icon_state = "tile" }, /area/desert_dam/exterior/valley/valley_crashsite) +"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{ icon_state = "cement1" @@ -66061,7 +66042,7 @@ 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) @@ -71604,7 +71585,7 @@ bjk bjk bjk blx -bjA +ozQ bmD bnc bhP @@ -71830,17 +71811,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 @@ -72064,17 +72045,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 @@ -72298,17 +72279,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 @@ -72540,7 +72521,7 @@ bjk bjk bjk blx -bjA +ozQ bmD bnf bhP @@ -74474,7 +74455,7 @@ aSI chG ceA act -aVz +mKZ aXD aXD aXD @@ -74945,9 +74926,9 @@ ceA aVB aXE aZJ -bdL +bWO bjI -aZt +oJW aVB boW bqy @@ -93144,9 +93125,9 @@ bQF bCs bSY bwu -bxE -byG -bxE +kOC +iiY +kOC bAK bwv bZQ @@ -93612,9 +93593,9 @@ bSY bCs bSY bwu -bxE -byG -bxE +kOC +iiY +kOC bAK bwv bZQ @@ -94548,9 +94529,9 @@ bTi bCy bTi bwu -bxH -byJ -bxH +oWx +gVo +oWx bAK bwv caI @@ -95016,9 +94997,9 @@ bTi bCy bTi bwu -bxH -byJ -bxH +oWx +gVo +oWx bAK bwv caI @@ -95952,9 +95933,9 @@ bTi bCy bTi bwu -bxH -byJ -bxH +oWx +gVo +oWx bAK bwv caI @@ -96375,7 +96356,7 @@ awC awC dTs dTs -aHO +aXv aPP aaC aXC @@ -96420,9 +96401,9 @@ bYF bCy bTi bwu -bxH -byJ -bxH +oWx +gVo +oWx bAK bwv caI @@ -96621,7 +96602,7 @@ aVZ aHd dTs aOh -dTs +aWz dTs dTs dTs @@ -98727,8 +98708,8 @@ dTs dTs dTs dTs -aam -ayp +dTs +dTs aeE aeE ayD @@ -99899,7 +99880,7 @@ dTs dTs aam ayp -aeE +dTs aeE bgH dTs diff --git a/maps/map_files/DesertDam/purpleriver/newbridge.dmm b/maps/map_files/DesertDam/purpleriver/newbridge.dmm index 225fdabddc9f..d6de4499493d 100644 --- a/maps/map_files/DesertDam/purpleriver/newbridge.dmm +++ b/maps/map_files/DesertDam/purpleriver/newbridge.dmm @@ -536,11 +536,6 @@ icon_state = "tile" }, /area/desert_dam/exterior/valley/valley_cargo) -"bx" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, -/area/desert_dam/exterior/valley/valley_cargo) "by" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/asphalt{ diff --git a/maps/map_files/DesertDam/sprinkles/15.shipgone_northlz.dmm b/maps/map_files/DesertDam/sprinkles/15.shipgone_northlz.dmm index 4d9a42777155..497963d344e4 100644 --- a/maps/map_files/DesertDam/sprinkles/15.shipgone_northlz.dmm +++ b/maps/map_files/DesertDam/sprinkles/15.shipgone_northlz.dmm @@ -81,12 +81,12 @@ }, /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; diff --git a/maps/map_files/DesertDam/standalone/crashlanding-upp-alt1.dmm b/maps/map_files/DesertDam/standalone/crashlanding-upp-alt1.dmm index b707028441cf..94258193f75b 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_top_to_bottom, /area/desert_dam/exterior/valley/valley_civilian) "bz" = ( /turf/closed/shuttle/ert{ @@ -84,9 +82,7 @@ "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_top_to_bottom, /area/desert_dam/exterior/valley/valley_civilian) "fp" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -173,9 +169,7 @@ "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_top_to_bottom, /area/desert_dam/exterior/valley/valley_civilian) "jX" = ( /obj/effect/decal/sand_overlay/sand1, @@ -220,9 +214,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_top_to_bottom, /area/desert_dam/exterior/valley/valley_civilian) "mw" = ( /turf/open/desert/dirt{ @@ -297,21 +289,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_top_to_bottom, /area/desert_dam/exterior/valley/valley_civilian) "oX" = ( /obj/structure/desertdam/decals/road_edge{ @@ -457,9 +443,7 @@ /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 +459,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{ @@ -872,9 +854,7 @@ /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_top_to_bottom, /area/desert_dam/exterior/valley/valley_civilian) "OJ" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -923,15 +903,11 @@ /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{ @@ -974,9 +950,7 @@ "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 +988,7 @@ pixel_y = 21 }, /obj/effect/decal/cleanable/dirt, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/desert_dam/exterior/valley/valley_civilian) "UB" = ( /obj/structure/prop/invuln/fire{ @@ -1059,9 +1031,7 @@ }, /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{ diff --git a/maps/map_files/DesertDam/standalone/crashlanding-upp-bar.dmm b/maps/map_files/DesertDam/standalone/crashlanding-upp-bar.dmm index 7928c7f06b71..9cca7b5c3558 100644 --- a/maps/map_files/DesertDam/standalone/crashlanding-upp-bar.dmm +++ b/maps/map_files/DesertDam/standalone/crashlanding-upp-bar.dmm @@ -79,9 +79,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{ @@ -133,9 +131,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,9 +152,7 @@ network = null; pixel_y = 21 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/desert_dam/building/bar/bar) "cR" = ( /obj/effect/landmark/crap_item, @@ -211,9 +205,7 @@ /obj/item/ammo_box/rounds/type71{ bullet_amount = 129 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/desert_dam/building/bar/bar) "ee" = ( /obj/effect/decal/warning_stripes{ @@ -285,9 +277,7 @@ icon_state = "paper_words"; item_state = "paper_words" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/desert_dam/building/bar/bar) "fk" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -328,9 +318,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{ @@ -431,9 +419,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{ @@ -639,9 +625,7 @@ "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{ @@ -776,9 +760,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,9 +772,7 @@ /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, @@ -905,9 +885,7 @@ 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, @@ -920,9 +898,7 @@ "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/dark_grey, /area/desert_dam/building/bar/bar) "pO" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1015,7 +991,7 @@ /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{ @@ -1057,9 +1033,7 @@ 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, @@ -1088,15 +1062,11 @@ /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, @@ -1151,9 +1121,7 @@ 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/dark_grey, /area/desert_dam/building/bar/bar) "uF" = ( /turf/open/desert/dirt{ @@ -1163,9 +1131,7 @@ /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, @@ -1301,9 +1267,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S-corner" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/desert_dam/building/bar/bar) "xg" = ( /obj/structure/prop/dam/boulder/boulder1, @@ -1454,7 +1418,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{ @@ -1598,9 +1562,7 @@ /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, @@ -1626,9 +1588,7 @@ /obj/item/ammo_magazine/rifle/type71/heap{ current_rounds = 0 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/desert_dam/building/bar/bar) "BB" = ( /turf/closed/shuttle/ert{ @@ -1716,9 +1676,7 @@ /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, @@ -1814,9 +1772,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{ @@ -1935,9 +1891,7 @@ /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, @@ -2005,9 +1959,7 @@ 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, @@ -2018,9 +1970,7 @@ "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, @@ -2099,9 +2049,7 @@ /obj/structure/bed/chair/dropship/passenger{ dir = 8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/desert_dam/building/bar/bar) "IU" = ( /obj/item/tool/shovel, @@ -2208,9 +2156,7 @@ "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{ @@ -2292,9 +2238,7 @@ }, /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, @@ -2310,9 +2254,7 @@ 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, @@ -2351,9 +2293,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, @@ -2475,9 +2415,7 @@ /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/desert_dam/building/bar/bar) "PS" = ( /obj/effect/decal/sand_overlay/sand1, @@ -2574,9 +2512,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 +2526,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/dark_grey, /area/desert_dam/building/bar/bar) "Ro" = ( /obj/structure/flora/grass/desert/lightgrass_11, @@ -2617,9 +2551,7 @@ /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{ @@ -2861,9 +2793,7 @@ 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{ 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..97f0248ff6e8 100644 --- a/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm +++ b/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm @@ -31581,9 +31581,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, @@ -34129,6 +34128,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, +/obj/structure/machinery/fuelcell_recycler/full, /turf/open/floor/plating, /area/prison/engineering) "bVS" = ( @@ -36112,6 +36112,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" = ( @@ -44544,6 +44550,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 @@ -86370,7 +86382,7 @@ bXd bYe bVP bVP -bVP +gXC bRC ceG cfr diff --git a/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm b/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm index 68b8897320a5..f81f67e45a80 100644 --- a/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm +++ b/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm @@ -883,14 +883,10 @@ }, /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" + icon_state = "floor_plate" }, /area/fiorina/station/lowsec) "ayX" = ( @@ -1922,11 +1918,6 @@ icon_state = "whitegreenfull" }, /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" @@ -1978,13 +1969,9 @@ /turf/open/floor/prison, /area/fiorina/station/security) "bjt" = ( -/obj/structure/bed{ - icon_state = "abed" - }, -/obj/item/bedsheet/green, +/obj/structure/girder, /turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" + icon_state = "yellowfull" }, /area/fiorina/station/lowsec) "bjR" = ( @@ -2004,14 +1991,9 @@ /turf/open/floor/prison, /area/fiorina/station/power_ring) "bki" = ( -/obj/structure/closet{ - density = 0; - pixel_y = 18 - }, -/obj/item/clothing/gloves/boxing/yellow, +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" + icon_state = "floor_plate" }, /area/fiorina/station/lowsec) "bkQ" = ( @@ -2034,6 +2016,13 @@ icon_state = "floor_plate" }, /area/fiorina/tumor/aux_engi) +"blf" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/prison{ + dir = 1; + icon_state = "bluecorner" + }, +/area/fiorina/station/power_ring) "blA" = ( /obj/item/shard{ icon_state = "medium"; @@ -3702,13 +3691,6 @@ icon_state = "cell_stripe" }, /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, @@ -4693,12 +4675,14 @@ }, /area/fiorina/station/transit_hub) "cQf" = ( -/obj/structure/machinery/power/apc{ - dir = 1 +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, +/obj/structure/surface/table/reinforced/prison, +/obj/item/explosive/grenade/incendiary/molotov, /turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" + icon_state = "floor_plate" }, /area/fiorina/station/lowsec) "cQv" = ( @@ -5705,20 +5689,11 @@ }, /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/barricade/metal/wired, +/turf/open/floor/prison{ + icon_state = "yellowfull" }, -/obj/structure/platform/kutjevo/smooth, -/turf/open/space, -/area/fiorina/oob) +/area/fiorina/station/lowsec) "dxv" = ( /turf/open/floor/prison{ dir = 10; @@ -7951,10 +7926,6 @@ }, /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; @@ -8237,6 +8208,13 @@ }, /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, @@ -9153,20 +9131,12 @@ }, /area/fiorina/tumor/civres) "fCJ" = ( -/obj/structure/platform/kutjevo/smooth, -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/obj/structure/barricade/handrail{ +/obj/structure/girder, +/turf/open/floor/prison{ dir = 1; - icon_state = "hr_kutjevo"; - name = "solar lattice" - }, -/obj/structure/platform/kutjevo/smooth{ - dir = 8 + icon_state = "yellow" }, -/turf/open/space, -/area/fiorina/oob) +/area/fiorina/station/lowsec) "fCW" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/communications, @@ -9209,9 +9179,26 @@ }, /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{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) "fEH" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/station_alert, @@ -9393,7 +9380,7 @@ "fLb" = ( /obj/effect/decal/cleanable/blood/gibs, /turf/open/floor/prison{ - dir = 9; + dir = 1; icon_state = "yellow" }, /area/fiorina/station/lowsec) @@ -9508,11 +9495,12 @@ }, /area/fiorina/station/power_ring) "fPl" = ( -/obj/structure/barricade/metal/wired{ - dir = 8 +/obj/structure/machinery/power/apc{ + dir = 1 }, /turf/open/floor/prison{ - icon_state = "yellowfull" + dir = 1; + icon_state = "yellow" }, /area/fiorina/station/lowsec) "fPB" = ( @@ -10840,6 +10828,13 @@ /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{ @@ -12901,6 +12896,19 @@ }, /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 @@ -13042,17 +13050,11 @@ /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" +/obj/structure/girder, +/turf/open/floor/prison{ + icon_state = "yellow" }, -/turf/open/space, -/area/fiorina/oob) +/area/fiorina/station/lowsec) "hUi" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plating/prison, @@ -14137,18 +14139,11 @@ }, /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 - }, +/obj/structure/closet/wardrobe/orange, +/obj/item/clothing/gloves/boxing/blue, +/obj/item/clothing/gloves/boxing/blue, /turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" + icon_state = "yellowfull" }, /area/fiorina/station/lowsec) "iCE" = ( @@ -14885,6 +14880,11 @@ icon_state = "greenfull" }, /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{ @@ -16961,19 +16961,6 @@ /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, @@ -17213,16 +17200,6 @@ icon_state = "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, @@ -17453,10 +17430,6 @@ }, /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; @@ -17639,16 +17612,6 @@ icon_state = "yellow" }, /area/fiorina/station/lowsec) -"kIe" = ( -/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) "kIg" = ( /obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ @@ -18380,7 +18343,7 @@ }, /area/fiorina/station/lowsec) "ldF" = ( -/obj/structure/closet/emcloset, +/obj/structure/machinery/fuelcell_recycler/full, /turf/open/floor/prison{ dir = 10; icon_state = "blue" @@ -18948,6 +18911,16 @@ }, /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" @@ -19833,6 +19806,18 @@ icon_state = "kitchen" }, /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{ + icon_state = "floor_plate" + }, +/area/fiorina/station/power_ring) "lXs" = ( /obj/item/book/manual/marine_law, /obj/item/book/manual/marine_law{ @@ -19949,16 +19934,6 @@ /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, @@ -20280,6 +20255,17 @@ icon_state = "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{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) "mom" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/tool/surgery/surgicaldrill, @@ -22446,6 +22432,13 @@ icon_state = "yellowcorner" }, /area/fiorina/station/lowsec) +"nAV" = ( +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/prison{ + dir = 8; + icon_state = "bluecorner" + }, +/area/fiorina/station/power_ring) "nBb" = ( /obj/structure/machinery/light/double/blue{ dir = 1; @@ -23435,10 +23428,6 @@ }, /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, @@ -23819,13 +23808,9 @@ }, /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; + dir = 4; icon_state = "yellow" }, /area/fiorina/station/lowsec) @@ -24252,17 +24237,6 @@ icon_state = "blue" }, /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 @@ -24437,13 +24411,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; @@ -25944,13 +25911,8 @@ 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" + icon_state = "floor_plate" }, /area/fiorina/station/lowsec) "pIs" = ( @@ -26306,13 +26268,6 @@ icon_state = "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" @@ -27297,13 +27252,6 @@ icon_state = "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; @@ -27515,6 +27463,12 @@ /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 @@ -27952,10 +27906,10 @@ /turf/open/floor/prison, /area/fiorina/station/medbay) "qSz" = ( -/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/closet/wardrobe/orange, +/obj/item/clothing/gloves/boxing/yellow, /turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" + icon_state = "yellowfull" }, /area/fiorina/station/lowsec) "qSA" = ( @@ -28390,6 +28344,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" @@ -29105,9 +29069,12 @@ }, /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{ + dir = 10; + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) "rMo" = ( /obj/effect/landmark/objective_landmark/far, /obj/structure/closet/secure_closet/engineering_personal, @@ -29430,13 +29397,6 @@ icon_state = "darkbrown2" }, /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{ @@ -29539,6 +29499,13 @@ icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) +"rZM" = ( +/obj/item/circuitboard/exosuit/peripherals/max/targeting, +/obj/structure/surface/rack, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/civres) "rZN" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -32882,16 +32849,6 @@ /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{ @@ -33289,6 +33246,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{ @@ -33640,17 +33601,6 @@ icon_state = "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{ @@ -34723,12 +34673,6 @@ icon_state = "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, @@ -35984,6 +35928,16 @@ "vNq" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/station/telecomm/lz1_cargo) +"vNQ" = ( +/obj/item/fuel_cell, +/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) "vOm" = ( /turf/open/floor/prison{ dir = 8; @@ -36292,6 +36246,12 @@ icon_state = "greenfull" }, /area/fiorina/station/transit_hub) +"vZe" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/prison{ + icon_state = "bluecorner" + }, +/area/fiorina/station/power_ring) "vZs" = ( /obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ @@ -36788,6 +36748,16 @@ icon_state = "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{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) "wps" = ( /obj/structure/bed/sofa/south/grey/left, /obj/structure/machinery/light/double/blue{ @@ -36889,13 +36859,6 @@ icon_state = "whitegreenfull" }, /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" @@ -39041,10 +39004,6 @@ }, /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, @@ -48787,7 +48746,7 @@ dXG swj xHV dIo -qBS +rZM sHL swj dIo @@ -50740,8 +50699,8 @@ nMm aHJ jlk jlk -xNw -xNw +ugI +ugI jlk jlk umy @@ -55642,7 +55601,7 @@ tkj oer ckZ kXD -kIe +lvt tas tas tTA @@ -62438,11 +62397,11 @@ lgS eLu eLu eLu -bhf -bhf +iYQ +iYQ eLu -bhf -bhf +iYQ +iYQ eLu eLu ppI @@ -63286,11 +63245,11 @@ lgS eLu eLu eLu -bhf -bhf +iYQ +iYQ eLu -bhf -bhf +iYQ +iYQ eLu eLu cME @@ -66401,9 +66360,9 @@ iKs nTv dtS fQA -bFr -bFr -bFr +bis +bis +bis oLV nxq dBy @@ -66612,10 +66571,10 @@ iKs nTv dtS fQA -bFr -bFr -bQM -bFr +bis +bis +cME +bis bis gXd dBy @@ -66823,12 +66782,12 @@ tyj tyj dtS fQA -bFr -bFr -bQM -bQM -bFr -rLJ +bis +bis +cME +cME +wpD +iKs oeY dBy nxq @@ -67034,12 +66993,12 @@ rJF fmb dBy dBy +dBy +bis +cME +cME +cME bis -bFr -bQM -bQM -bQM -bFr bis gXd qIT @@ -67246,12 +67205,12 @@ bFr twb eLu tLC +tLC +eLu +cME +cME +cME eLu -twb -twb -twb -twb -twb tIn dwP dBy @@ -67683,7 +67642,7 @@ twb eBO eBO eBO -twb +eLu eLu eLu eLu @@ -67887,7 +67846,7 @@ tIU gZc tIU cME -liA +cME cME qIq eLu @@ -67895,7 +67854,7 @@ uvF rzp vds elO -uvF +cME wQT eLu cME @@ -68095,11 +68054,11 @@ twb twb twb cME -eLu -eLu -eLu +cME +cME +cME bgy -eLu +cME cME cME cME @@ -68311,7 +68270,7 @@ cME cME cME cME -liA +cME cME cME cME @@ -68523,7 +68482,7 @@ twb twb cME cME -eLu +cME cME rJh eLu @@ -68531,7 +68490,7 @@ eLu dHD xbM fHo -vbG +cME vZD cME cME @@ -68575,7 +68534,7 @@ uGY ihB ihB ubP -ubP +qHi gag sbF sbF @@ -68739,8 +68698,8 @@ eLu mrk cME jkg -uvF -rVL +cME +dHD xbM fHo xno @@ -68947,15 +68906,15 @@ bQM twb nSU cME -eLu +cME cME cME eLu -uvF +jkg dHD xbM fHo -uvF +cME wQT eLu cYP @@ -69159,7 +69118,7 @@ bQM twb uts cME -liA +cME cME cME cME @@ -69371,17 +69330,17 @@ iYw twb eLu eLu -eLu +cME srI dTf +cME eLu -twb dHD xbM fHo -wzE -sfu -jyF +ioc +bjt +bjt kqC sfu jyF @@ -69586,13 +69545,13 @@ tmo gfo cME wQT -eLu +cME kqC dHD xbM fHo -kqC -wsX +ioc +ioc bjt kqC qNF @@ -69619,12 +69578,12 @@ ihB ceC obh obh -nqN +ceC bxc jbF bBK ceC -uGY +ceC uGY uGY uGY @@ -69791,21 +69750,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 @@ -70003,16 +69962,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 @@ -70043,7 +70002,7 @@ stw wQg qet mKp -nqN +ceC qJv bqF tNF @@ -70250,15 +70209,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 @@ -70650,7 +70609,7 @@ srp bqD cAJ xbM -fHo +hTN kqC rzp tKk @@ -70691,7 +70650,7 @@ uGY ppq ubP ihB -nqN +uGY lJx fAf fAf @@ -70862,7 +70821,7 @@ mGr upY dHD xbM -fHo +hTN kqC qLi dpe @@ -71074,7 +71033,7 @@ mGr upY dHD xbM -fHo +voO kqC kqC kqC @@ -71101,7 +71060,7 @@ qdE uGY ltQ ltQ -nqN +uGY ltQ ayo uGY @@ -71287,9 +71246,9 @@ upY dHD xbM fHo -kqC -sfu -jyF +ioc +ioc +ioc kqC sfu iEG @@ -71313,7 +71272,7 @@ uGY uGY fRq fRq -nqN +uGY fRq ygr xGt @@ -71499,9 +71458,9 @@ iox dHD xbM fHo -kqC -qNF -bjt +ioc +ioc +ioc kqC qNF mDO @@ -71710,10 +71669,10 @@ iYw izh dHD xbM -voO -kqC -ryJ -end +fHo +ioc +ioc +kgN kqC ryJ end @@ -71751,7 +71710,7 @@ uGY ceC uGY uGY -nqN +uGY qQd jwK jwK @@ -71913,14 +71872,14 @@ aeI nQu hCh sKY -hTN -fyC -qOk -mKS -erT -wzE +cAW +cAW +cAW +cAW +cAW wzE -dHD +kqC +fPl xbM fHo ioc @@ -71944,8 +71903,8 @@ dCM dCM dCM nqN -nqN -nqN +uGY +uGY uxv ceC ceC @@ -72125,14 +72084,14 @@ aeI nQu hCh sKY -dxl -afk -afk -afk -ghg +cAW +cAW +cAW wzE wzE -dHD +wzE +kqC +nBb xbM fHo ioc @@ -72337,19 +72296,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 @@ -72548,20 +72507,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 @@ -72762,18 +72721,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 @@ -72976,16 +72935,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 @@ -73191,13 +73150,13 @@ oFI mCe xbM sJP -kqC +ioc dHD xbM fHo -kqC -sfu -jyF +ioc +ioc +ioc kqC sfu jyF @@ -73407,9 +73366,9 @@ ioc dHD xbM fHo -kqC -qNF -mDO +ioc +ioc +ioc kqC qNF eub @@ -73618,10 +73577,10 @@ xbM ioc nbP xbM -voO -kqC -cRB -end +fHo +ioc +ioc +kgN kqC ryJ end @@ -73826,7 +73785,7 @@ bce wzE kqC ioc -fPl +ioc kqC oFp xbM @@ -74262,7 +74221,7 @@ kqC ryJ end kqC -iCf +nBb xbM voO kqC @@ -75105,12 +75064,12 @@ xbM bkQ xbM qNF -qSz +dHD kqC rkp iKy kqC -utG +dHD xbM jbm xbM @@ -75322,7 +75281,7 @@ kqC qNF efW kqC -bki +qNF xRI iXq xRI @@ -75733,11 +75692,11 @@ ioc ioc ioc qNF -xRI -xRI -xRI nAK xbM +xbM +xbM +xbM jET xbM xbM @@ -75748,12 +75707,12 @@ elO hZR bQM hZR -jvi +iCf rzp vds vds vds -elO +rLJ jvi duF jTN @@ -75945,9 +75904,9 @@ kqC ecd kqC kqC -cRB -end -kqC +dHD +xbM +xbM pHx xbM eNa @@ -76159,8 +76118,8 @@ vRA kqC fLb ayW -kqC -dHD +xbM +xbM xbM rYK kqC @@ -76172,7 +76131,7 @@ end wzE bQM hZR -jvi +qSz dHD eNa rwK @@ -76371,8 +76330,8 @@ arl oFI kCT opj -kqC -dHD +xRI +nAK xbM fHo kqC @@ -77444,7 +77403,7 @@ end kqC wzE pah -kwL +vNQ xbM iCN qOq @@ -77655,14 +77614,14 @@ vds elO ioc duF -koy +hQv gsL mOI xbM qOq xbM xbM -ckx +gFj sNN goG tOM @@ -77875,7 +77834,7 @@ qOq huG xbM pah -mbH +rmJ goG tOM tOM @@ -80855,8 +80814,8 @@ jyo mxQ mxQ mxQ -tVf -oEn +woB +mok mxQ pRx tOM @@ -82119,8 +82078,8 @@ gbf pYB pYB gbf -pWl -ogs +blf +fDW mxQ jjg mxQ @@ -82546,7 +82505,7 @@ gbf iYe bnx siy -nBw +nAV mxQ mxQ vUZ @@ -82759,7 +82718,7 @@ doQ upM vjR nBw -ogs +fDW jjg cBn rxM @@ -82958,7 +82917,7 @@ tOM xpM mxQ mxQ -jzP +vZe ydK jzP tlj @@ -82971,7 +82930,7 @@ taS jEa hPu ydK -pWl +blf mxQ mxQ jLD @@ -84018,7 +83977,7 @@ tOM xpM mxQ mxQ -pYB +fEv uTw pYB pYB @@ -84230,7 +84189,7 @@ tOM rdt rsQ mxQ -gbf +lWy gbf gbf jMv @@ -92042,7 +92001,7 @@ xeO xfb yat xeO -oIg +eXY nGZ nGZ rJW 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..6cda425f51b0 100644 --- a/maps/map_files/FOP_v3_Sciannex/sprinkles/30.repairpanelslz.dmm +++ b/maps/map_files/FOP_v3_Sciannex/sprinkles/30.repairpanelslz.dmm @@ -62,7 +62,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 @@ -170,7 +171,7 @@ }, /area/template_noop) "H" = ( -/obj/structure/reagent_dispensers/oxygentank, +/obj/structure/reagent_dispensers/fueltank/oxygentank, /turf/open/space, /area/template_noop) "I" = ( 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..721ebbc10aed --- /dev/null +++ b/maps/map_files/FOP_v3_Sciannex/standalone/riot_in_progress.dmm @@ -0,0 +1,2269 @@ +//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{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"aE" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"bb" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/obj/structure/platform, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"bl" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"bm" = ( +/obj/item/shard{ + icon_state = "large" + }, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"co" = ( +/obj/structure/prop/almayer/computers/sensor_computer3, +/turf/open/floor/prison{ + icon_state = "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{ + dir = 4; + icon_state = "cell_stripe" + }, +/area/fiorina/station/security) +"cZ" = ( +/obj/structure/bed/chair/comfy{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"do" = ( +/obj/structure/coatrack, +/obj/item/clothing/suit/storage/CMB, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"fX" = ( +/obj/structure/machinery/photocopier{ + pixel_y = 4 + }, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"gl" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"hI" = ( +/obj/item/stack/folding_barricade, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"hY" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"ji" = ( +/obj/item/device/flash, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"jI" = ( +/obj/item/tool/crowbar/red, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"jJ" = ( +/obj/item/clothing/head/helmet/marine/veteran/ua_riot, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"jL" = ( +/obj/structure/barricade/deployable{ + dir = 4 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, +/area/fiorina/lz/near_lzII) +"jW" = ( +/obj/item/frame/table/almayer, +/obj/effect/decal/cleanable/blood/oil/streak, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"ke" = ( +/obj/structure/machinery/vending/security, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"lv" = ( +/turf/open/floor/prison{ + dir = 8; + icon_state = "cell_stripe" + }, +/area/fiorina/station/security) +"lA" = ( +/obj/item/stack/folding_barricade, +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, +/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{ + dir = 8; + icon_state = "cell_stripe" + }, +/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{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"lR" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"lZ" = ( +/obj/item/clothing/under/marine/ua_riot, +/obj/item/weapon/gun/rifle/m16, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"ma" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"nN" = ( +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/lz/near_lzII) +"oi" = ( +/obj/structure/machinery/door/airlock/prison_hatch/autoname{ + locked = 1 + }, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"oE" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"oS" = ( +/obj/structure/barricade/wooden{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"pd" = ( +/obj/item/ammo_magazine/handful/shotgun/beanbag, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"qd" = ( +/obj/structure/bed/chair/comfy{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"qw" = ( +/obj/effect/landmark/survivor_spawner/fiorina_armory_riot_control, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"sj" = ( +/obj/structure/bed/chair/comfy, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"sq" = ( +/turf/open/floor/prison, +/area/fiorina/station/security) +"sA" = ( +/obj/structure/machinery/computer/prisoner, +/turf/open/floor/prison{ + icon_state = "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{ + dir = 8; + icon_state = "red" + }, +/area/fiorina/station/security) +"tv" = ( +/obj/structure/machinery/photocopier{ + pixel_y = 4 + }, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"uh" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/flash, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"vf" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_marked" + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "darkredfull2" + }, +/area/fiorina/station/security) +"xI" = ( +/obj/effect/landmark/survivor_spawner/fiorina_armory_cmb, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"xW" = ( +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"yf" = ( +/obj/item/frame/table/reinforced, +/turf/open/floor/prison{ + icon_state = "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{ + dir = 8; + icon_state = "cell_stripe" + }, +/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{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"zb" = ( +/obj/structure/machinery/light/double/blue, +/obj/item/stack/sheet/metal, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Ai" = ( +/obj/structure/bed/sofa/south/grey/left, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"AD" = ( +/obj/effect/decal/cleanable/blood/xeno{ + icon_state = "xgib3" + }, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Cb" = ( +/obj/structure/barricade/deployable{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"EV" = ( +/obj/item/frame/rack, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Gl" = ( +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"GZ" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + dir = 10; + icon_state = "floor_marked" + }, +/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{ + icon_state = "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{ + icon_state = "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{ + dir = 8; + icon_state = "cell_stripe" + }, +/area/fiorina/lz/near_lzII) +"JR" = ( +/obj/item/ammo_casing, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Kb" = ( +/obj/item/weapon/baton, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"NL" = ( +/obj/structure/platform, +/turf/open/floor/prison{ + dir = 8; + icon_state = "cell_stripe" + }, +/area/fiorina/station/security) +"NN" = ( +/obj/item/ammo_magazine/rifle/m16, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"Ox" = ( +/obj/structure/platform, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"OA" = ( +/obj/item/implanter/compressed, +/obj/structure/safe, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"QF" = ( +/obj/structure/machinery/landinglight/ds2/delaytwo{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Re" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Sd" = ( +/obj/item/poster, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"Sn" = ( +/obj/structure/prop/almayer/computers/sensor_computer1{ + name = "computer" + }, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"UU" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/ammo_magazine/rifle/m16, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Va" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Vb" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"Vd" = ( +/obj/effect/decal/cleanable/blood{ + dir = 4; + icon_state = "gib6" + }, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Ws" = ( +/obj/structure/bed/sofa/south/grey/right, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Wy" = ( +/obj/item/weapon/shield/riot, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"WW" = ( +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "floor_plate" + }, +/area/fiorina/lz/near_lzII) +"XV" = ( +/turf/closed/wall/r_wall/prison_unmeltable, +/area/fiorina/station/security) +"Yt" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, +/area/fiorina/station/security) +"YH" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/item/weapon/gun/energy/taser, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + dir = 8; + icon_state = "red" + }, +/area/fiorina/station/security) +"Zo" = ( +/obj/structure/machinery/vending/cola, +/turf/open/floor/prison{ + icon_state = "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..74d5921e30de 100644 --- a/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm +++ b/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm @@ -848,16 +848,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" @@ -1302,12 +1292,6 @@ icon_state = "darkyellow2" }, /area/ice_colony/surface/engineering/generator) -"aex" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor{ - icon_state = "platebot" - }, -/area/ice_colony/surface/engineering/generator) "aey" = ( /obj/item/lightstick/planted, /turf/open/auto_turf/snow/layer1, @@ -1330,18 +1314,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 @@ -2026,15 +1998,6 @@ 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" - }, -/area/ice_colony/surface/engineering/generator) "agt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -11958,17 +11921,6 @@ icon_state = "whitered" }, /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{ @@ -12365,6 +12317,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 +12360,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) @@ -13693,18 +13639,6 @@ /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 @@ -14542,22 +14476,6 @@ 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" - }, -/area/ice_colony/surface/research) "aQt" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/almayer/generic{ @@ -14607,28 +14525,6 @@ 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" - }, -/area/ice_colony/surface/hangar/alpha) "aQE" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -14687,28 +14583,6 @@ icon_state = "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{ @@ -14949,20 +14823,6 @@ 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 @@ -14984,28 +14844,6 @@ 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, @@ -15239,12 +15077,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" @@ -15283,12 +15115,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" @@ -15521,60 +15347,6 @@ 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" - }, -/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; @@ -15745,38 +15517,6 @@ icon_state = "darkbrown2" }, /area/ice_colony/surface/hangar/alpha) -"aTz" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/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; @@ -16118,15 +15858,6 @@ 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" - }, -/area/ice_colony/surface/hangar/beta) "aUN" = ( /obj/structure/ice/thin/end{ dir = 8 @@ -16578,22 +16309,6 @@ 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" - }, -/area/ice_colony/surface/hangar/alpha) "aWe" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall_f9" @@ -16648,22 +16363,6 @@ 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" - }, -/area/ice_colony/surface/hangar/beta) "aWn" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall_f9" @@ -19675,13 +19374,6 @@ }, /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 @@ -20103,10 +19795,6 @@ icon_state = "bcircuit" }, /area/ice_colony/underground/hangar) -"biw" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating/icefloor, -/area/ice_colony/underground/hangar) "bix" = ( /obj/structure/closet/secure_closet/engineering_welding, /turf/open/floor/plating/icefloor, @@ -20399,15 +20087,6 @@ }, /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) @@ -23726,18 +23405,6 @@ /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; @@ -23958,10 +23625,6 @@ "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" @@ -24465,13 +24128,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 +24156,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" = ( @@ -24837,15 +24500,6 @@ 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, -/area/ice_colony/underground/engineering/substation) "bwE" = ( /obj/structure/ice/thin/end, /turf/open/ice, @@ -24965,16 +24619,6 @@ icon_state = "darkgreen2" }, /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 @@ -25177,6 +24821,7 @@ dir = 1 }, /obj/structure/surface/rack, +/obj/item/fuel_cell, /turf/open/floor/plating, /area/ice_colony/underground/maintenance/engineering) "bxJ" = ( @@ -28105,17 +27750,6 @@ icon_state = "darkpurple2" }, /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) @@ -34485,6 +34119,23 @@ "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 @@ -34494,22 +34145,53 @@ icon_state = "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) +"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{ dir = 5; icon_state = "darkyellow2" }, /area/ice_colony/surface/tcomms) +"doO" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor{ + icon_state = "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, @@ -34526,6 +34208,17 @@ icon_state = "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 @@ -34542,6 +34235,14 @@ /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, @@ -34564,6 +34265,28 @@ icon_state = "darkyellow2" }, /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 @@ -34613,6 +34336,15 @@ icon_state = "darkred2" }, /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{ @@ -34629,9 +34361,35 @@ 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{ + icon_state = "dark2" + }, +/area/ice_colony/surface/research) "hAX" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/floor/plating, @@ -34651,6 +34409,17 @@ icon_state = "warnplate" }, /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{ + dir = 8; + icon_state = "vault" + }, +/area/ice_colony/surface/storage_unit/research) "iBu" = ( /obj/structure/surface/table/reinforced, /obj/item/paper/research_notes, @@ -34669,6 +34438,16 @@ /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{ + dir = 8; + icon_state = "vault" + }, +/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 +34456,16 @@ }, /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{ + icon_state = "dark2" + }, +/area/ice_colony/underground/storage/highsec) "jtr" = ( /turf/closed/wall, /area/ice_colony/exterior/surface/cliff) @@ -34695,6 +34484,18 @@ icon_state = "darkbrown2" }, /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, /obj/structure/machinery/computer/shuttle_control/dropship2, @@ -34712,6 +34513,17 @@ icon_state = "warnplate" }, /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{ + icon_state = "dark2" + }, +/area/ice_colony/underground/engineering/substation) "kKZ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, @@ -34727,6 +34539,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; @@ -34746,9 +34571,21 @@ "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 @@ -34770,6 +34607,12 @@ icon_state = "darkbrown2" }, /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" @@ -34797,9 +34640,26 @@ /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; @@ -34821,9 +34681,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, @@ -34844,6 +34714,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{ @@ -34864,6 +34754,15 @@ /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) @@ -34920,6 +34819,12 @@ "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{ @@ -34974,6 +34879,13 @@ "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{ @@ -35069,6 +34981,10 @@ /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; @@ -35080,6 +34996,17 @@ /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{ + dir = 8; + icon_state = "vault" + }, +/area/ice_colony/surface/storage_unit/telecomms) "xkk" = ( /obj/effect/landmark/queen_spawn, /turf/open/floor/icefloor{ @@ -35094,11 +35021,36 @@ icon_state = "darkyellow2" }, /area/ice_colony/surface/tcomms) +"xyz" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "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, @@ -39646,15 +39598,15 @@ aaI aaI aaI abD -adm +fgp abD adY abD -aeC +chE abD adY abD -adm +fgp abD adY abD @@ -43876,15 +43828,15 @@ abE abF abF abD -adm +fgp abD adY abD -adm +fgp abD adY abD -adm +fgp abD adY abD @@ -49989,7 +49941,7 @@ bDE bEz bFc bFc -bGA +iZF bHn bHn bIJ @@ -51344,11 +51296,11 @@ aZW aZW aZG aZG -bgR +hwC aZG aZG aZG -bgR +hwC aZG aZG aZG @@ -52201,7 +52153,7 @@ big aZW aZW aZW -bjz +drG bgH bgH bkE @@ -53044,9 +52996,9 @@ bht aZW aZW beB -biw -biw -biw +poh +poh +poh aZG bgH bgH @@ -55302,7 +55254,7 @@ aZW aZW bjf aZG -bgR +hwC aZG beB bkt @@ -55529,7 +55481,7 @@ aLN aLN aLN aLN -aQm +hxr aLN aLN aLN @@ -58910,7 +58862,7 @@ aKr aKr aKR aKR -aNV +ilp auw auw auw @@ -69706,11 +69658,11 @@ box box bqF bnk -buh -buh -bvD -buh -buh +qKs +qKs +cNY +qKs +qKs bqP brt bsf @@ -70270,11 +70222,11 @@ box box bqF btA -buj +ezC buj buj bui -bwA +etX btz brt bsf @@ -70551,12 +70503,12 @@ boQ boQ boQ boQ -btB +krs buk buk bvE bui -bwA +etX btz brt bsf @@ -70838,7 +70790,7 @@ bul buj bvF bui -bwB +hrs btz bxG bsf @@ -71121,7 +71073,7 @@ buj bvG buk buk -bwZ +rxJ bxH brZ brZ @@ -71405,7 +71357,7 @@ bwg bwg btz bxI -bse +qPo bsf brt byc @@ -77815,7 +77767,7 @@ aRy aRy aRy aUh -aSi +oNg aVy aWb aSf @@ -78089,17 +78041,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 +78323,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 +78605,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 +78895,7 @@ aRy aRy aRy aUh -aSi +oNg aVy aWe aPH @@ -81103,16 +81055,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 +81337,7 @@ adj adj adj aeh -aex +doO aeU afq aeU @@ -81394,7 +81346,7 @@ agt aeU afq aeU -aex +doO aeh aeI aeI @@ -81670,10 +81622,10 @@ aei agw aeW afs -aex -aex -ags -aex +doO +doO +xyz +doO ahm afu aix @@ -83173,7 +83125,7 @@ aRE aRE aRE aUn -aSr +cBQ aVD aWk aPT @@ -83447,17 +83399,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 +83681,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 +83963,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 +84253,7 @@ aRE aRE aRE aUn -aSr +cBQ aVD aWn aPT @@ -87654,7 +87606,7 @@ amm aFE aFE aFE -aHB +iUo aFE aFE aky @@ -89351,7 +89303,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 b43c34586c5c..7ff89252a916 100644 --- a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm +++ b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm @@ -6021,9 +6021,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{ @@ -6032,9 +6030,7 @@ /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{ @@ -6159,9 +6155,7 @@ 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, @@ -6173,15 +6167,11 @@ }, /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{ @@ -6228,9 +6218,7 @@ /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) "aWb" = ( /obj/structure/foamed_metal, @@ -6310,18 +6298,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{ @@ -6598,17 +6582,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{ @@ -6950,9 +6930,7 @@ /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, @@ -7057,6 +7035,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{ + dir = 10; + icon_state = "yellow" + }, +/area/shiva/interior/garage) "bwJ" = ( /turf/open/floor/shiva{ dir = 4; @@ -7383,9 +7372,7 @@ /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, @@ -7582,9 +7569,7 @@ /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, @@ -7621,9 +7606,7 @@ /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, @@ -7773,9 +7756,7 @@ /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{ @@ -9233,10 +9214,6 @@ "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{ @@ -9781,9 +9758,7 @@ /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{ @@ -10124,6 +10099,12 @@ icon_state = "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 @@ -10135,6 +10116,14 @@ icon_state = "yellow" }, /area/shiva/interior/lz2_habs) +"ffo" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/shiva{ + icon_state = "yellow" + }, +/area/shiva/interior/garage) "ffw" = ( /obj/effect/landmark/xeno_spawn, /turf/open/floor/shiva{ @@ -10321,9 +10310,7 @@ 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) "fpF" = ( /obj/structure/stairs/perspective/ice{ @@ -10946,9 +10933,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "fXr" = ( /obj/item/lightstick/red/spoke/planted{ @@ -12036,10 +12021,6 @@ icon_state = "wred" }, /area/shiva/interior/colony/medseceng) -"hgx" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating, -/area/shiva/interior/colony/medseceng) "hgI" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/auto_turf/snow/layer2, @@ -15883,13 +15864,6 @@ icon_state = "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, @@ -18199,6 +18173,10 @@ }, /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, @@ -18454,6 +18432,13 @@ /obj/structure/machinery/space_heater, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/warehouse/caves) +"nED" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "yellowfull" + }, +/area/shiva/interior/lz2_habs) "nEH" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/decal/warning_stripes{ @@ -18552,6 +18537,12 @@ }, /turf/open/floor/wood, /area/shiva/interior/bar) +"nJu" = ( +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/shiva{ + icon_state = "yellow" + }, +/area/shiva/interior/garage) "nKc" = ( /obj/structure/machinery/door/airlock/almayer/medical/colony{ dir = 1; @@ -19339,6 +19330,13 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) +"oDJ" = ( +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "yellow" + }, +/area/shiva/interior/garage) "oDM" = ( /turf/open/floor/shiva{ dir = 10; @@ -22149,12 +22147,6 @@ /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{ @@ -22242,9 +22234,7 @@ /obj/structure/machinery/light{ 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) "rNO" = ( /obj/structure/prop/ice_colony/soil_net, @@ -22279,9 +22269,7 @@ /obj/structure/machinery/light{ 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) "rRb" = ( /obj/structure/surface/rack, @@ -26366,9 +26354,7 @@ /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, @@ -27299,6 +27285,12 @@ /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{ + dir = 1 + }, +/area/shiva/interior/garage) "xdT" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, @@ -27561,9 +27553,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{ @@ -37113,7 +37103,7 @@ puZ puZ puZ anc -kTN +nED mCn uRi xQJ @@ -37437,7 +37427,7 @@ puZ puZ puZ anc -kTN +nED mCn cce xQJ @@ -37761,7 +37751,7 @@ puZ puZ puZ anc -kTN +nED mCn cce xQJ @@ -43684,7 +43674,7 @@ tHd tHd jMf tHd -jMf +ffg tHd jMf ofw @@ -45675,7 +45665,7 @@ kyD tHd pDr tHd -dYw +kyD kyD kyD kyD @@ -45837,7 +45827,7 @@ tHd kyD pDr kyD -dYw +kyD kyD kyD kyD @@ -53228,7 +53218,7 @@ ver ver ver fEO -oDM +bws ktd bFg bIV @@ -53390,7 +53380,7 @@ ver ver ver ver -pSD +ffo ktd cZk bIV @@ -54200,7 +54190,7 @@ aAh ver ver ver -pSD +nJu ktd cZk bFg @@ -54362,7 +54352,7 @@ ver ver ver pNf -aCA +oDJ ktd gJo lTc @@ -55003,11 +54993,11 @@ oQl oQl oQl ktd -rHQ +xdk tXd aAh pSD -rHQ +xdk ktd oQl oQl @@ -55165,11 +55155,11 @@ oQl oQl oQl ktd -rHQ +xdk ush vUL aCA -rHQ +xdk ktd oQl oQl @@ -55328,9 +55318,9 @@ oQl oQl ktd ktd -rHQ -rHQ -rHQ +xdk +xdk +xdk ktd ktd oQl @@ -58347,16 +58337,16 @@ acT qDT eAZ acT -hgx +npM cso agh -hgx -hgx -hgx -hgx +npM +npM +npM +npM agh cso -hgx +npM acT aii agh @@ -58509,7 +58499,7 @@ aDn eAZ eAZ aDn -hgx +npM cso agh cso @@ -58518,7 +58508,7 @@ cso cso agh cso -hgx +npM acT acT aii @@ -58674,10 +58664,10 @@ aek eXL cso agh -hgx -hgx -hgx -hgx +npM +npM +npM +npM agh cso qdd 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 100% 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 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 100% 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 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..15ec0c4e099d --- /dev/null +++ b/maps/map_files/Ice_Colony_v3/standalone/panic_room_hold.dmm @@ -0,0 +1,2547 @@ +//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{ + icon_state = "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{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"bI" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin, +/turf/open/floor/shiva{ + dir = 1 + }, +/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{ + icon_state = "floor3" + }, +/area/shiva/interior/bar) +"cv" = ( +/obj/structure/machinery/alarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"cL" = ( +/obj/item/prop/colony/folded_bedroll, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"cO" = ( +/turf/open/floor/shiva{ + dir = 6; + icon_state = "multi_tiles" + }, +/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{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"dg" = ( +/obj/structure/barricade/metal{ + dir = 1; + health = 210 + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"do" = ( +/obj/effect/spawner/gibspawner/xeno, +/turf/open/floor/shiva{ + icon_state = "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{ + dir = 8; + icon_state = "redfull" + }, +/area/shiva/interior/colony/s_admin) +"dF" = ( +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"eO" = ( +/obj/structure/barricade/wooden{ + dir = 1 + }, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"eZ" = ( +/turf/open/floor/shiva{ + dir = 8; + icon_state = "redfull" + }, +/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{ + icon_state = "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{ + dir = 6; + icon_state = "multi_tiles" + }, +/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{ + dir = 6; + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"gf" = ( +/obj/structure/closet/crate/freezer, +/turf/open/floor/shiva{ + icon_state = "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{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"gk" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/plating{ + icon_state = "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{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"gB" = ( +/obj/structure/surface/table, +/obj/item/weapon/gun/rifle/m16, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"gL" = ( +/obj/structure/bed/bedroll, +/turf/open/floor/shiva{ + icon_state = "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{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"gR" = ( +/obj/item/stack/rods, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"hN" = ( +/obj/item/ammo_casing, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"iF" = ( +/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, +/turf/open/floor/shiva{ + icon_state = "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{ + icon_state = "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{ + dir = 8; + icon_state = "redfull" + }, +/area/shiva/interior/colony/s_admin) +"js" = ( +/obj/item/stack/rods, +/turf/open/floor/shiva{ + dir = 10; + icon_state = "green" + }, +/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{ + dir = 1 + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"kT" = ( +/obj/item/stack/folding_barricade, +/turf/open/floor/shiva{ + icon_state = "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{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"lq" = ( +/obj/item/ammo_magazine/rifle{ + current_rounds = 0 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"lP" = ( +/obj/effect/landmark/corpsespawner/wygoon, +/obj/effect/decal/cleanable/blood{ + layer = 3 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/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{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"mC" = ( +/obj/structure/machinery/power/apc{ + dir = 8; + start_charge = 0 + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"mI" = ( +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/floor/shiva{ + icon_state = "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{ + icon_state = "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{ + dir = 1 + }, +/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{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"oH" = ( +/obj/structure/machinery/light/double, +/turf/open/floor/shiva{ + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"oT" = ( +/obj/item/shard{ + icon_state = "large" + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/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{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"pz" = ( +/obj/item/weapon/gun/boltaction, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "redfull" + }, +/area/shiva/interior/colony/s_admin) +"pC" = ( +/obj/structure/machinery/disposal, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"pG" = ( +/obj/structure/filingcabinet, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/shiva{ + icon_state = "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{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"pV" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/shiva/interior/colony/s_admin) +"qT" = ( +/obj/structure/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"qU" = ( +/obj/effect/landmark/corpsespawner/scientist, +/turf/open/floor/shiva{ + icon_state = "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{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"rM" = ( +/obj/structure/barricade/wooden{ + dir = 1 + }, +/turf/open/floor/shiva{ + icon_state = "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{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"sq" = ( +/obj/structure/machinery/faxmachine, +/turf/open/floor/shiva{ + icon_state = "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{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"sZ" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"ti" = ( +/obj/effect/decal/cleanable/blood/gibs/xeno, +/turf/open/floor/plating{ + icon_state = "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{ + dir = 1 + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"tG" = ( +/obj/structure/janitorialcart, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "green" + }, +/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{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"ug" = ( +/obj/effect/decal/cleanable/blood/drip{ + icon_state = "3" + }, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"uh" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/item/ammo_casing, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"ul" = ( +/obj/item/ammo_magazine/rifle/boltaction, +/turf/open/floor/shiva{ + icon_state = "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{ + dir = 6; + icon_state = "multi_tiles" + }, +/area/shiva/interior/bar) +"uE" = ( +/obj/structure/machinery/door_control{ + id = "north_panicroom"; + pixel_y = 30 + }, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"uJ" = ( +/obj/item/stack/rods, +/turf/open/floor/shiva{ + dir = 1 + }, +/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{ + dir = 1 + }, +/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{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"uR" = ( +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"vn" = ( +/obj/effect/decal/remains/xeno, +/turf/open/floor/shiva{ + icon_state = "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{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"vs" = ( +/turf/open/floor/shiva{ + icon_state = "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{ + dir = 6; + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"wH" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/shiva/interior/colony/s_admin) +"wM" = ( +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_y = 5 + }, +/turf/open/floor/shiva{ + icon_state = "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{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"wW" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/shiva{ + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"wX" = ( +/turf/open/floor/shiva{ + dir = 8; + icon_state = "multi_tiles" + }, +/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{ + icon_state = "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{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"xZ" = ( +/obj/item/storage/belt/marine, +/turf/open/floor/shiva{ + icon_state = "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{ + dir = 8; + icon_state = "redfull" + }, +/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{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"yi" = ( +/obj/item/trash/wy_chips_pepper, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"yo" = ( +/obj/structure/machinery/disposal, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"yq" = ( +/obj/effect/decal/cleanable/blood{ + layer = 3 + }, +/obj/effect/decal/remains/human, +/turf/open/floor/shiva{ + icon_state = "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{ + icon_state = "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{ + dir = 8; + icon_state = "redfull" + }, +/area/shiva/interior/colony/s_admin) +"zc" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor/shiva{ + dir = 1 + }, +/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{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"zp" = ( +/obj/effect/decal/cleanable/blood/oil/streak, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"zu" = ( +/obj/structure/machinery/light/double, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"zw" = ( +/obj/item/ammo_casing, +/turf/open/floor/shiva{ + dir = 1 + }, +/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{ + dir = 1 + }, +/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{ + dir = 8; + icon_state = "redfull" + }, +/area/shiva/interior/colony/s_admin) +"AC" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"AY" = ( +/obj/structure/flora/pottedplant, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"AZ" = ( +/turf/open/floor/plating{ + icon_state = "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{ + icon_state = "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{ + dir = 1 + }, +/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{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"BD" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = -11; + pixel_y = 20 + }, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/bar) +"BQ" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "gib6" + }, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "multi_tiles" + }, +/area/shiva/interior/bar) +"BU" = ( +/obj/effect/landmark/survivor_spawner/shivas_panic_room_civ, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Cc" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/shiva/interior/colony/s_admin) +"Cd" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/landmark/good_item, +/turf/open/floor/shiva{ + icon_state = "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{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"Cx" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"CZ" = ( +/obj/item/ammo_casing, +/turf/open/floor/shiva{ + icon_state = "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{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Dl" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Dx" = ( +/obj/structure/machinery/light/double, +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"DB" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"DU" = ( +/obj/structure/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"DW" = ( +/obj/structure/machinery/vending/cigarette/colony, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"DY" = ( +/obj/item/trash/burger, +/turf/open/floor/shiva{ + icon_state = "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{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"Fa" = ( +/obj/effect/spawner/gibspawner/human, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/shiva/interior/colony/s_admin) +"Fc" = ( +/obj/structure/surface/table, +/obj/item/ammo_magazine/rifle/ar10, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"Ff" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating{ + icon_state = "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{ + icon_state = "radiator_tile" + }, +/area/shiva/interior/bar) +"Fp" = ( +/obj/structure/bed/chair/office/dark, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Fx" = ( +/obj/structure/surface/table, +/obj/structure/prop/ice_colony/hula_girl, +/turf/open/floor/shiva{ + icon_state = "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{ + icon_state = "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{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"GQ" = ( +/obj/effect/decal/cleanable/blood/xeno{ + icon_state = "xgibhead" + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"He" = ( +/obj/item/stool, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Hf" = ( +/obj/structure/closet/secure_closet/security, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"Hp" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"Hx" = ( +/turf/open/floor/shiva{ + dir = 1 + }, +/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{ + dir = 1 + }, +/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{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"Jp" = ( +/obj/item/ammo_magazine/rifle/extended{ + current_rounds = 0 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"Jv" = ( +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"Jx" = ( +/turf/open/floor/shiva{ + dir = 8; + icon_state = "multi_tiles" + }, +/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{ + icon_state = "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{ + dir = 8; + icon_state = "redfull" + }, +/area/shiva/interior/colony/s_admin) +"Kb" = ( +/obj/structure/machinery/light/double, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/botany) +"Ko" = ( +/obj/structure/bed/chair, +/obj/item/ammo_casing, +/turf/open/floor/shiva{ + icon_state = "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{ + dir = 1 + }, +/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{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"Ld" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor/shiva{ + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"Lh" = ( +/obj/structure/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/shiva{ + icon_state = "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{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Lu" = ( +/obj/structure/machinery/vending/cigarette/colony, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"LE" = ( +/turf/open/floor/shiva{ + dir = 6; + icon_state = "multi_tiles" + }, +/area/shiva/interior/bar) +"LF" = ( +/obj/effect/decal/cleanable/blood{ + layer = 3 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"LU" = ( +/turf/open/floor/shiva{ + icon_state = "snow_mat" + }, +/area/shiva/interior/colony/botany) +"Mi" = ( +/obj/structure/surface/table, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/shiva{ + icon_state = "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{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"ML" = ( +/obj/item/stack/sheet/wood, +/turf/open/floor/plating{ + icon_state = "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{ + dir = 8; + icon_state = "redfull" + }, +/area/shiva/interior/colony/s_admin) +"Nq" = ( +/turf/open/floor/shiva{ + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"Nt" = ( +/obj/effect/decal/cleanable/blood/xeno{ + icon_state = "xgib6" + }, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"Nu" = ( +/obj/effect/landmark/survivor_spawner/shivas_panic_room_doc, +/turf/open/floor/shiva{ + icon_state = "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{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"Py" = ( +/obj/item/trash/kepler, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"PG" = ( +/turf/open/floor/shiva{ + dir = 4; + icon_state = "snow_mat" + }, +/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{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"PV" = ( +/obj/structure/bed/bedroll, +/obj/effect/landmark/survivor_spawner/shivas_panic_room_sci, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Qh" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "multi_tiles" + }, +/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{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Ru" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"Ry" = ( +/obj/item/tool/mop{ + pixel_x = -10 + }, +/turf/open/floor/shiva{ + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"RD" = ( +/obj/structure/bed/chair/wood/normal, +/turf/open/floor/shiva{ + icon_state = "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{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"RP" = ( +/turf/open/floor/shiva{ + dir = 10; + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"RQ" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"RS" = ( +/obj/structure/bed/chair/office/light{ + dir = 8 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/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{ + icon_state = "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{ + dir = 6; + icon_state = "green" + }, +/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{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Td" = ( +/obj/item/reagent_container/food/drinks/cans/waterbottle, +/obj/item/ammo_casing, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"Tj" = ( +/obj/structure/machinery/disposal/broken, +/turf/open/floor/shiva{ + icon_state = "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{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"TG" = ( +/obj/item/prop/colony/folded_bedroll, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "redfull" + }, +/area/shiva/interior/colony/s_admin) +"TI" = ( +/obj/item/ammo_casing, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "multi_tiles" + }, +/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{ + icon_state = "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{ + dir = 6; + icon_state = "multi_tiles" + }, +/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{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"UW" = ( +/obj/structure/machinery/light/double, +/turf/open/floor/shiva{ + dir = 10; + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"Vb" = ( +/obj/item/bodybag, +/turf/open/floor/shiva{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + dir = 1 + }, +/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{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"Wj" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/shiva{ + icon_state = "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{ + dir = 6; + icon_state = "multi_tiles" + }, +/area/shiva/interior/bar) +"WT" = ( +/obj/item/frame/table/wood, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/shiva/interior/colony/s_admin) +"Xt" = ( +/obj/structure/flora/pottedplant, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Xu" = ( +/obj/effect/spawner/gibspawner/xeno, +/turf/open/floor/plating{ + icon_state = "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{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"YD" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/cameras{ + dir = 1 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"YS" = ( +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/floor/shiva{ + icon_state = "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{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"Zi" = ( +/obj/item/weapon/gun/pistol/holdout, +/obj/item/ammo_magazine/pistol/holdout, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "multi_tiles" + }, +/area/shiva/interior/bar) +"Zl" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/shiva/interior/colony/s_admin) +"ZD" = ( +/obj/item/ammo_magazine/rifle/m16, +/turf/open/floor/shiva{ + icon_state = "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 653416320eac..e29ebb9280b9 100644 --- a/maps/map_files/Kutjevo/Kutjevo.dmm +++ b/maps/map_files/Kutjevo/Kutjevo.dmm @@ -417,20 +417,6 @@ dir = 4 }, /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 @@ -606,15 +592,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) @@ -651,6 +628,16 @@ dir = 1 }, /area/kutjevo/exterior/lz_dunes) +"aRB" = ( +/obj/item/fuel_cell, +/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) "aRS" = ( /obj/structure/bed{ can_buckle = 0; @@ -688,14 +675,13 @@ }, /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) +/area/kutjevo/exterior/construction) "aXU" = ( /obj/structure/barricade/wooden{ dir = 1; @@ -753,11 +739,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) "bcl" = ( /obj/structure/largecrate/random/barrel/red, /turf/open/floor/kutjevo/multi_tiles{ @@ -874,6 +857,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) @@ -935,8 +922,10 @@ /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{ + icon = 'icons/turf/floors/desert_water_toxic.dmi' + }, +/area/kutjevo/interior/complex/botany) "boa" = ( /obj/structure/machinery/light{ dir = 4 @@ -1003,7 +992,9 @@ /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{ + icon_state = "panelscorched" + }, /area/kutjevo/interior/complex/botany/east_tech) "buo" = ( /obj/structure/machinery/power/apc{ @@ -1022,14 +1013,13 @@ /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) +/area/kutjevo/exterior/construction) "bwt" = ( /obj/structure/prop/dam/truck/cargo, /turf/open/floor/kutjevo/tan/multi_tiles{ @@ -1326,9 +1316,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" = ( @@ -1351,11 +1339,8 @@ /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{ @@ -1747,7 +1732,7 @@ /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, @@ -1985,8 +1970,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) @@ -2325,11 +2310,8 @@ /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; @@ -2594,12 +2576,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, @@ -3153,12 +3129,11 @@ /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) +/area/kutjevo/exterior/construction) "ecV" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 9 @@ -3310,6 +3285,13 @@ }, /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{ + dir = 10 + }, +/area/kutjevo/interior/colony_South/power2) "ele" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/kutjevo/tan/multi_tiles, @@ -3401,14 +3383,13 @@ /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) +/area/kutjevo/exterior/construction) "eqJ" = ( /obj/structure/flora/grass/desert/lightgrass_2, /turf/open/auto_turf/sand/layer1, @@ -3628,12 +3609,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 }, @@ -3852,9 +3833,7 @@ }, /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" = ( @@ -4293,7 +4272,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{ @@ -4512,12 +4491,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 @@ -4534,7 +4507,7 @@ /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) @@ -4680,14 +4653,6 @@ /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, @@ -4863,7 +4828,7 @@ /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, @@ -5146,11 +5111,11 @@ /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, @@ -5509,14 +5474,10 @@ /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' +/turf/open/floor/plating/kutjevo{ + icon_state = "platingdmg1" }, -/area/kutjevo/interior/oob) +/area/kutjevo/interior/complex/botany/east_tech) "hdQ" = ( /obj/structure/platform/kutjevo/smooth, /turf/open/floor/kutjevo/colors/orange, @@ -5609,6 +5570,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" = ( @@ -5731,13 +5695,10 @@ }, /area/kutjevo/interior/oob) "hwA" = ( -/obj/structure/stairs/perspective/kutjevo{ - dir = 4; - icon_state = "p_stair_full" +/turf/open/floor/plating/kutjevo{ + icon_state = "platingdmg3" }, -/obj/structure/platform/kutjevo/smooth, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/complex/med/locks) +/area/kutjevo/interior/complex/botany/east_tech) "hwO" = ( /obj/structure/machinery/light{ dir = 1 @@ -5905,9 +5866,6 @@ /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, @@ -5950,11 +5908,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 @@ -6150,9 +6105,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) @@ -6173,7 +6125,7 @@ }, /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{ @@ -6217,14 +6169,8 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/Northwest_Colony) "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, @@ -6469,11 +6415,8 @@ /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 @@ -6726,8 +6669,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) @@ -6856,13 +6799,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,6 +6817,10 @@ /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{ @@ -6937,12 +6877,6 @@ dir = 10 }, /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{ @@ -7116,10 +7050,6 @@ dir = 10 }, /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 @@ -7218,6 +7148,20 @@ /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{ + dir = 6 + }, +/area/kutjevo/interior/power) "jGX" = ( /obj/effect/landmark/survivor_spawner, /turf/open/floor/kutjevo/colors, @@ -7487,8 +7431,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, @@ -7656,6 +7600,16 @@ /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, @@ -8022,17 +7976,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; @@ -8156,10 +8103,6 @@ dir = 10 }, /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, @@ -8549,12 +8492,6 @@ }, /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/colony_north) -"lBu" = ( -/obj/structure/machinery/power/terminal{ - dir = 4 - }, -/turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/interior/power) "lBP" = ( /obj/structure/window/framed/kutjevo/reinforced, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -8658,10 +8595,6 @@ dir = 8 }, /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, @@ -8723,9 +8656,6 @@ /turf/open/floor/kutjevo/multi_tiles, /area/kutjevo/exterior/Northwest_Colony) "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, @@ -8922,6 +8852,12 @@ /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{ + dir = 6 + }, +/area/kutjevo/interior/power) "mcZ" = ( /obj/structure/bed/chair{ pixel_y = 8 @@ -9059,11 +8995,10 @@ /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) +/area/kutjevo/interior/complex/botany/east_tech) "mjW" = ( /obj/structure/flora/bush/ausbushes/reedbush, /turf/open/desert/desert_shore/shore_edge1{ @@ -9244,11 +9179,8 @@ /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, @@ -9465,7 +9397,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) @@ -9588,12 +9520,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" = ( @@ -9796,9 +9726,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, @@ -9839,11 +9766,6 @@ dir = 8 }, /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) @@ -9942,7 +9864,7 @@ /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{ @@ -10133,16 +10055,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; @@ -10773,9 +10685,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" = ( @@ -11119,14 +11029,6 @@ dir = 8 }, /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, @@ -11575,12 +11477,6 @@ dir = 6 }, /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 @@ -12057,10 +11953,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, @@ -12473,9 +12365,6 @@ /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{ @@ -12506,11 +12395,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, @@ -12704,6 +12590,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, @@ -12736,15 +12629,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, @@ -13251,9 +13135,6 @@ /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"; @@ -13489,11 +13370,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) "sgc" = ( /turf/open/floor/kutjevo/tan/alt_edge{ dir = 6 @@ -13737,13 +13615,6 @@ /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 @@ -13915,16 +13786,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 @@ -13998,16 +13859,6 @@ }, /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 @@ -14019,13 +13870,6 @@ "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, @@ -14355,6 +14199,12 @@ }, /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{ + dir = 1 + }, +/area/kutjevo/interior/power/comms) "tlN" = ( /turf/closed/wall/kutjevo/colony/reinforced, /area/kutjevo/interior/power/comms) @@ -14592,6 +14442,21 @@ }, /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{ + dir = 6 + }, +/area/kutjevo/interior/power) "tEK" = ( /obj/structure/bed/sofa/vert/grey/bot{ pixel_y = 4 @@ -14603,13 +14468,6 @@ /obj/structure/platform_decoration/kutjevo, /turf/open/floor/mech_bay_recharge_floor, /area/kutjevo/interior/power) -"tEV" = ( -/obj/structure/surface/rack, -/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, @@ -14831,9 +14689,8 @@ /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) @@ -14862,12 +14719,10 @@ /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) +/area/kutjevo/exterior/construction) "uaj" = ( /obj/structure/machinery/light, /turf/open/floor/kutjevo/tan/alt_inner_edge{ @@ -15034,11 +14889,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, @@ -15226,20 +15078,6 @@ }, /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, @@ -15392,12 +15230,6 @@ /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) @@ -15509,11 +15341,8 @@ 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, @@ -15908,11 +15737,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 @@ -15951,19 +15777,6 @@ dir = 4 }, /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 @@ -16040,13 +15853,6 @@ /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 @@ -16734,12 +16540,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) @@ -16825,12 +16625,6 @@ /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 @@ -16987,6 +16781,19 @@ /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{ + dir = 10 + }, +/area/kutjevo/interior/colony_South/power2) "wMw" = ( /obj/structure/blocker/invisible_wall, /turf/open/floor/kutjevo/multi_tiles, @@ -17093,7 +16900,7 @@ /turf/open/gm/river/desert/deep{ icon = 'icons/turf/floors/desert_water_toxic.dmi' }, -/area/kutjevo/interior/oob) +/area/kutjevo/interior/complex/med) "wXd" = ( /turf/closed/wall/kutjevo/rock, /area/kutjevo/interior/colony_South) @@ -17391,7 +17198,11 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/Northwest_Colony) "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" = ( @@ -17533,6 +17344,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"; @@ -17631,9 +17448,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; @@ -23933,13 +23747,13 @@ tWM cRo tlN kfe -dux +tlK boR tXm tWM tXm boR -dux +tlK tlN iaj iaj @@ -24100,13 +23914,13 @@ tWM xZr tlN kfe -dux +tlK vXq kKb tWM tXm boR -dux +tlK tlN iaj iaj @@ -24267,13 +24081,13 @@ tWM wtZ tlN kfe -dux +tlK boR tXm jFB kKb vXq -dux +tlK tlN iaj iaj @@ -24805,15 +24619,15 @@ ich jqt pyp pyp -aHW +pyp uPu vYI vYI vYI uCR -aHW -aHW -aHW +pyp +pyp +pyp aHW rwj rwj @@ -25478,7 +25292,7 @@ cvm hQj hQj hQj -cvm +mcA rwj uZT uZT @@ -25645,7 +25459,7 @@ cvm hQj hQj hQj -cvm +mcA aHW aHW aHW @@ -25812,7 +25626,7 @@ cvm kdY kdY kdY -cvm +tEj rwj muG muG @@ -25973,13 +25787,13 @@ uGd fkP vin pBV -lBu +xGI uBz cvm hQj hQj hQj -cvm +jGo rwj wMw wMw @@ -26146,7 +25960,7 @@ xjY xjY bbL xjY -voy +raV rwj uZT uZT @@ -26308,7 +26122,7 @@ dfY pyp pyp pyp -aHW +pyp yas ddk ddk @@ -26475,7 +26289,7 @@ xpk tQB ePx pBV -sID +ksb vdl xzY xzY @@ -26642,7 +26456,7 @@ nah xXI cTz pBV -qdj +bkn xzY oum hQj @@ -26809,7 +26623,7 @@ qjz niT cTz pBV -qdj +bkn xzY hQj hQj @@ -26976,7 +26790,7 @@ soe gCb cTz pBV -qdj +bkn oKA hQj hQj @@ -32779,7 +32593,7 @@ jwR qgW nAo nIA -rYS +mbS xhV kxW eNf @@ -33419,9 +33233,9 @@ dxF dxF dxF dxF -mxB -mxB -mxB +dxF +dxF +dxF dxF dxF hkO @@ -33586,8 +33400,8 @@ jPt pKP dxF dxF -mxB -mxB +dxF +dxF mhj dxF dxF @@ -33753,10 +33567,10 @@ bjj fpO orL dxF -mxB +dxF mhj fjF -gBl +wff dxF dxF eXm @@ -33917,7 +33731,7 @@ jzl jzl fUL jzl -kYs +lcs jzl jzl eMC @@ -33959,7 +33773,7 @@ kDS wGD mNM xvn -hGM +mNM xms dRj dRj @@ -34917,22 +34731,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 @@ -35084,22 +34898,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 @@ -35243,7 +35057,7 @@ aHl lCu oVX jzl -pbY +jzl kBb uTj abS @@ -35251,22 +35065,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 @@ -35410,7 +35224,7 @@ etm lCu oVX jzl -pbY +jzl cZt cDf dvL @@ -35418,22 +35232,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 @@ -35585,22 +35399,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 @@ -35752,22 +35566,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 @@ -36066,8 +35880,8 @@ rlB ryB nsd pfz -gCG -gld +pfz +pfz jhb eCY tOe @@ -36233,8 +36047,8 @@ rlB ryB nsd pfz -jos -gld +pfz +pfz jhb bKi asQ @@ -36400,8 +36214,8 @@ rlB ryB nsd pfz -jos -gld +pfz +pfz jhb eCY ygh @@ -36464,8 +36278,8 @@ vDS mNM xvn dJT -hGM -hGM +mNM +mNM oeb fyD oeb @@ -36567,7 +36381,7 @@ rlB jPW kGU kOD -sxq +wzC xti jhb ayB @@ -36631,7 +36445,7 @@ gqQ vys dRj lok -hGM +mNM qrl nOH fyD @@ -36744,9 +36558,9 @@ dRX dRX dRX jhb -pbY -pbY -pbY +jzl +jzl +jzl jzl lBP jzl @@ -37275,7 +37089,7 @@ jhD oQc oQc oQc -xRh +oQc yir xkk yir @@ -37466,7 +37280,7 @@ kDS nOH xuY xyY -hGM +mNM juH dRj dRj @@ -37633,7 +37447,7 @@ vfd mNM xvn dJT -hGM +mNM wuy mSd dTM @@ -37771,9 +37585,9 @@ xWK xWK xWK jhx -xRh -xRh -xRh +dip +dip +dip dnR lah kHm @@ -37938,9 +37752,9 @@ xWK xWK xWK jhx -nlc +ubR tWv -nlc +ubR eSH stt stt @@ -38105,9 +37919,9 @@ bKH xWK xWK xWK -nlc +ubR tWv -nlc +ubR sPV rQY rQY @@ -38272,9 +38086,9 @@ bKH xWK xWK xWK -xRh -xRh -xRh +dip +dip +dip eVv rQY pxb @@ -38425,9 +38239,9 @@ slF slF slF slF -sOy -kPA -hwA +slF +slF +slF nsF kOo nYz @@ -38445,9 +38259,9 @@ lah sPV rQY rkO -xRh +dip frx -xRh +dip eVv rxr qJx @@ -38456,7 +38270,7 @@ dip wtH wtH tIz -nie +tIz vHL vHL vHL @@ -38465,18 +38279,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 @@ -38592,9 +38406,9 @@ fpJ fpJ pIE wwV -wtu nAy -pxl +nAy +nAy lNt ktq ngX @@ -38612,9 +38426,9 @@ stt eOc rQY epR -mcv +ubR tWv -mcv +ubR sPV rQY rQY @@ -38632,18 +38446,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 @@ -38779,9 +38593,9 @@ rQY rQY rQY epR -mcv +ubR tWv -mcv +ubR sPV rQY rQY @@ -38799,18 +38613,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 @@ -38946,9 +38760,9 @@ rQY rQY rQY tFe -xRh -xRh -xRh +dip +dip +dip eVv rxr pxb @@ -38966,10 +38780,10 @@ hMu hMu wCU wCU -btI -btI -btI -btI +wCU +wCU +wCU +wCU sfz ukd ukd @@ -38977,7 +38791,7 @@ ukd ukd ukd uNJ -jhS +wCU dxF dxF dxF @@ -39138,13 +38952,13 @@ rRl mCd khI mzn -qwg -qwg -qwg -uah -qwg +iiG +iiG +wCU +iiG +iiG ddi -jhS +wCU dxF dxF dxF @@ -39305,13 +39119,13 @@ oJj jyq khI mzn -qwg -qwg -qwg -qwg -qwg +iiG +wCU +wCU +wCU +iiG ddi -jhS +wCU dxF dxF dxF @@ -39472,13 +39286,13 @@ iNF jyq khI mzn -qwg -qwg -qwg -qwg -qwg +iiG +iiG +wCU +iiG +iiG ddi -jhS +wCU dxF dxF dxF @@ -39639,13 +39453,13 @@ nbu jKN khI mzn -qwg -qwg -qwg -qwg -qwg +iiG +iiG +iiG +iiG +iiG ddi -jhS +wCU dxF dxF dxF @@ -39779,13 +39593,13 @@ dip dip szC vdV -szC -szC -sOT +lah +lah +lah dip -jxR -jxR -jxR +jmP +jmP +jmP dip gQr hMu @@ -39804,15 +39618,15 @@ nbu nbu nbu jKN -btI +wCU vkV bQY -qwg -qwg -qwg +iiG +iiG +iiG iIz qLa -jhS +wCU dxF dxF dxF @@ -39946,23 +39760,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 @@ -39971,15 +39785,15 @@ nbu eBH nbu hYE -btI -btI +wCU +wCU mzn -qwg -qwg -uah +iiG +wCU +iiG ddi -jhS -jhS +wCU +wCU dxF dxF dxF @@ -40113,16 +39927,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 @@ -40141,11 +39955,11 @@ jKN jKN khI mzn -qwg -qwg -qwg +wCU +wCU +wCU ddi -jhS +wCU dxF dxF dxF @@ -40283,11 +40097,11 @@ dip dip dip dip -dip rIL rIL -mMf rIL +mMf +mMf rIL rIL rIL @@ -40298,7 +40112,7 @@ gQr gQr iGz dnF -gQr +rIL rMp kGM nbu @@ -40308,11 +40122,11 @@ jKN jKN khI mzn -qwg -qwg -qwg +iiG +wCU +iiG ddi -jhS +wCU dxF dxF dxF @@ -40448,8 +40262,14 @@ oNG rIL rIL rIL -mMf -mMf +rIL +rIL +rIL +rIL +rIL +rIL +rIL +rIL rIL rIL rIL @@ -40458,14 +40278,8 @@ gQr gQr gQr gQr -gQr -gQr -gQr -gQr -gQr -gQr -gQr -gQr +mMf +rIL hMu nbu kAW @@ -40475,11 +40289,11 @@ aHC jKN khI mzn -qwg -qwg -qwg +iiG +iiG +iiG ddi -jhS +wCU dxF dxF dxF @@ -40614,11 +40428,11 @@ rIL mMf rIL mMf -jhS -kVJ -kVJ -kVJ -jhS +rIL +rIL +rIL +rIL +rIL jhS jhS jhS @@ -40640,13 +40454,13 @@ hUy yaI hMu hMu -btI +wCU vkV bQY -qwg +iiG iIz hLi -jhS +wCU dxF dxF dxF @@ -40777,15 +40591,15 @@ fyF sTU bDX qaI -oNG -oNG +rIL +rIL fAT dnF -jhS -gtL -rzb -vGx -jhS +btI +rIL +rIL +rIL +mMf jhS gtL rzb @@ -40807,13 +40621,13 @@ oNK dkE dkE iBd -btI -jhS +wCU +wCU vkV bcb hLi -jhS -jhS +wCU +wCU dxF dxF dxF @@ -40946,13 +40760,13 @@ fyF qaI oNG oNG -oNG -oNG -jhS -hws -qwg -vcY -jhS +mMf +rIL +mMf +rIL +cXL +rIL +hwA jhS hws qwg @@ -40974,12 +40788,12 @@ tfx dkE tyJ eyk -btI -jhS -jhS -jhS -jhS -jhS +wCU +wCU +wCU +wCU +wCU +wCU dxF dxF dxF @@ -41114,12 +40928,12 @@ qaI oNG oNG oNG -oNG -jhS -cTG -fRZ -cQt -jhS +hMu +hMu +rIL +rIL +mMf +hMu jhS cTG fRZ @@ -41141,8 +40955,8 @@ dkE ugQ fjX peo -btI -jhS +wCU +wCU dxF dxF dxF @@ -41282,11 +41096,11 @@ rfE rdm rdm rdm -jhS -kVJ -kVJ -kVJ -jhS +hMu +cXL +rIL +hdF +hMu jhS kVJ kVJ @@ -41308,8 +41122,8 @@ cXL iiN duP hMu -jhS -jhS +wCU +wCU dxF dxF dxF @@ -41426,11 +41240,11 @@ mpW mpW pmv pmv -jhS -mcv -mcv -mcv -jhS +lPR +hPf +hPf +hPf +lPR feR xWK jhx @@ -41450,9 +41264,9 @@ rdm rdm fTk qIN -fDY fTk -jkp +fTk +fTk lkp foE fDY @@ -41468,15 +41282,15 @@ aFc fDY fTk dUy -jhS +nTw rzT aRS cXL cXL aRS hMu -jhS -jhS +wCU +wCU dxF dxF dxF @@ -41592,13 +41406,13 @@ beR jEN jEN dQD -jhS -jhS +lPR +lPR bvT -qwg +uah ecO -jhS -jhS +lPR +lPR xrv eTT xWK @@ -41617,9 +41431,9 @@ rdm rdm rsM rRC -aoJ -tnx -iiG +mLw +mLw +mLw fTk qgI aoJ @@ -41642,8 +41456,8 @@ wcl rUM nUV nUV -jhS -jhS +wCU +wCU dxF dxF dxF @@ -41759,13 +41573,13 @@ bKH bKH bKH bKH -mcv +hPf aWR -qwg -qwg +uah +lPR uah aWR -mcv +hPf cHb fyF xWK @@ -41801,16 +41615,16 @@ vXK evr fTk fTk -oSx -eaB +fTk +qGx qGx qGx qGx qGx rdm rdm -jhS -jhS +wCU +wCU dxF dxF dxF @@ -41926,13 +41740,13 @@ xWK xWK jhx xWK -mcv -qwg -qwg -qwg -qwg -qwg -mcv +hPf +uah +lPR +lPR +lPR +uah +hPf fyF lxc xWK @@ -41968,13 +41782,12 @@ klE klE ngK klE -azI -rgh +ngK +qGx qGx qGx qGx qGx -jhS jhS jhS jhS @@ -42027,6 +41840,7 @@ dxF dxF dxF dxF +dxF ybY "} (145,1,1) = {" @@ -42093,13 +41907,13 @@ xWK xWK bKH xWK -mcv +hPf epV -qwg -qwg -qwg +uah +lPR +uah epV -mcv +hPf cUm cUm xWK @@ -42135,8 +41949,8 @@ klE qGx qGx qGx -uHJ -uHJ +qGx +qGx qGx qGx eQW @@ -42144,7 +41958,7 @@ qGx qhV kma jhS -jhS +dxF dxF dxF dxF @@ -42260,13 +42074,13 @@ bKH xWK xWK xWK -jhS -jhS +lPR +lPR bvT -qwg +uah ecO -jhS -jhS +lPR +lPR cUm eTT hpB @@ -42302,8 +42116,8 @@ qGx duw mLw xVZ -fMi -fMi +xVZ +mLw mLw cpg fqm @@ -42311,7 +42125,7 @@ mLw qhV kma jhS -jhS +dxF dxF dxF dxF @@ -42428,11 +42242,11 @@ bKH xWK xWK xWK -jhS -mcv -mcv -mcv -jhS +lPR +hPf +hPf +hPf +lPR jhx xWK xWK @@ -42469,8 +42283,8 @@ xVZ xVZ mLw qGx -vwB -vwB +qGx +qGx qGx qGx gNx @@ -42478,7 +42292,7 @@ qGx qhV kma jhS -jhS +dxF dxF dxF dxF @@ -42636,8 +42450,8 @@ qGx mEe slx qGx -uxb -aNj +klE +qGx qGx rHE qGx @@ -42645,7 +42459,7 @@ rHE jhS jhS jhS -jhS +dxF dxF dxF dxF @@ -42803,16 +42617,16 @@ mBG qGx efr qGx -fVA -eaB +shX +qGx acD vSE acD vSE rdm rdm -jhS -jhS +rzh +rzh dxF dxF dxF @@ -42965,7 +42779,7 @@ mcv mcv mcv grR -nEE +aRB shX qGx slx @@ -42978,8 +42792,8 @@ rdm rdm rdm rdm -jhS -jhS +rzh +rzh dxF dxF dxF @@ -43132,7 +42946,7 @@ ouR ouR byw mcv -vnL +wLB fdr eFf slx @@ -43145,8 +42959,8 @@ rdm rdm rdm rdm -jhS -jhS +rzh +rzh dxF dxF mMH @@ -43304,7 +43118,7 @@ grR jeO slx qGx -tEV +ekV rdm rdm rdm @@ -43312,8 +43126,8 @@ rdm rdm rdm rdm -jhS -jhS +dxF +dxF mMH bpj bpj @@ -48088,9 +47902,9 @@ hUk hUk hUk hUk -bnQ -bnQ -bnQ +hUk +hUk +hUk fQx fQx fQx 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 f4b3d26d3e93..3b8e72bf2cee 100644 --- a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm +++ b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm @@ -50,18 +50,6 @@ icon_state = "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, @@ -368,7 +356,7 @@ /area/lv522/outdoors/colony_streets/central_streets) "ajw" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 + dir = 4 }, /turf/open/floor/corsat{ dir = 4; @@ -397,11 +385,13 @@ /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{ + icon_state = "plate" + }, +/area/lv522/atmos/east_reactor) "akl" = ( /obj/structure/barricade/wooden{ dir = 8 @@ -450,19 +440,18 @@ /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, +/obj/structure/machinery/light{ + dir = 1 + }, /turf/open/floor/corsat{ - icon_state = "squares" + icon_state = "plate" }, /area/lv522/atmos/east_reactor) "amC" = ( @@ -577,6 +566,10 @@ }, /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{ @@ -629,11 +622,13 @@ /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{ + icon_state = "plate" + }, +/area/lv522/atmos/north_command_centre) "aqo" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -685,12 +680,13 @@ }, /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{ + icon_state = "floor_plate" + }, +/area/lv522/indoors/lone_buildings/storage_blocks) "arV" = ( /obj/structure/surface/table/almayer, /obj/item/storage/belt/utility, @@ -898,8 +894,8 @@ }, /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, @@ -1013,15 +1009,12 @@ /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 +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/corsat{ + icon_state = "squares" }, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/north_east_street) +/area/lv522/atmos/north_command_centre) "aDs" = ( /obj/item/explosive/mine/active{ dir = 8 @@ -1035,9 +1028,9 @@ /turf/open/floor/plating, /area/shuttle/drop2/lv522) "aDS" = ( +/obj/structure/pipes/vents/pump, /turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" + icon_state = "marked" }, /area/lv522/atmos/east_reactor) "aDZ" = ( @@ -1256,9 +1249,13 @@ /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{ + dir = 4; + icon_state = "whiteyellowfull" }, /area/lv522/oob/w_y_vault) "aJS" = ( @@ -1337,12 +1334,6 @@ icon_state = "blue_plate" }, /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, @@ -1444,15 +1435,6 @@ }, /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, @@ -1785,12 +1767,11 @@ }, /area/lv522/indoors/c_block/mining) "aWX" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/landmark/xeno_spawn, /turf/open/floor/corsat{ - icon_state = "plate" + icon_state = "squares" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/east_reactor/south) "aXa" = ( /turf/open/floor/corsat{ dir = 6; @@ -1809,6 +1790,12 @@ icon_state = "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 @@ -1927,10 +1914,13 @@ }, /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{ + icon_state = "plate" + }, +/area/lv522/atmos/east_reactor/south) "baG" = ( /turf/open/floor/corsat{ dir = 1; @@ -1947,6 +1937,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 @@ -2068,7 +2062,10 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/garage) "bdL" = ( -/obj/structure/platform, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/asphalt/cement{ icon_state = "cement4" }, @@ -2212,35 +2209,12 @@ }, /area/lv522/atmos/east_reactor/north) "bhh" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/closet/crate/freezer{ - layer = 3 +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/floor/corsat{ + dir = 6; + icon_state = "brown" }, -/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) +/area/lv522/atmos/east_reactor/south) "bhD" = ( /obj/structure/platform_decoration{ dir = 1 @@ -2418,6 +2392,9 @@ }, /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{ @@ -2810,9 +2787,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) @@ -2856,11 +2830,14 @@ }, /area/lv522/outdoors/colony_streets/north_east_street) "bCd" = ( -/obj/structure/machinery/light, +/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{ icon_state = "plate" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/east_reactor/south) "bCh" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/prison{ @@ -3413,10 +3390,8 @@ }, /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{ @@ -3465,10 +3440,8 @@ }, /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, @@ -3508,7 +3481,6 @@ /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" @@ -3753,13 +3725,11 @@ }, /area/lv522/indoors/a_block/hallway) "bXl" = ( -/obj/structure/prop/ice_colony/ground_wire{ - dir = 1 - }, +/obj/effect/landmark/corpsespawner/colonist/burst, /turf/open/floor/corsat{ - icon_state = "brown" + icon_state = "plate" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/east_reactor/south) "bXo" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin{ @@ -3823,6 +3793,9 @@ /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 +3812,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" = ( @@ -3950,8 +3929,8 @@ /turf/open/floor/wood/ship, /area/lv522/atmos/way_in_command_centre) "caN" = ( -/obj/structure/pipes/standard/manifold/hidden/green{ - dir = 1 +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 6 }, /turf/open/floor/corsat{ icon_state = "squares" @@ -3977,20 +3956,8 @@ /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{ @@ -4007,8 +3974,9 @@ }, /area/lv522/atmos/east_reactor/north) "cbR" = ( -/obj/structure/platform{ - dir = 4 +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, /turf/open/asphalt/cement{ icon_state = "cement3" @@ -4109,7 +4077,14 @@ /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/east_central_street) "cfd" = ( -/obj/structure/closet/wardrobe/engineering_yellow, +/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{ dir = 4; icon_state = "darkyellowfull2" @@ -4125,15 +4100,13 @@ }, /area/lv522/atmos/east_reactor) "cfv" = ( -/obj/structure/stairs/perspective{ - dir = 5; - icon_state = "p_stair_full" +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 9 }, -/obj/structure/platform_decoration, -/turf/open/asphalt/cement{ - icon_state = "cement4" +/turf/open/floor/corsat{ + icon_state = "brown" }, -/area/lv522/outdoors/colony_streets/north_east_street) +/area/lv522/atmos/north_command_centre) "cfz" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper B-Block - Hydroponics Airlock" @@ -4294,9 +4267,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" = ( @@ -4687,11 +4658,12 @@ }, /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 }, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, +/obj/effect/landmark/corpsespawner/colonist/burst, +/obj/effect/landmark/xeno_spawn, /turf/open/floor/corsat{ icon_state = "plate" }, @@ -4774,6 +4746,23 @@ /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{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/security) "cxo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 @@ -4800,14 +4789,11 @@ }, /area/lv522/indoors/a_block/dorms) "cxE" = ( -/obj/structure/machinery/colony_floodlight{ - layer = 4.3 - }, -/obj/structure/platform{ - dir = 1 +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/corsat{ + icon_state = "plate" }, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/south_east_street) +/area/lv522/atmos/east_reactor/south) "cxK" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/corsat{ @@ -4991,6 +4977,14 @@ icon_state = "darkredfull2" }, /area/lv522/indoors/a_block/kitchen) +"cBU" = ( +/obj/structure/prop/vehicles/crawler{ + icon_state = "crawler_covered_bed" + }, +/turf/open/floor/corsat{ + icon_state = "plate" + }, +/area/lv522/atmos/reactor_garage) "cBV" = ( /obj/effect/decal/cleanable/cobweb2, /turf/open/floor/prison{ @@ -5226,11 +5220,8 @@ }, /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"; @@ -5448,7 +5439,10 @@ "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" = ( @@ -5821,11 +5815,11 @@ }, /area/lv522/oob) "cRN" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" +/obj/structure/largecrate, +/turf/open/asphalt/cement{ + icon_state = "cement3" }, -/area/lv522/atmos/north_command_centre) +/area/lv522/outdoors/colony_streets/north_east_street) "cRT" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -6045,14 +6039,11 @@ }, /area/lv522/indoors/a_block/security) "cWH" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/obj/structure/machinery/light{ - dir = 8 - }, +/obj/structure/window/framed/strata/reinforced, /turf/open/floor/corsat{ - icon_state = "squares" + icon_state = "marked" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/east_reactor/south) "cWL" = ( /turf/open/floor/corsat{ dir = 8; @@ -6132,13 +6123,12 @@ /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, @@ -6309,20 +6299,8 @@ }, /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/medium/leader, /obj/item/clothing/head/helmet/marine/leader{ @@ -6366,8 +6344,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) @@ -6458,7 +6440,7 @@ }, /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" = ( @@ -6735,11 +6717,11 @@ }, /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 @@ -6765,17 +6747,6 @@ /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 @@ -6892,7 +6863,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; @@ -7178,16 +7149,11 @@ icon_state = "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/dark_grey, /area/lv522/landing_zone_forecon/UD6_Tornado) "dqr" = ( /obj/item/weapon/gun/rifle/m41a{ @@ -7208,6 +7174,26 @@ /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{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/security) "drz" = ( /obj/effect/decal/cleanable/blood, /obj/item/tool/hatchet, @@ -7263,13 +7249,12 @@ }, /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{ @@ -7534,7 +7519,9 @@ /area/lv522/indoors/a_block/medical) "dyS" = ( /obj/item/stack/sheet/wood, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, /area/lv522/outdoors/colony_streets/south_street) "dzd" = ( /obj/structure/closet/secure_closet/marshal, @@ -7587,14 +7574,11 @@ }, /area/lv522/atmos/north_command_centre) "dAG" = ( -/obj/structure/pipes/vents/pump, -/obj/structure/machinery/light{ - dir = 8 - }, +/obj/item/stack/sheet/metal, /turf/open/floor/corsat{ - icon_state = "plate" + icon_state = "browncorner" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/east_reactor/south) "dAQ" = ( /obj/structure/platform_decoration{ dir = 1 @@ -8228,6 +8212,9 @@ icon_state = "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"; @@ -8406,8 +8393,8 @@ }, /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 @@ -8691,8 +8678,9 @@ }, /area/lv522/atmos/east_reactor/east) "dXX" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/belt/utility, +/obj/structure/closet/fireaxecabinet{ + pixel_y = 29 + }, /turf/open/floor/prison{ icon_state = "floor_plate" }, @@ -8944,9 +8932,6 @@ icon_state = "browncorner" }, /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, @@ -9038,17 +9023,6 @@ }, /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." @@ -9128,10 +9102,7 @@ /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, @@ -9436,10 +9407,13 @@ }, /area/lv522/atmos/east_reactor) "emt" = ( -/obj/structure/cargo_container/grant/rightmid, +/obj/structure/barricade/handrail{ + dir = 8 + }, +/obj/structure/largecrate/random/barrel/white, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" + dir = 8; + icon_state = "cell_stripe" }, /area/lv522/indoors/lone_buildings/storage_blocks) "emz" = ( @@ -9782,11 +9756,11 @@ /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{ @@ -9868,11 +9842,12 @@ }, /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" @@ -9880,6 +9855,17 @@ /obj/vehicle/train/cargo/engine, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) +"evg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/lv624/fog_blocker/short, +/obj/structure/machinery/power/apc/weak{ + dir = 8 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "greenfull" + }, +/area/lv522/landing_zone_1/ceiling) "evu" = ( /obj/structure/tunnel/maint_tunnel{ pixel_y = 6 @@ -10044,13 +10030,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{ @@ -10092,13 +10076,10 @@ }, /area/lv522/indoors/a_block/admin) "ezj" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor/corsat{ - icon_state = "plate" +/turf/open/asphalt/cement{ + icon_state = "cement12" }, -/area/lv522/atmos/east_reactor/west) +/area/lv522/outdoors/colony_streets/north_east_street) "ezo" = ( /obj/structure/surface/table/almayer, /obj/item/prop/helmetgarb/spacejam_tickets{ @@ -10421,11 +10402,12 @@ }, /area/lv522/indoors/a_block/corpo/glass) "eHp" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/item/stack/sheet/metal, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/corsat{ - icon_state = "squares" + icon_state = "plate" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/east_reactor/south) "eHu" = ( /obj/structure/closet/secure_closet/miner, /turf/open/floor/prison{ @@ -10645,11 +10627,15 @@ }, /area/lv522/indoors/a_block/medical) "eLx" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/structure/machinery/prop/almayer/computer/PC{ + dir = 1; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/corsat{ - icon_state = "marked" + icon_state = "plate" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/east_reactor/south) "eLG" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = -19; @@ -10721,13 +10707,17 @@ }, /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{ @@ -10908,12 +10898,12 @@ /area/lv522/atmos/west_reactor) "eQu" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 9 + dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" +/turf/open/asphalt/cement{ + icon_state = "cement14" }, -/area/lv522/atmos/north_command_centre) +/area/lv522/outdoors/colony_streets/north_east_street) "eQB" = ( /obj/structure/machinery/portable_atmospherics/canister/phoron, /turf/open/floor/corsat{ @@ -10947,12 +10937,11 @@ }, /area/lv522/indoors/a_block/hallway) "eRg" = ( -/obj/structure/prop/turbine, -/obj/structure/prop/turbine_extras/border, +/obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/corsat{ - icon_state = "plate" + icon_state = "marked" }, -/area/lv522/oob) +/area/lv522/atmos/sewer) "eRI" = ( /obj/structure/barricade/deployable{ dir = 8 @@ -10981,10 +10970,9 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/security/glass) "eSy" = ( -/obj/structure/platform{ - dir = 1 +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, -/obj/structure/largecrate/random, /turf/open/floor/plating{ icon_state = "platebot" }, @@ -11268,11 +11256,10 @@ /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{ @@ -11285,12 +11272,18 @@ }, /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{ + icon_state = "floor_plate" + }, +/area/lv522/atmos/sewer) "eZv" = ( /obj/structure/fence, /obj/effect/decal/warning_stripes{ @@ -11447,20 +11440,21 @@ }, /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{ + icon_state = "cement12" }, -/area/lv522/atmos/north_command_centre) +/area/lv522/outdoors/colony_streets/north_east_street) +"fda" = ( +/obj/structure/pipes/standard/manifold/hidden/green{ + dir = 1 + }, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, +/area/lv522/outdoors/colony_streets/north_east_street) "fdb" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; @@ -11542,13 +11536,12 @@ /area/lv522/landing_zone_2/ceiling) "feF" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 + dir = 4 }, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "plate" +/turf/open/asphalt/cement{ + icon_state = "cement15" }, -/area/lv522/atmos/east_reactor/west) +/area/lv522/outdoors/colony_streets/north_east_street) "feS" = ( /obj/item/prop/colony/used_flare, /turf/open/floor/corsat{ @@ -11679,14 +11672,13 @@ }, /area/lv522/indoors/c_block/mining) "fhQ" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 +/obj/structure/machinery/colony_floodlight{ + layer = 4.3 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" +/turf/open/asphalt/cement{ + icon_state = "cement4" }, -/area/lv522/atmos/east_reactor/west) +/area/lv522/outdoors/colony_streets/north_east_street) "fhY" = ( /obj/structure/surface/rack, /obj/item/tool/pickaxe, @@ -11876,11 +11868,12 @@ }, /area/lv522/atmos/east_reactor/east) "fmB" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /turf/open/floor/corsat{ dir = 1; icon_state = "brown" }, -/area/lv522/oob) +/area/lv522/atmos/east_reactor) "fmH" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, @@ -12021,14 +12014,12 @@ }, /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 @@ -12278,12 +12269,11 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/cargo) "fvQ" = ( -/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/window/framed/strata/reinforced, /turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" + icon_state = "marked" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/sewer) "fvV" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -12300,6 +12290,10 @@ icon_state = "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{ @@ -12726,12 +12720,12 @@ }, /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" +/obj/effect/decal/cleanable/dirt, +/obj/structure/prop/static_tank/water, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/sewer) "fDF" = ( /obj/structure/surface/rack, /obj/item/card/id/silver/clearance_badge/cl{ @@ -13191,10 +13185,12 @@ }, /area/lv522/indoors/c_block/garage) "fMT" = ( -/turf/open/floor/corsat{ - icon_state = "browncorner" +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/sewer) "fNk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -13458,14 +13454,6 @@ }, /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; @@ -13476,7 +13464,9 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/auto_turf/shale/layer1, +/turf/open/asphalt/cement{ + icon_state = "cement3" + }, /area/lv522/outdoors/colony_streets/south_west_street) "fTO" = ( /obj/effect/landmark/xeno_spawn, @@ -13673,10 +13663,6 @@ }, /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{ @@ -13848,11 +13834,10 @@ /area/lv522/atmos/reactor_garage) "gbq" = ( /obj/structure/stairs/perspective{ - dir = 10; icon_state = "p_stair_full" }, -/obj/structure/platform_decoration{ - dir = 4 +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) @@ -13899,7 +13884,9 @@ pixel_x = -2; pixel_y = 16 }, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, /area/lv522/outdoors/colony_streets/south_street) "gck" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -13962,6 +13949,16 @@ icon_state = "blue_plate" }, /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/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Tornado) "gdt" = ( /obj/item/tool/kitchen/knife, /obj/effect/decal/cleanable/dirt, @@ -14244,6 +14241,12 @@ icon_state = "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{ @@ -14426,8 +14429,8 @@ /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{ @@ -14528,6 +14531,12 @@ icon_state = "darkpurple2" }, /area/lv522/indoors/a_block/dorms) +"goC" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 8 + }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Tornado) "goK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -14603,16 +14612,6 @@ icon_state = "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{ @@ -14646,11 +14645,13 @@ }, /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{ @@ -14676,14 +14677,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, @@ -14777,9 +14778,12 @@ }, /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{ @@ -14801,6 +14805,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) +"guj" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper Dormitories" + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/dorm_north) "gul" = ( /obj/structure/tunnel/maint_tunnel{ pixel_y = 6 @@ -14906,12 +14920,11 @@ /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/prop/static_tank/water, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/sewer) "gwt" = ( /obj/structure/cargo_container/wy/right, /turf/open/floor/prison, @@ -15072,18 +15085,6 @@ /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{ @@ -15105,12 +15106,9 @@ 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" }, @@ -15164,17 +15162,6 @@ icon_state = "blue" }, /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 +15178,9 @@ /obj/item/seeds/riceseed, /obj/structure/closet/crate, /obj/item/seeds/riceseed, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/asphalt/cement{ + icon_state = "cement3" + }, /area/lv522/outdoors/colony_streets/south_west_street) "gBy" = ( /obj/effect/decal/warning_stripes{ @@ -15295,23 +15284,6 @@ /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 +15292,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 @@ -15374,7 +15346,16 @@ /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{ + dir = 10; + icon_state = "floor_marked" + }, /area/lv522/indoors/lone_buildings/storage_blocks) "gFD" = ( /obj/structure/surface/table/almayer, @@ -15627,16 +15608,6 @@ icon_state = "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{ @@ -15718,18 +15689,6 @@ }, /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" @@ -15807,14 +15766,9 @@ /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, @@ -15828,12 +15782,8 @@ /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, @@ -15860,12 +15810,12 @@ }, /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" +/obj/structure/surface/table/almayer, +/obj/item/frame/fire_alarm, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/sewer) "gOJ" = ( /obj/item/tool/wirecutters{ pixel_x = -1; @@ -16019,12 +15969,13 @@ }, /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{ + icon_state = "floor_plate" + }, +/area/lv522/atmos/sewer) "gSn" = ( /turf/open/floor/corsat{ icon_state = "marked" @@ -16793,12 +16744,12 @@ }, /area/lv522/indoors/c_block/cargo) "heF" = ( -/obj/structure/prop/server_equipment/yutani_server, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" +/obj/structure/surface/table/almayer, +/obj/item/storage/belt/utility, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/sewer) "heO" = ( /obj/structure/machinery/camera/autoname{ dir = 4 @@ -16812,14 +16763,10 @@ }, /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; @@ -16862,13 +16809,14 @@ /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{ + icon_state = "floor_plate" + }, +/area/lv522/atmos/sewer) "hfS" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/prison, @@ -16891,15 +16839,16 @@ }, /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, @@ -16935,14 +16884,12 @@ }, /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 @@ -17081,7 +17028,7 @@ "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, @@ -18167,11 +18114,6 @@ icon_state = "blue_plate" }, /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{ @@ -18252,13 +18194,11 @@ /turf/open/floor/prison, /area/lv522/atmos/outdoor) "hHh" = ( -/obj/structure/machinery/colony_floodlight{ - layer = 4.3 - }, -/turf/open/asphalt/cement{ - icon_state = "cement9" +/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{ @@ -18404,14 +18344,6 @@ icon_state = "floor_marked" }, /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 @@ -18515,6 +18447,9 @@ icon_state = "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{ @@ -18548,14 +18483,15 @@ }, /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{ + icon_state = "floor_plate" + }, +/area/lv522/atmos/sewer) "hMI" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -18593,10 +18529,24 @@ }, /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{ + dir = 4; + icon_state = "white_cyan1" + }, +/area/lv522/oob/w_y_vault) "hNk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 @@ -18644,9 +18594,24 @@ /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{ @@ -18833,11 +18798,11 @@ /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, @@ -18901,10 +18866,6 @@ "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{ @@ -18942,13 +18903,12 @@ }, /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, @@ -19004,14 +18964,12 @@ /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" +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/corsat{ + icon_state = "marked" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/sewer) "hUZ" = ( /obj/structure/barricade/deployable, /obj/item/weapon/gun/rifle/m41a{ @@ -19019,24 +18977,10 @@ }, /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{ @@ -19119,13 +19063,12 @@ /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, +/obj/structure/closet/firecloset/full, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" + icon_state = "marked" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/sewer) "hXO" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 10 @@ -19139,12 +19082,8 @@ }, /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{ @@ -19153,19 +19092,11 @@ }, /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" +/turf/open/floor/almayer{ + dir = 1; + icon_state = "w-y1" }, -/area/lv522/atmos/east_reactor) +/area/lv522/oob/w_y_vault) "hYf" = ( /turf/open/floor/prison{ icon_state = "floor_plate" @@ -19179,14 +19110,12 @@ }, /area/lv522/atmos/east_reactor/south) "hYk" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "bcircuit" +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "w-y2" }, -/area/lv522/atmos/east_reactor) +/area/lv522/oob/w_y_vault) "hYn" = ( /obj/item/tool/pen/blue/clicky{ pixel_x = 6 @@ -19228,13 +19157,14 @@ }, /area/lv522/outdoors/colony_streets/windbreaker/observation) "hZn" = ( -/obj/structure/prop/server_equipment/yutani_server{ - pixel_x = -4 +/obj/structure/machinery/light{ + dir = 4 }, -/turf/open/floor{ - icon_state = "bcircuit" +/turf/open/floor/strata{ + dir = 4; + icon_state = "white_cyan1" }, -/area/lv522/atmos/east_reactor) +/area/lv522/oob/w_y_vault) "hZC" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/metal/medium_stack, @@ -19243,16 +19173,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 @@ -19390,14 +19319,12 @@ }, /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 +19334,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 @@ -19458,13 +19366,15 @@ }, /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 @@ -19510,14 +19420,15 @@ /turf/closed/wall/solaris/reinforced/hull/lv522, /area/lv522/oob) "ier" = ( -/obj/structure/bed/chair/comfy{ - dir = 1 +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/sewer) "ieE" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 @@ -19562,14 +19473,16 @@ /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 +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" +/turf/open/floor{ + dir = 4; + icon_state = "whiteyellowfull" }, -/area/lv522/atmos/east_reactor) +/area/lv522/oob/w_y_vault) "ifi" = ( /obj/structure/cargo_container/hd/left/alt, /turf/open/floor/corsat{ @@ -19607,14 +19520,15 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_east_street) "igp" = ( -/obj/structure/bed/chair/comfy{ - dir = 1 +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" +/turf/open/floor{ + dir = 4; + icon_state = "whiteyellowfull" }, -/area/lv522/atmos/east_reactor) +/area/lv522/oob/w_y_vault) "igv" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -19629,16 +19543,17 @@ /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 +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + layer = 2.5; + pixel_x = -1; + pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" +/turf/open/floor{ + dir = 4; + icon_state = "whiteyellowfull" }, -/area/lv522/atmos/east_reactor) +/area/lv522/oob/w_y_vault) "igL" = ( /obj/structure/machinery/disposal, /turf/open/floor/prison{ @@ -19968,7 +19883,10 @@ /area/lv522/outdoors/nw_rockies) "ioD" = ( /obj/structure/prop/structure_lattice, -/obj/structure/platform, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/asphalt/cement{ icon_state = "cement4" }, @@ -20023,21 +19941,6 @@ icon_state = "white_cyan2" }, /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 @@ -20194,24 +20097,10 @@ icon_state = "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, +/obj/structure/machinery/light{ + dir = 8 + }, /turf/open/floor/strata{ dir = 4; icon_state = "white_cyan1" @@ -20368,12 +20257,9 @@ /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{ @@ -20827,6 +20713,9 @@ pixel_y = 5 }, /obj/item/tool/pen/blue/clicky, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, +/obj/effect/landmark/xeno_spawn, +/obj/effect/landmark/corpsespawner/colonist/burst, /turf/open/floor/corsat{ icon_state = "plate" }, @@ -20840,12 +20729,26 @@ icon_state = "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" +/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" }, -/area/lv522/atmos/east_reactor) +/area/lv522/oob/w_y_vault) "iGn" = ( /obj/structure/largecrate/random/barrel{ layer = 3.2; @@ -21158,17 +21061,11 @@ }, /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, @@ -21423,12 +21320,13 @@ /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{ + icon_state = "cement12" + }, +/area/lv522/outdoors/colony_streets/south_east_street) "iRa" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, @@ -21442,13 +21340,12 @@ /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" @@ -21478,22 +21375,10 @@ /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{ @@ -21522,12 +21407,34 @@ }, /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, @@ -21597,22 +21504,13 @@ }, /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; @@ -21625,12 +21523,13 @@ }, /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{ + icon_state = "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!"; @@ -21651,14 +21550,11 @@ }, /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" +/obj/structure/platform_decoration, +/turf/open/asphalt/cement{ + icon_state = "cement2" }, -/area/lv522/atmos/east_reactor) +/area/lv522/outdoors/colony_streets/south_street) "iVY" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spider/spiderling/nogrow, @@ -21756,6 +21652,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" = ( @@ -22129,20 +22026,23 @@ }, /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" +/obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison{ + dir = 9; + icon_state = "greenfull" }, -/area/lv522/atmos/east_reactor/south) +/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, @@ -22214,14 +22114,14 @@ }, /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) @@ -22314,37 +22214,32 @@ }, /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/structure/platform{ + dir = 1 }, -/obj/item/trash/burger, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/machinery/colony_floodlight, +/obj/structure/platform{ + dir = 8 }, -/area/lv522/atmos/east_reactor) -"jig" = ( -/obj/structure/surface/table/almayer, -/obj/item/clothing/head/hardhat{ - pixel_x = -7; - pixel_y = 8 +/obj/structure/platform_decoration{ + dir = 5 }, -/obj/item/clothing/head/hardhat{ - pixel_x = 8; - pixel_y = 14 +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/south_street) +"jig" = ( +/obj/structure/platform_decoration{ + dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" +/turf/open/asphalt/cement{ + icon_state = "cement12" }, -/area/lv522/atmos/east_reactor) +/area/lv522/outdoors/colony_streets/south_street) "jin" = ( /obj/structure/filtration/machine_96x96/indestructible{ icon_state = "sedimentation_A_1"; @@ -22572,16 +22467,6 @@ icon_state = "darkyellowfull2" }, /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{ @@ -23190,6 +23075,28 @@ }, /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/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "jvG" = ( /obj/structure/machinery/vending/cola, /turf/open/floor/prison{ @@ -23448,6 +23355,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/dorm_north) +"jAX" = ( +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/obj/structure/bed/chair/dropship/passenger{ + dir = 8 + }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Tornado) "jBm" = ( /obj/structure/machinery/vending/hydronutrients, /turf/open/floor/prison{ @@ -23563,13 +23480,13 @@ }, /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{ + icon_state = "cement12" + }, +/area/lv522/outdoors/colony_streets/south_street) "jCS" = ( /obj/item/trash/wy_chips_pepper, /obj/structure/machinery/light{ @@ -23647,9 +23564,6 @@ density = 0; pixel_y = 16 }, -/obj/structure/platform_decoration{ - dir = 4 - }, /turf/open/gm/river, /area/lv522/atmos/sewer) "jDO" = ( @@ -23673,10 +23587,11 @@ "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 }, +/obj/effect/landmark/corpsespawner/colonist/burst, +/obj/effect/landmark/xeno_spawn, /turf/open/floor/corsat{ icon_state = "plate" }, @@ -23788,9 +23703,12 @@ /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, @@ -23824,10 +23742,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, @@ -23844,6 +23760,18 @@ icon_state = "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{ + dir = 4; + icon_state = "white_cyan1" + }, +/area/lv522/indoors/a_block/corpo/glass) "jHy" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -23904,11 +23832,14 @@ }, /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, @@ -24609,9 +24540,9 @@ }, /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{ @@ -24883,6 +24814,16 @@ /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/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "kbu" = ( /obj/vehicle/train/cargo/trolley, /turf/open/floor/corsat{ @@ -25266,9 +25207,6 @@ icon_state = "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{ @@ -25483,12 +25421,13 @@ }, /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{ + icon_state = "cement3" + }, +/area/lv522/outdoors/colony_streets/south_west_street) "kkr" = ( /obj/structure/prop/ice_colony/ground_wire{ dir = 8 @@ -26425,7 +26364,9 @@ /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" = ( @@ -26449,7 +26390,7 @@ }, /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" = ( @@ -26516,7 +26457,7 @@ /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, @@ -26763,11 +26704,13 @@ }, /area/lv522/indoors/a_block/security) "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{ + icon_state = "cement1" + }, +/area/lv522/outdoors/colony_streets/south_street) "kHZ" = ( /obj/structure/surface/table/almayer, /obj/item/tool/weldpack{ @@ -26828,7 +26771,8 @@ /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) @@ -26960,19 +26904,13 @@ }, /area/lv522/atmos/filt) "kLO" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" +/turf/open/asphalt/cement{ + icon_state = "cement3" }, -/area/lv522/indoors/b_block/hydro) -"kLQ" = ( -/obj/structure/cargo_container/grant/right, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/w_rockies) +/area/lv522/outdoors/colony_streets/south_west_street) "kMi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -27024,14 +26962,6 @@ }, /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{ @@ -27049,17 +26979,6 @@ icon_state = "darkyellowfull2" }, /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, @@ -27261,7 +27180,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, @@ -27617,13 +27536,6 @@ 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; @@ -27651,10 +27563,7 @@ }, /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{ @@ -27891,7 +27800,9 @@ /area/lv522/indoors/a_block/admin) "lbH" = ( /obj/structure/largecrate/random, -/turf/open/auto_turf/shale/layer1, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, /area/lv522/outdoors/colony_streets/south_street) "lbI" = ( /obj/structure/surface/table/almayer, @@ -28008,26 +27919,6 @@ }, /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; @@ -28161,10 +28052,11 @@ /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) @@ -28187,12 +28079,6 @@ icon_state = "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 @@ -28301,6 +28187,7 @@ "ljQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/corpsespawner/colonist/burst, +/obj/effect/landmark/xeno_spawn, /turf/open/floor/corsat{ dir = 8; icon_state = "brown" @@ -28331,6 +28218,16 @@ /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{ + dir = 4; + icon_state = "brown" + }, +/area/lv522/atmos/east_reactor) "lkH" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 @@ -28796,12 +28693,11 @@ /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" +/obj/structure/platform_decoration, +/turf/open/asphalt/cement{ + icon_state = "cement3" }, -/area/lv522/atmos/sewer) +/area/lv522/outdoors/colony_streets/south_west_street) "lum" = ( /obj/structure/platform, /obj/structure/platform{ @@ -28826,7 +28722,9 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/asphalt/cement{ + icon_state = "cement3" + }, /area/lv522/outdoors/colony_streets/south_west_street) "lvF" = ( /obj/item/tool/surgery/circular_saw, @@ -28881,7 +28779,9 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/plating/plating_catwalk/prison, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, /area/lv522/atmos/sewer) "lwv" = ( /obj/structure/machinery/light{ @@ -28920,10 +28820,6 @@ }, /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 @@ -29210,18 +29106,6 @@ icon_state = "blue_plate" }, /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{ @@ -29856,6 +29740,10 @@ /area/lv522/outdoors/colony_streets/south_east_street) "lPv" = ( /obj/effect/decal/cleanable/liquid_fuel, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/asphalt/cement{ icon_state = "cement4" }, @@ -30141,7 +30029,9 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/auto_turf/shale/layer1, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, /area/lv522/outdoors/colony_streets/north_east_street) "lWa" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -30215,7 +30105,9 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, /area/lv522/outdoors/colony_streets/north_east_street) "lYG" = ( /obj/structure/platform_decoration{ @@ -30294,7 +30186,6 @@ /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" }, @@ -30543,6 +30434,14 @@ icon_state = "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, @@ -31016,8 +30915,13 @@ }, /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{ @@ -31828,16 +31732,6 @@ icon_state = "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{ @@ -32041,7 +31935,10 @@ /obj/structure/cargo_container/kelland/left{ layer = 2.9 }, -/obj/structure/platform, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/asphalt/cement{ icon_state = "cement4" }, @@ -32275,10 +32172,19 @@ icon_state = "white_cyan2" }, /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{ + dir = 4; + icon_state = "whiteyellowfull" }, /area/lv522/oob/w_y_vault) "mNR" = ( @@ -32557,9 +32463,13 @@ }, /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, @@ -32693,21 +32603,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" @@ -32911,7 +32806,7 @@ /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,12 +32816,6 @@ /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{ @@ -33014,18 +32903,6 @@ /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"; @@ -33104,8 +32981,9 @@ }, /area/lv522/atmos/cargo_intake) "ncg" = ( -/obj/structure/platform{ - dir = 8 +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" }, /turf/open/asphalt/cement{ icon_state = "cement1" @@ -33189,7 +33067,9 @@ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/asphalt/cement{ + icon_state = "cement3" + }, /area/lv522/outdoors/colony_streets/south_west_street) "nee" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -33334,6 +33214,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/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "ngK" = ( /obj/structure/platform{ dir = 4 @@ -33611,11 +33497,13 @@ /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{ + icon_state = "cement1" + }, +/area/lv522/outdoors/colony_streets/south_street) "nmh" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/prop/almayer/computer/PC{ @@ -33759,7 +33647,6 @@ /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" }, @@ -34232,9 +34119,6 @@ icon_state = "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, @@ -34369,6 +34253,18 @@ "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/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "nBo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -34411,11 +34307,10 @@ /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 + icon_state = "W"; + pixel_x = -1 }, /turf/open/floor{ dir = 4; @@ -34467,7 +34362,10 @@ "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" = ( @@ -34554,9 +34452,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" = ( @@ -34637,6 +34533,16 @@ icon_state = "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{ @@ -34654,14 +34560,11 @@ /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 @@ -34729,10 +34632,7 @@ "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{ @@ -35219,13 +35119,14 @@ /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 @@ -35305,9 +35206,6 @@ icon_state = "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 +35232,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) @@ -35660,14 +35554,6 @@ icon_state = "blue" }, /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, @@ -35735,13 +35621,16 @@ }, /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) +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/turf/open/auto_turf/sand_white/layer0, +/area/lv522/outdoors/colony_streets/south_east_street) "oan" = ( /obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 + icon_state = "SE-out"; + pixel_x = 1; + pixel_y = -1 }, /turf/open/floor{ dir = 4; @@ -35986,6 +35875,9 @@ }, /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, @@ -36307,29 +36199,6 @@ icon_state = "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{ @@ -36517,9 +36386,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" = ( @@ -36603,6 +36470,12 @@ }, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) +"ori" = ( +/obj/structure/barricade/deployable{ + dir = 4 + }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "orm" = ( /obj/structure/platform/strata{ dir = 4 @@ -36676,17 +36549,6 @@ icon_state = "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"; @@ -36841,6 +36703,10 @@ 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" = ( @@ -36911,6 +36777,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; @@ -37754,6 +37626,9 @@ 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" = ( @@ -38012,14 +37887,6 @@ "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"; @@ -38337,13 +38204,6 @@ icon_state = "floor_marked" }, /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, @@ -38398,9 +38258,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{ @@ -38718,15 +38576,6 @@ icon_state = "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; @@ -38825,9 +38674,7 @@ /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) @@ -38915,9 +38762,6 @@ /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{ @@ -38966,19 +38810,6 @@ icon_state = "floor_marked" }, /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" @@ -39041,9 +38872,11 @@ /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{ @@ -39147,7 +38980,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" = ( @@ -39212,9 +39044,6 @@ icon_state = "brown" }, /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, @@ -39596,6 +39425,10 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/mining) +"pBz" = ( +/obj/structure/machinery/door/airlock/hatch/cockpit/two, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "pBF" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red{ @@ -40003,30 +39836,6 @@ icon_state = "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" @@ -40605,12 +40414,6 @@ icon_state = "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{ @@ -40786,15 +40589,6 @@ icon_state = "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 @@ -41089,6 +40883,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/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Tornado) "qbW" = ( /obj/structure/prop/invuln/ice_prefab/trim{ dir = 8 @@ -41440,18 +41244,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{ @@ -41659,15 +41451,6 @@ icon_state = "blue_plate" }, /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, @@ -41705,11 +41488,6 @@ icon_state = "cell_stripe" }, /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{ @@ -41745,11 +41523,15 @@ /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{ @@ -41838,20 +41620,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, @@ -41863,14 +41633,6 @@ icon_state = "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, @@ -42010,10 +41772,6 @@ icon_state = "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 @@ -42114,13 +41872,6 @@ /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{ @@ -42284,17 +42035,6 @@ icon_state = "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, @@ -42330,8 +42070,8 @@ /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{ @@ -42922,14 +42662,6 @@ icon_state = "greenfull" }, /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, @@ -43109,12 +42841,6 @@ /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" @@ -43452,10 +43178,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 @@ -43633,22 +43355,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 @@ -43700,20 +43406,6 @@ icon_state = "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) @@ -43786,6 +43478,20 @@ }, /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/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "qWt" = ( /obj/structure/window/framed/strata/reinforced, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -43817,13 +43523,6 @@ /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, @@ -44194,9 +43893,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" = ( @@ -44462,6 +44158,9 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/cargo) +"rgn" = ( +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "rgA" = ( /turf/closed/shuttle/dropship2/tornado{ icon_state = "101" @@ -44530,14 +44229,6 @@ icon_state = "blue_plate" }, /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" @@ -44637,14 +44328,6 @@ icon_state = "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, @@ -44969,12 +44652,6 @@ icon_state = "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 @@ -45097,6 +44774,15 @@ }, /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, @@ -45528,11 +45214,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" @@ -45550,14 +45231,6 @@ 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; @@ -45603,12 +45276,6 @@ /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,14 +45285,6 @@ 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 @@ -45778,16 +45437,6 @@ }, /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 @@ -46481,6 +46130,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/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Tornado) "rUX" = ( /obj/structure/shuttle/engine/heater{ dir = 4; @@ -46721,8 +46379,11 @@ }, /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) @@ -46838,6 +46499,10 @@ }, /turf/open/asphalt/cement, /area/lv522/landing_zone_2/ceiling) +"sbj" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "sbm" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -46900,18 +46565,6 @@ 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 @@ -46920,18 +46573,6 @@ 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" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "scM" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/snacks/cheeseburger, @@ -47136,7 +46777,10 @@ "she" = ( /obj/structure/machinery/floodlight, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, /area/lv522/indoors/lone_buildings/storage_blocks) "shh" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ @@ -47477,6 +47121,11 @@ }, /area/lv522/oob) "smR" = ( +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "West LZ Storage"; + name = "Emergency Lockdown" + }, /turf/open/floor/corsat{ icon_state = "marked" }, @@ -47577,11 +47226,12 @@ /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 + icon_state = "SW-out"; + pixel_x = -1; + pixel_y = -1 }, +/obj/effect/landmark/corpsespawner/wy/manager, /turf/open/floor{ dir = 4; icon_state = "whiteyellowfull" @@ -47975,7 +47625,9 @@ /area/lv522/indoors/a_block/hallway) "sxg" = ( /obj/item/stack/rods, -/turf/open/auto_turf/shale/layer1, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, /area/lv522/outdoors/colony_streets/south_street) "sxp" = ( /obj/structure/surface/table/almayer, @@ -48155,17 +47807,6 @@ "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 @@ -48180,13 +47821,6 @@ icon_state = "white_cyan1" }, /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; @@ -48345,6 +47979,19 @@ icon_state = "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 @@ -48448,19 +48095,6 @@ }, /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 @@ -48480,12 +48114,6 @@ }, /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) "sHk" = ( /obj/structure/curtain/red, /turf/open/floor/corsat{ @@ -49346,16 +48974,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, @@ -49474,18 +49092,16 @@ icon_state = "rasputin15" }, /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" = ( @@ -49565,14 +49181,6 @@ icon_state = "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 @@ -49588,6 +49196,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/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Tornado) "tby" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -49611,14 +49228,19 @@ }, /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{ +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 16 + }, +/turf/open/floor/strata{ dir = 4; - icon_state = "whiteyellowfull" + icon_state = "white_cyan1" }, /area/lv522/oob/w_y_vault) "tcj" = ( @@ -49724,15 +49346,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) @@ -50110,6 +49727,12 @@ icon_state = "greenfull" }, /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, @@ -50226,6 +49849,15 @@ icon_state = "white_cyan1" }, /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/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Tornado) "tne" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison{ @@ -50553,22 +50185,6 @@ /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{ @@ -50684,6 +50300,13 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms/glass) +"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{ icon_state = "cement12" @@ -50781,9 +50404,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, @@ -50846,18 +50467,6 @@ 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{ @@ -50963,11 +50572,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 @@ -51033,28 +50637,12 @@ "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, @@ -51217,16 +50805,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{ @@ -51342,14 +50920,6 @@ /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; @@ -51399,14 +50969,18 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/auto_turf/shale/layer1, +/turf/open/asphalt/cement{ + icon_state = "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{ + icon_state = "cement12" + }, /area/lv522/outdoors/colony_streets/north_east_street) "tJM" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -51464,9 +51038,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 @@ -51562,13 +51133,9 @@ }, /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{ + dir = 1; + icon_state = "w-y0" }, /area/lv522/oob/w_y_vault) "tMk" = ( @@ -51663,18 +51230,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 @@ -51918,6 +51475,10 @@ icon_state = "rasputin15" }, /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{ layer = 2.9 @@ -52366,16 +51927,13 @@ "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, @@ -52387,6 +51945,16 @@ icon_state = "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/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Tornado) "ucx" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison{ @@ -52896,7 +52464,7 @@ /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, @@ -53228,8 +52796,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, @@ -53578,13 +53146,6 @@ icon_state = "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" @@ -53784,18 +53345,6 @@ }, /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 @@ -54188,6 +53737,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/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "uJl" = ( /obj/structure/filingcabinet{ density = 0; @@ -54260,11 +53815,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 @@ -54429,13 +53979,6 @@ icon_state = "blue_plate" }, /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{ @@ -54992,11 +54535,6 @@ icon_state = "floor_marked" }, /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{ @@ -55099,7 +54637,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 }, @@ -55135,17 +54673,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 @@ -55271,8 +54798,8 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/dorms) "vdp" = ( -/obj/structure/platform{ - dir = 1 +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, /turf/open/asphalt/cement{ icon_state = "cement12" @@ -55530,10 +55057,10 @@ }, /area/lv522/landing_zone_forecon/UD6_Typhoon) "vir" = ( -/obj/structure/closet/wardrobe/engineering_yellow, /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, +/obj/structure/machinery/fuelcell_recycler/full, /turf/open/floor/prison{ dir = 4; icon_state = "darkyellowfull2" @@ -55620,18 +55147,6 @@ }, /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{ @@ -55987,6 +55502,16 @@ }, /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 }, @@ -56073,14 +55598,18 @@ }, /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{ +/obj/item/stack/sheet/mineral/gold{ + amount = 60; + pixel_y = 12 + }, +/turf/open/floor/strata{ dir = 4; - icon_state = "whiteyellowfull" + icon_state = "white_cyan1" }, /area/lv522/oob/w_y_vault) "vrV" = ( @@ -56430,12 +55959,6 @@ icon_state = "white_cyan1" }, /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 @@ -56541,6 +56064,16 @@ /obj/item/prop/alien/hugger, /turf/open/floor/prison, /area/lv522/indoors/a_block/kitchen/glass) +"vAu" = ( +/obj/item/fuel_cell{ + pixel_x = 6; + pixel_y = 4 + }, +/turf/open/floor/corsat{ + dir = 4; + icon_state = "brown" + }, +/area/lv522/atmos/east_reactor) "vAW" = ( /obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ @@ -57030,18 +56563,6 @@ icon_state = "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, @@ -57104,14 +56625,6 @@ /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" @@ -57162,6 +56675,21 @@ icon_state = "greenfull" }, /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; + id = "Sec-Armoury-Lockdown" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/security) "vKO" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -57580,6 +57108,9 @@ /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" = ( @@ -57626,12 +57157,6 @@ icon_state = "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" @@ -57964,10 +57489,6 @@ }, /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{ @@ -57975,12 +57496,6 @@ icon_state = "blue" }, /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{ @@ -58031,6 +57546,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "West LZ Storage"; + name = "Emergency Lockdown" + }, /turf/open/floor/corsat{ icon_state = "marked" }, @@ -58565,9 +58085,8 @@ /area/lv522/indoors/lone_buildings/outdoor_bot) "wjP" = ( /obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 + icon_state = "E"; + pixel_x = 1 }, /turf/open/floor{ dir = 4; @@ -58683,10 +58202,6 @@ icon_state = "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, @@ -58891,10 +58406,6 @@ "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{ @@ -58935,15 +58446,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 @@ -59382,17 +58884,6 @@ icon_state = "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 @@ -59668,6 +59159,10 @@ icon_state = "blue" }, /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, @@ -59756,6 +59251,9 @@ icon_state = "greenfull" }, /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" @@ -59881,6 +59379,15 @@ icon_state = "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 @@ -60113,8 +59620,7 @@ /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) @@ -60765,18 +60271,10 @@ icon_state = "brown" }, /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 @@ -61036,18 +60534,6 @@ icon_state = "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, @@ -61101,6 +60587,10 @@ layer = 2.9 }, /obj/effect/decal/cleanable/liquid_fuel, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/asphalt/cement{ icon_state = "cement4" }, @@ -61283,11 +60773,8 @@ }, /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{ @@ -61334,13 +60821,6 @@ icon_state = "greenfull" }, /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,6 +60828,16 @@ "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/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "xqV" = ( /obj/structure/cargo_container/kelland/right, /turf/open/floor/prison{ @@ -61410,14 +60900,7 @@ /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, @@ -61566,11 +61049,10 @@ }, /area/lv522/indoors/a_block/bridges) "xwv" = ( -/obj/structure/platform_decoration{ - dir = 4 +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, /obj/structure/stairs/perspective{ - dir = 10; icon_state = "p_stair_full" }, /turf/open/asphalt/cement{ @@ -61669,10 +61151,6 @@ icon_state = "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{ @@ -61686,6 +61164,9 @@ icon_state = "darkyellowfull2" }, /area/lv522/indoors/lone_buildings/outdoor_bot) +"xyu" = ( +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Tornado) "xyC" = ( /obj/structure/machinery/landinglight/ds2/delaythree, /obj/effect/decal/cleanable/dirt, @@ -61753,9 +61234,6 @@ icon_state = "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 @@ -61858,15 +61336,9 @@ /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{ @@ -62418,17 +61890,6 @@ icon_state = "brown" }, /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; @@ -62463,14 +61924,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, @@ -62482,15 +61935,6 @@ icon_state = "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, @@ -62611,11 +62055,6 @@ icon_state = "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 @@ -62792,6 +62231,10 @@ }, /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, @@ -62985,8 +62428,9 @@ }, /area/lv522/outdoors/colony_streets/north_street) "xWO" = ( -/obj/structure/platform{ - dir = 1 +/obj/structure/stairs/perspective{ + dir = 10; + icon_state = "p_stair_full" }, /turf/open/asphalt/cement{ icon_state = "cement12" @@ -63194,21 +62638,6 @@ icon_state = "floor3" }, /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 @@ -63364,7 +62793,9 @@ /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" = ( @@ -63771,6 +63202,9 @@ icon_state = "blue_plate" }, /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{ @@ -66224,9 +65658,9 @@ vtc jrT cpy cpy -kBT -uiK -mZM +sRA +sRA +sRA sRA sRA rWS @@ -66451,9 +65885,9 @@ hSi vtc cpy cpy -vZY -dcR -bQq +rWS +sRA +sRA sRA rWS pRK @@ -66678,20 +66112,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 @@ -66911,14 +66345,14 @@ pps pxY pIu nbO -qnV -rjP -rjP -rig -rjP -rDb -rjP -sGT +tvL +bmR +bmR +aXR +bmR +wGc +bmR +mNz tdS tzA tSJ @@ -67136,16 +66570,16 @@ cpy cpy ppF pys -pIO -pTH -qpg +jvF +pBz +iGk qJl qUf riE ruj rDu xKc -sGY +fwh pBQ rjP rus @@ -67228,7 +66662,7 @@ cpy tFx tFx wnP -rzz +evg syM rnT lBl @@ -67365,14 +66799,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,7 +66891,7 @@ moz mvP ggS tFx -xOS +rnT lBl ttT pkH @@ -67594,12 +67028,12 @@ rWS pUc qrj qLd -qUD -rkR -rkR -rDz -scy -rDz +nBh +ori +ori +ngy +xqN +ngy tfV rFp sdE @@ -67656,7 +67090,7 @@ ien ien ien ien -ien +spo umf vXc vXc @@ -67875,15 +67309,15 @@ ylo ylo ylo ylo +dbc ylo ylo ylo ylo ylo ylo -ylo -ien -ien +rMF +spo vXc vXc vXc @@ -68100,18 +67534,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 @@ -68286,9 +67720,9 @@ cpy cpy cpy rWS -sRA -sRA -sRA +jVS +kBD +kBT ien ien ien @@ -68327,17 +67761,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 @@ -68555,16 +67989,16 @@ hYf xhW hYf hYf -qvK +ylo xoj -hYf +ylo lpt gJL wHi cAW ylo ylo -ien +spo vXc vXc vXc @@ -68735,7 +68169,7 @@ cpy cpy sRA sRA -sRA +jHa cpy rWS rWS @@ -68782,17 +68216,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 @@ -68962,7 +68396,7 @@ cpy cpy cpy sRA -sRA +nvB abt rWS sRA @@ -69009,16 +68443,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 +68469,9 @@ nJv rCa rCa nJv -vzc -vzc -vzc +bbi +bbi +bbi xVd nJv hpq @@ -69177,13 +68611,13 @@ auG uWO vtc vtc -kBD +sRA cpy cpy sRA -sRA +bBB rWS -iXI +gtS sRA cpy cpy @@ -69236,16 +68670,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,7 +68699,7 @@ nJv bzL qmA qmA -vzc +bbi nJv hpq ofi @@ -69404,13 +68838,13 @@ auG uWO uWO vtc -kBD +sRA cpy cpy sRA +bQq rWS -rWS -kXo +jGh sRA sRA cpy @@ -69463,17 +68897,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,7 +68926,7 @@ nJv cNO qmA mdp -vzc +bbi nJv gpB ofi @@ -69631,11 +69065,11 @@ vtc vtc uWO vtc -kBT +sRA uiK uiK sRA -uiK +dcR sRA bKq goY @@ -69691,15 +69125,15 @@ yfu bDr yfu hjE -yfu -qpc +dbc +ylo nKj dGK qpc she egj ylo -ien +spo vXc vXc vXc @@ -69719,7 +69153,7 @@ nJv rZg mwC kIs -vzc +bbi nJv gpB ofi @@ -69859,7 +69293,7 @@ vtc vtc uWO prT -kWD +sRA tTr pUR uiK @@ -69878,8 +69312,8 @@ goY rsF sRA sRA -wms -ien +sRA +clY sjY clY clY @@ -69917,16 +69351,16 @@ jUk hYf sIS yfu -bZd -gJL -vIt -cOA -xhW +bOX +xoj +ylo +ylo +gFy hsz jnr ylo ylo -ien +spo vXc vXc vXc @@ -70085,7 +69519,7 @@ vtc vtc vtc uWO -kLQ +sRA sRA uiK uiK @@ -70105,7 +69539,7 @@ hKE viA sRA sRA -wnl +sRA sjY sjY clY @@ -70144,17 +69578,17 @@ ylo smR wbi smR -smR -smR ylo +dbc ylo ylo ylo ylo ylo -ien -ien -ien +ylo +rMF +sql +vXc vXc yiM yiM @@ -70312,7 +69746,7 @@ uWO vtc vtc uWO -kNj +uiK sRA uiK uiK @@ -70332,7 +69766,7 @@ uiK hRu uiK sRA -wnu +sRA sjY clY clY @@ -70372,15 +69806,15 @@ xyN cnN xyN xyN -xyN +kXc lwv xyN xyN -dbc +xyN xyN xyN sql -ien +vXc yiM yiM yiM @@ -70598,16 +70032,16 @@ rwE rwE hWI yiM +kXc +kXc +kXc vXc vXc vXc -vXc -vXc -dbc umf umf vXc -ien +yiM yiM yiM yiM @@ -70768,8 +70202,8 @@ uWO vtc bBB nFO -lhC -lxj +uiK +uiK sRA uiK uiK @@ -70788,7 +70222,7 @@ uiK uiK sRA clY -xfe +clY clY xGc lvb @@ -70824,18 +70258,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 +70281,10 @@ nJv xvQ gcX kvq -ivK +nJv wng tCg -ivK +nJv xvQ xvQ xvQ @@ -71015,7 +70449,7 @@ uiK uiK uiK wKj -xfr +clY clY hJZ slO @@ -71051,17 +70485,17 @@ yiM yiM yiM yiM -arP yiM yiM -puY +kXc +vXc +vXc vXc vXc -dbc vXc vXc yiM -ien +yiM yiM yiM yiM @@ -71242,8 +70676,8 @@ rGi uiK uiK hJZ -jGh -xyf +clY +hJZ hJZ slO hJZ @@ -71279,16 +70713,16 @@ yiM yiM yiM yiM -yiM -yiM -yiM +kXc +kXc +kXc +vXc vXc vXc -dbc vXc yiM yiM -ien +yiM yiM yiM yiM @@ -71470,7 +70904,7 @@ sRA ien ien ien -jVS +hJZ hJZ slO hJZ @@ -71507,16 +70941,16 @@ yiM yiM yiM wdy +kXc iPR iPR iPR iPR -dbc jPv vXc -ien -ien -ien +vXc +yiM +yiM yiM yiM pWR @@ -71742,7 +71176,7 @@ nLm rMF jPv vXc -ien +vXc yiM yiM yiM @@ -71969,7 +71403,7 @@ nLm nLm rVa jPv -ien +vXc vXc vXc yiM @@ -72132,9 +71566,9 @@ ien sjY hJZ ien -qtl -qMX -qXz +clY +clY +rnG kYm hJZ hJZ @@ -72195,9 +71629,9 @@ wan wEQ nLm nLm -ien -ien -ien +rMF +jPv +vXc vXc umf xTV @@ -72423,7 +71857,7 @@ uDP kDH nLm nLm -ien +spo vXc vXc vXc @@ -72650,7 +72084,7 @@ fjP vJT pfV nLm -ien +spo vXc vXc vXc @@ -72876,9 +72310,9 @@ tUM uOs uOs vJT -nLm -ien -ien +pMd +spo +vXc vXc jue wYa @@ -73103,8 +72537,8 @@ uOs uOs lsD wyE -nLm -ien +pMd +spo vXc vXc upz @@ -73330,8 +72764,8 @@ lBj vJT whn tek -nLm -ien +pMd +spo vXc vXc vXc @@ -73558,8 +72992,8 @@ oDu nLm nLm nLm -ien -ien +spo +vXc umf vXc vaZ @@ -73785,7 +73219,7 @@ fVB cxC rzG nLm -ien +spo vXc umf vXc @@ -74012,7 +73446,7 @@ bGL koj aMI nLm -ien +spo vXc vXc vXc @@ -74239,8 +73673,8 @@ sKH weR nLm nLm -ien -ien +spo +vXc vXc vXc wYa @@ -79209,20 +78643,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 +78714,11 @@ aPu cGw wIr wIr -fnA -cxv -ofi -ofi -hov +jhY +kkq +uOd +uOd +kLO fTN fTN fTN @@ -79293,8 +78727,8 @@ fTN lvl ndZ gBv -pAj -fnA +lul +jhY wIr wIr xSA @@ -79436,17 +78870,17 @@ fjr bPH dox tGl -crH +miz ofd rqs uPy qGK qSk ofd +ubH spo vXc vXc -vXc mqC pwz dFg @@ -79494,10 +78928,10 @@ tSL tSL tSL tSL -dbP -cbR -cbR -dbP +fnA +uOd +uOd +fnA wIr wIr mDz @@ -79520,7 +78954,7 @@ cbR cbR cbR cbR -dbP +moe wIr wIr vDL @@ -79586,7 +79020,7 @@ xZw saC saC saC -qpD +saC saC bzC iAv @@ -79663,15 +79097,15 @@ fjr rZc dox tGl -crH +miz ofd qSk xeg uMO rqs ofd +ubH spo -vXc laX dFH vXc @@ -79890,15 +79324,15 @@ fjr rZc dox tGl -crH +miz ofd qSk xeg uMO rqs ofd +ubH spo -vXc rjn bVu vXc @@ -79947,7 +79381,7 @@ tSL tne kGm lML -hgo +yfR wIr tmy hYL @@ -80015,10 +79449,10 @@ dLs afA saC saC -esB -sGF -dLs -fcW +saC +saC +yeS +jKu xho otQ otQ @@ -80117,15 +79551,15 @@ nQx rvx fZy hAg -crH +miz ofd qiC xeg qGK rqs ofd +ubH spo -vXc qbI qlD qpz @@ -80174,13 +79608,13 @@ lIy xNR yfS yfS -kLO +yfS cfz jmv tkf dgY cfz -cHb +aPu qzQ oLa uWT @@ -80241,8 +79675,8 @@ aut dOw ajw bRN -sGF -euN +saC +saC saC yeS jKu @@ -80344,20 +79778,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 +79835,13 @@ cKi msj msj phu -iLC +wyy tIT olz pOs olz tIT -skS +jey iXM uIk uWT @@ -80466,7 +79900,7 @@ cNV cNV cCC xho -xho +vDV uAd saC saC @@ -80496,7 +79930,7 @@ saC saC saC saC -oaj +bzC iAv jqL vTK @@ -80571,15 +80005,15 @@ ugV jXQ nQx fjr -nIu +miz ofd iiL xeg uMO oXF ofd -aPS -vXc +ubH +spo vXc vXc vXc @@ -80634,7 +80068,7 @@ tmy pfD hyf wIr -ttd +dgY aPu xgH uWT @@ -80693,7 +80127,7 @@ cNV lxW dCx dtr -xho +vDV uAd saC saC @@ -80753,11 +80187,11 @@ pjJ lCH vjW pjJ -ien +clY hJZ hJZ jqF -vne +oxt hhD ahP xyL @@ -80805,8 +80239,8 @@ ocn qGK xvW jct -qQM -vXc +ubH +spo pgm vXc yiM @@ -80920,7 +80354,7 @@ cNV fcV dCx otQ -xho +vDV uAd saC kwJ @@ -80979,12 +80413,12 @@ ylm pjJ lCH pjJ -ien -ien -ien +pjJ +clY +clY hJZ hJZ -vne +oxt fjr crH xyL @@ -81032,8 +80466,8 @@ iaY bGT xvW tRd -qQM -vXc +ubH +spo tpD qQi qQi @@ -81083,10 +80517,10 @@ tSL tSL tSL tSL -sYv -ncg -ncg -sYv +tOo +oIu +oIu +tOo wIr wIr pXz @@ -81109,7 +80543,7 @@ ncg ncg ncg ncg -sYv +mRh wIr wIr vDL @@ -81147,7 +80581,7 @@ cNV saC otQ otQ -xho +vDV uAd xgl kwJ @@ -81207,11 +80641,11 @@ vjW lCH pjJ pjJ -pjJ -ien -ien -ien -ien +clY +clY +clY +clY +oxt fjr crH xyL @@ -81252,7 +80686,7 @@ rCV cpy fjr fjr -wsX +miz ofd oWV xeg @@ -81260,7 +80694,7 @@ qGK oWV ofd ubH -vXc +spo yiM yiM yiM @@ -81314,7 +80748,7 @@ lyD mPr hFX bCy -tOo +iUX wIr wIr hwa @@ -81323,21 +80757,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 @@ -81374,13 +80808,13 @@ saC saC otQ otQ -xho -uAd -dEk -xho -xho -yeS -jKu +apS +dAm +aDj +cJo +cJo +dLs +cfv xho otQ saC @@ -81434,10 +80868,10 @@ vjW hdu nCa nCa -nCa -nCa -nCa -gtS +yhK +yhK +yhK +iSf oVO nQx crH @@ -81479,15 +80913,15 @@ fjr cpy cpy fjr -crH +miz pQE pQE oFN cXm pQE pQE +ubH spo -vXc yiM yiM iBY @@ -81541,7 +80975,7 @@ mPr mPr hFX hFX -bCy +iVk bYV wIr wIr @@ -81550,7 +80984,7 @@ mpF wIr wIr rZK -lyD +jig mPr mPr mPr @@ -81607,7 +81041,7 @@ dEk yeS yeS yeS -jKu +oML xho saC saC @@ -81656,15 +81090,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 +81140,15 @@ cpy cpy cpy fjr -crH +miz ofd otj uPy uMO rmi ofd +ubH spo -vXc yiM yiM qCY @@ -81777,7 +81211,7 @@ jmv hYL rQg vdp -mPr +xAR mPr tNc gUj @@ -81834,7 +81268,7 @@ ejo dOw dOw dOw -fda +gTw tiQ tiQ tiQ @@ -81861,7 +81295,7 @@ mKN lko lLA jqL -tNT +cBU mvI pZy wAB @@ -81882,8 +81316,8 @@ kri kEj ldy joJ -gMe -jkO +gWI +gWI oUq oUq tVa @@ -81933,15 +81367,15 @@ cpy cpy cpy fjr -crH +miz ofd qSk xeg qGK qSk ofd +ubH spo -vXc yiM yiM qCY @@ -82004,7 +81438,7 @@ tkf hYL rQg vdp -mPr +xAR mPr tNc nax @@ -82059,9 +81493,9 @@ saC saC saC otQ -eyh -cRN -eQu +otQ +otQ +otQ saC saC saC @@ -82167,10 +81601,10 @@ xeg qGK qSk ofd +ubH spo yiM yiM -yiM qCY uie yiM @@ -82231,7 +81665,7 @@ tkf hYL rQg vdp -mPr +xAR mPr mPr iCb @@ -82286,7 +81720,7 @@ saC saC saC saC -oEw +yeS saC saC saC @@ -82394,10 +81828,10 @@ xeg qGK rqs ofd +ubH spo yiM yiM -yiM bYS xLY yiM @@ -82458,7 +81892,7 @@ tkf hYL rQg vdp -mPr +xAR mPr nax bjX @@ -82513,7 +81947,7 @@ saC saC saC saC -qpD +saC saC saC saC @@ -82622,7 +82056,7 @@ wwX rqs pQE vSN -cWT +hHh cWT cWT cWT @@ -82740,7 +82174,7 @@ saC saC saC otQ -eVg +otQ otQ saC saC @@ -82912,7 +82346,7 @@ dgY wIr wIr vdp -mPr +xAR mPr aPe ylo @@ -82967,7 +82401,7 @@ saC wLp kbV kbV -gPq +kbV kbV kbV saC @@ -83139,7 +82573,7 @@ tkf pfD rQg vdp -mPr +xAR mPr uXp ylo @@ -83194,9 +82628,9 @@ wLp qUQ qUQ qUQ -ezj -cSh -feF +qUQ +qUQ +sxU qUQ qUQ qUQ @@ -83234,17 +82668,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 +82716,7 @@ xlU sjy sjy sjy -lea +drg sjy tpa tpa @@ -83423,8 +82857,8 @@ dDC dDC dDC dDC -fhQ -fpB +dDC +dDC dDC saC saC @@ -83464,14 +82898,14 @@ saC saC saC saC -tTv +oUq men xVB onM men iQb pXh -tTv +oUq oUq tTl bJN @@ -83593,7 +83027,7 @@ oLa hYL rQg vdp -mPr +xAR qbG aPe nnG @@ -83651,7 +83085,7 @@ tjg kbV tjg tjg -gPq +kbV saC saC saC @@ -83745,7 +83179,7 @@ sjy sjy uqx sjy -yat +vKJ sjy uqx sjy @@ -83878,7 +83312,7 @@ tjg kbV tjg tjg -gPq +kbV saC saC saC @@ -84105,7 +83539,7 @@ kbV xiY fKt fKt -vzd +ear tQw saC saC @@ -84274,7 +83708,7 @@ tkf pfD rQg dQQ -nax +xAR nax uvg cfT @@ -84332,7 +83766,7 @@ xiY xiY tjg tjg -gPq +kbV tjg tjg hJB @@ -84501,7 +83935,7 @@ jmv wIr wIr glV -mPr +xAR nax nax uvg @@ -84572,11 +84006,11 @@ hLY saC lmY iBI -iQe +hmV pfj -jjV +hdQ cuu -jVC +ban tiQ tiQ kEx @@ -84588,9 +84022,9 @@ saC uhx pwX pwX +qjG saC -saC -tTv +oUq men sse iZS @@ -84599,14 +84033,14 @@ wIx jfH men iQb -tTv +oUq bUN saC saC saC saC saC -tTv +oUq mVm sBH kXY @@ -84728,7 +84162,7 @@ jmv wIr wIr vdp -mPr +xAR nax nax nax @@ -84815,9 +84249,9 @@ saC yaj qjG qjG -saC -saC -tTv +qjG +pwC +oUq nHg hzV iZS @@ -84825,15 +84259,15 @@ jkJ xLi men men -tTv -tTv -tTv +oUq +oUq +oUq saC saC saC saC -tTv -tTv +oUq +oUq mVm hrl kXY @@ -84955,7 +84389,7 @@ tkf pfD rQg vdp -mPr +xAR mPr nax nax @@ -85026,33 +84460,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 +84616,7 @@ tkf hYL rQg vdp -mPr +xAR mPr nax nax @@ -85257,28 +84691,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 +84805,7 @@ jmG oQN vBd wtT -pnu +sES vBd eVc vVS @@ -85380,11 +84814,11 @@ gwP ild xJd jwM -khd +jmG wZt jwM nPc -khd +jmG xDD xDD jmG @@ -85409,7 +84843,7 @@ oLa hYL rQg vdp -mPr +xAR mPr mPr nax @@ -85481,23 +84915,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 +84939,7 @@ sfc xSE bCX iQb -tTv +oUq oUq cCL sGv @@ -85607,11 +85041,11 @@ eHF ftK pMs jEW -khd +jmG nnB fvN ful -khd +jmG xDD xDD jmG @@ -85636,7 +85070,7 @@ dgY hYL rQg vdp -mPr +xAR mPr mPr mPr @@ -85722,17 +85156,17 @@ pwC qjG yaj qjG +qjG pwC saC saC saC -saC hXt saC jkJ mIq iQb -tTv +oUq oUq vVx fHH @@ -85834,11 +85268,11 @@ jmG jmG jmG jmG -khd +jmG eNc wZy teO -khd +jmG aZj aZj jmG @@ -85854,16 +85288,16 @@ jmG xAR mPr hFX -tEu -bYV +iVU +jeD wIr wIr bZV mpF wIr wIr -rZK -gGM +jfK +jCQ mPr mPr mPr @@ -85959,7 +85393,7 @@ kwg jkJ xLi iQb -tTv +oUq oUq oUq suS @@ -86081,7 +85515,7 @@ jmG xAR mPr tEu -tOo +iUX wIr wIr pNJ @@ -86090,7 +85524,7 @@ xnp tPa wIr wIr -dGD +jIQ mcO mPr mPr @@ -86186,7 +85620,7 @@ kwg jkJ xLi nMw -tTv +oUq oUq hEJ kgR @@ -86225,7 +85659,7 @@ wcp wwM jYZ hlH -hVh +jHm jtZ lvX lvX @@ -86298,7 +85732,7 @@ qNR ifB ptp jmG -khd +jmG ycH gQV piY @@ -86413,7 +85847,7 @@ uZV neI xLi men -tTv +oUq oUq xuQ fHH @@ -87330,15 +86764,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 +86989,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 +87200,7 @@ saC cnA hdQ xmD -xQc +qjG qJE xQc qJE @@ -87784,15 +87218,15 @@ qEQ lYK hvh pqQ +lfj bjd -nTj qqN tbK oan wjP -isL -nTj -cpy +ifh +iGl +qqN ien rxI nLF @@ -87887,12 +87321,12 @@ yhi xPK oTG jmG -khd +jmG pjm opQ ydy -ydy -mUo +opQ +opQ jmG xzK xxq @@ -87992,8 +87426,8 @@ saC eBm gWg xmD -xQc -xQc +qjG +qjG qJE xQc xQc @@ -88011,15 +87445,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 +87551,9 @@ jmG uYq aVX meb -ubJ -ubJ -ubJ +meb +meb +aVX jmG hMz fWG @@ -88184,14 +87618,14 @@ aEL aEL aEL jcl -jVa +jcl jcl jcl ewp fIe fIe fIe -aWX +fIe fIe fMd ewt @@ -88217,9 +87651,9 @@ mZU wXA hwG syg -jjV xmD -cHu +xmD +tMV jVC qJE qJE @@ -88238,15 +87672,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 +87773,14 @@ yhi spM jmG jmG -khd +jmG vBd brk rdF ild -ban -ubJ -ubJ +jwM +iTn +iUT jmG hMz fWG @@ -88445,8 +87879,8 @@ yiu cpZ kda qJE -xQc -xQc +qjG +qjG xmD mPY qJE @@ -88465,15 +87899,15 @@ eZF lYK hvh eZF +lfj bjd -nTj -ipH +qqN vrE aJr -tLX +hYk +igp bjC -nTj -ien +qqN ien ien cpy @@ -88569,7 +88003,7 @@ jmG eSy ild dco -ild +iSF jwM liN ild @@ -88672,7 +88106,7 @@ yiu wvB xmD qJE -xQc +qjG xmD xmD mPY @@ -88692,15 +88126,15 @@ pqQ lYK hvh eZF +lfj bjd -nTj qqN -gzw +tbK spn nCC -isL -nTj -cpy +igA +iGl +qqN cpy cpy cpy @@ -88741,7 +88175,7 @@ gwR sjy sjy sjy -gEA +cxn sjy sjy cBs @@ -88793,8 +88227,8 @@ onX wiE uFF wFB -xqi -ild +jCU +iSF ild ild hOB @@ -88864,7 +88298,7 @@ aLJ dDS iZI fFw -fib +iZI jcl aCQ dXd @@ -88873,10 +88307,10 @@ jcl swu hwt jcl -eHp +swu dHk -gKD -gpu +vAu +lkx tra saC saC @@ -88898,8 +88332,8 @@ yiu yiu wvB xmD -xQc -xQc +qjG +qjG hdQ iQe vIS @@ -88919,15 +88353,15 @@ pqQ lYK hvh pqQ +lfj bjd -nTj qqN +tbK bjC -gNN +hZn bjC -isL -nTj -cpy +iGl +qqN cpy cpy cpy @@ -89091,7 +88525,7 @@ iZI dDS iZI iZI -svW +iZI jcl aCQ evx @@ -89100,11 +88534,11 @@ nTl jcl hwt jcl -svW +iZI dYX -hRy -gqG -gOo +lXC +lXC +lXC saC saC saC @@ -89125,7 +88559,7 @@ yiu uul dZG xmD -seF +qjG qJE lrQ dRy @@ -89146,15 +88580,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 +88638,7 @@ pNs xGf xGf whR -pGl +kqb mOG qcA fpl @@ -89318,7 +88752,7 @@ fib fXU fib fib -svW +aLJ jcl aCQ emr @@ -89327,12 +88761,12 @@ nTl dBe qZB jVa -svW +nno dYX -jcl -jcl -gOG -heF +lXC +lXC +lXC +aCQ saC saC saC @@ -89352,7 +88786,7 @@ yiu hLY knt kOF -seF +qjG qJE iQe baG @@ -89373,14 +88807,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 +88979,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 +89009,11 @@ vjl vjl xzu xzu -xzu +aWX hLY knt -xQc -xQc +qjG +qjG srf dRy yiu @@ -89600,16 +89034,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 +89092,7 @@ mUS jxT kqb kqb -pGl +kqb kqb kqb bJp @@ -89781,7 +89215,7 @@ fLA eVW hwt jcl -svW +nno rbW tiQ tiQ @@ -89805,7 +89239,7 @@ vlq xwZ syg iqz -xQc +qjG qJE qJE aox @@ -89827,16 +89261,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 +89319,7 @@ oMn oYZ pTl pKX -nlY +xBS xXg kqb kqb @@ -89928,7 +89362,7 @@ wiE wiE uGl six -sUj +jCU jwM ild vBd @@ -90007,12 +89441,12 @@ ojn swu swu hwt -aEL -svW +jcl +iZI dYX -hRy -ifh -gOo +lXC +lXC +lXC aCQ lXC saC @@ -90061,9 +89495,9 @@ woU woU xXv lfj -bjd -bjd -alI +lfj +lfj +mPj cpy cpy cpy @@ -90088,9 +89522,9 @@ uog xBo nnz oVD -plz +xjF xFp -sYk +xZP uNB xUQ ykc @@ -90112,8 +89546,8 @@ djM xAZ pTl uNB -nlY -ylr +xBS +xXg wIi kqb kqb @@ -90155,7 +89589,7 @@ yhi wiE spM jmG -aza +iRV jwM ild vBd @@ -90234,21 +89668,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 +89693,7 @@ vjl qjG hLY knt -whK +tMV xmD hna yiu @@ -90278,8 +89712,8 @@ pAw tiQ bjd yje -lYK -jZE +eMm +grz hNP hNP hNP @@ -90289,8 +89723,8 @@ vFD dfK xXv lfj -bjd -alI +lfj +mPj cpy cpy cpy @@ -90310,14 +89744,14 @@ xjF vSc xjF gCO -hKz +meM wgW wgW jRT jRT ryO xFp -sYk +xZP uNB xUQ xAZ @@ -90339,8 +89773,8 @@ xOw ykT xUQ uNB -xOB -tTD +xBS +xXg ylr ylr ylr @@ -90382,7 +89816,7 @@ wiE wEW hzu wFB -bhh +jCU ild jwM vBd @@ -90462,20 +89896,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 +89939,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 +89978,7 @@ jRT sgV ryO xFp -sYk +xZP uNB pTl xAZ @@ -90566,8 +90000,8 @@ xOw ykT xUQ uNB -xOB -tTD +xBS +dCJ tTD sKJ sKJ @@ -90609,7 +90043,7 @@ taw aYQ gJM jmG -sBz +jCU ild jwM okA @@ -90689,7 +90123,7 @@ eAz lFk hwt jcl -mrL +swu dYX tiQ tiQ @@ -90698,11 +90132,11 @@ hfi lXC lXC tiQ -hTI -aCQ -dhJ -iTn -jfK +saC +saC +saC +saC +saC tiQ jEq saC @@ -90713,7 +90147,7 @@ yiu yiu lDc lMN -whK +tMV mnw qjG yiu @@ -90740,11 +90174,11 @@ tyU lYK mqx mqx -hvh +icr pqQ qpd -bjd -alI +gOo +mPj cpy cpy cpy @@ -90771,7 +90205,7 @@ ydb val ryO xFp -sYk +xZP uNB pTl ykT @@ -90793,8 +90227,8 @@ xOw xAZ pTl uNB -xOB -tTD +xBS +dCJ tTD sKJ tTD @@ -90827,7 +90261,7 @@ fdb vNk vNk vNk -eds +vNk vNk mFA eur @@ -90916,20 +90350,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 +90374,7 @@ leH lmu lDr lNI -aqo +qET ugN pHT lXQ @@ -90956,10 +90390,10 @@ xmD knt xmD skk -tiQ -bjd +lTi bjd bjd +eRg wRf bjd hKI @@ -90967,11 +90401,11 @@ hFA lYK mqx mqx -hvh +icr pqQ qpd -bjd -alI +gOo +mPj cpy cpy cpy @@ -90996,9 +90430,9 @@ wgW wgW ydb xRQ -plz +xjF xFp -sYk +xZP pKX pKX vnq @@ -91020,8 +90454,8 @@ qCd dak pKX pKX -xOB -tTD +xBS +dCJ tTD tTD tTD @@ -91061,7 +90495,7 @@ lot aTR xvl xvl -cxE +jmG jmG jmG xzK @@ -91143,20 +90577,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 +90616,9 @@ xVq liK gyC pfj -pvz -tiQ -tiQ +ayX +qjG +lTi bjd rMD eZF @@ -91194,11 +90628,11 @@ bjd lYK mqx mqx -hvh +icr pqQ qpd -bjd -alI +gOo +mPj cpy cpy cpy @@ -91225,8 +90659,8 @@ jRc xjF xjF xFp -aDj -xAw +xZP +pKX nvt ykT kGb @@ -91246,9 +90680,9 @@ fyl kcd oig cLQ -xAw -lCn -tTD +pKX +xBS +dCJ tTD tTD tTD @@ -91288,8 +90722,8 @@ icW eHI xvl xvl -akk -xxq +teD +xzK xxq xxq xxq @@ -91372,19 +90806,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 +90826,8 @@ knt lAD saC saC -seF -xQc +cWH +cHy saC saC myV @@ -91421,22 +90855,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 +90908,9 @@ qqx pag bia gYH -lDE -tTD -tTD +xBS +dCJ +rnB tTD tTD tTD @@ -91516,7 +90950,7 @@ agM xvl xvl xWO -fWG +hMz fWG fWG fWG @@ -91605,13 +91039,13 @@ hRW egD lXC lXC -iZI -hVk -igp -swu -iUT -kHX -evx +saC +saC +saC +saC +saC +saC +saC xQc lAK xYD @@ -91622,7 +91056,7 @@ ncA lDN pxN saC -xQc +cHy sdR lNA wXA @@ -91640,7 +91074,7 @@ pfj qjG qjG bjd -nRy +lfj pqQ bjd fSf @@ -91648,11 +91082,11 @@ cZH mqx mqx mqx -hvh +icr pqQ qpd -bjd -alI +gOo +mPj cpy cpy cpy @@ -91663,7 +91097,7 @@ vGB vGB wDj wDj -pZo +fcW vGp vGp eKe @@ -91701,10 +91135,10 @@ mTK sdC dvp uKy -lDE -tTD -tTD -tTD +xBS +dCJ +rnB +rnB tTD tTD cpy @@ -91742,8 +91176,8 @@ xgA bsG vOT xvB -xWO -fWG +otS +hMz fWG fWG fWG @@ -91831,14 +91265,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 +91283,7 @@ nwR oem maj maj -seF +cWH knt hna yiu @@ -91867,19 +91301,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 +91340,8 @@ qSH qSH qSH qSH -cfv -xAw +sPh +pKX xnI ykT djM @@ -91927,11 +91361,11 @@ art gNn mgb rUe -xAw +pKX xBS -tTD -tTD -tTD +dCJ +rnB +rnB tTD tTD tTD @@ -91969,8 +91403,8 @@ aSZ acE vOT xvB -xWO -fWG +otS +hMz fWG fWG cpy @@ -92059,18 +91493,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 +91533,14 @@ pqQ bjd bjd bjd -lYK -mqx -mqx -hvh +rMD +rMD +rMD +lfj pqQ qpd -bjd -alI +gOo +mPj cpy cpy wDj @@ -92133,7 +91567,7 @@ rMR qSH qSH vGp -onj +sPh pKX pKX pKn @@ -92155,10 +91589,10 @@ heX jMk pKX pKX -xOB -tTD -tTD -tTD +xBS +dCJ +rnB +rnB tTD tTD tTD @@ -92196,8 +91630,8 @@ eMD qZd xvl xvl -xWO -fWG +otS +hMz fWG cpy uwT @@ -92286,24 +91720,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 +91755,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 +91794,7 @@ qSH qSH vGp vGp -onj +sPh uNB xUQ ykT @@ -92382,11 +91816,11 @@ iGn uOp bSI uNB -xOB -tTD -tTD -tTD -tTD +xBS +dCJ +rnB +rnB +rnB sKJ tTD tTD @@ -92423,8 +91857,8 @@ xje ffb xvl xvl -xWO -fWG +otS +hMz dBD sps sps @@ -92507,30 +91941,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 +91983,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 +92021,7 @@ qSH qSH vGp vGp -onj +sPh uNB xUQ xAZ @@ -92609,9 +92043,9 @@ sAp vHw fEF uNB -xOB -tTD -tTD +xBS +dCJ +rnB sKJ sKJ sKJ @@ -92650,8 +92084,8 @@ xhD acE vOT xvB -xWO -fWG +otS +hMz qjO ylo ylo @@ -92734,29 +92168,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 +92209,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 +92232,7 @@ iMQ wDj wDj wDj -pRv +fda xSv xSv xSv @@ -92814,7 +92248,7 @@ qSH vGp vGp vGp -onj +sPh uNB pTl xAZ @@ -92836,9 +92270,9 @@ xOw snb rkV uNB -xOB -tTD -hrk +xBS +xXg +vlT vlT vlT vlT @@ -92877,8 +92311,8 @@ xgA acE vOT xvB -xWO -fWG +otS +hMz qjO ylo byR @@ -92961,18 +92395,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 +92435,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 +92457,9 @@ gjA rtX wDj wDj -vGp -vGp -pZo +xFp +xFp +fcW qSH qSH qSH @@ -93041,7 +92475,7 @@ qSH vGp vGp kqp -sYk +xZP uNB xUQ xnI @@ -93063,8 +92497,8 @@ bSa xAZ xUQ uNB -nlY -vlT +xBS +xXg wIi tTK tTK @@ -93104,8 +92538,8 @@ xjY qZd xvl xvl -xWO -fWG +otS +hMz qjO ylo sGj @@ -93195,11 +92629,11 @@ aCQ lXC lXC tiQ -hZK -aCQ -fMT -iVk -jic +saC +saC +saC +saC +saC tiQ jjV iQe @@ -93228,21 +92662,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 +92686,7 @@ vGB mTa oqn pdv -umR +fcW qSH qSH qSH @@ -93268,7 +92702,7 @@ vGp vGp kqp xFp -xAw +pKX pKX pKX kIZ @@ -93290,7 +92724,7 @@ vfK rie xUQ pKX -nlY +xBS xXg tTK tTK @@ -93331,8 +92765,8 @@ qIE wog xvl xvl -xWO -fWG +otS +hMz qjO jOF oiR @@ -93415,18 +92849,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 +92887,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 +92913,7 @@ vGB ncz kKj pgp -umR +fcW qSH qSH vGp @@ -93558,8 +92992,8 @@ xhD bsG kEQ xvB -xWO -fWG +otS +hMz qjO ylo hYf @@ -93640,19 +93074,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 +93114,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 +93140,7 @@ wDj nff oxT pgG -umR +fcW qSH vGp vGp @@ -93785,8 +93219,8 @@ xhD bsG vOT xvB -xWO -fWG +otS +hMz qjO ylo ylo @@ -93867,18 +93301,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 +93342,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 +93364,10 @@ vGB moQ vGB wDj -qSH -qSH -qSH -umR +xFp +xFp +dHF +feF vGp vGp vGp @@ -94013,7 +93447,7 @@ eHI xvl xvl xwv -fWG +hMz gBy mUr kSm @@ -94094,17 +93528,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 +93569,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 +93674,7 @@ acE kEQ xvl otS -fWG +hMz fWG fWG uwT @@ -94312,7 +93746,7 @@ fib gbQ jYj jYj -eFP +elx fIe egd ewt @@ -94321,16 +93755,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 +93795,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 +93818,8 @@ eJR eJR fQD vGB -qSH -qSH +xFp +ezj qSH umR vGp @@ -94467,7 +93901,7 @@ acE kEQ meK otS -fWG +hMz cpy cpy uwT @@ -94539,20 +93973,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 +94020,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 +94045,8 @@ rlB azE qYp vGB -qSH -qSH +xFp +ezj qSH umR vGp @@ -94694,7 +94128,7 @@ bsG kEQ xvl otS -fWG +hMz cpy uwT uwT @@ -94766,7 +94200,7 @@ iZI dDS iZI iZI -svW +lXC jcl aCQ evx @@ -94775,11 +94209,11 @@ nTl jcl hwt jcl -svW +lXC hwt -hRy -gqG -eZq +lXC +lXC +nno saC saC saC @@ -94817,18 +94251,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 +94272,8 @@ rlB eJR loS vGB -qSH -qSH +xFp +ezj qSH umR vGp @@ -94920,8 +94354,8 @@ icW oPW xvl xvl -naZ -uwT +xwv +hMz fWG uwT uwT @@ -94993,7 +94427,7 @@ iZI dDS iZI iZI -fib +iZI jcl aCQ equ @@ -95002,7 +94436,7 @@ jcl dXd fbC fIe -ame +oWq fDn fDH fFE @@ -95045,18 +94479,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 +94499,8 @@ eJR eJR xJg wDj -aij -qSH +dsl +ezj qSH umR qSH @@ -95147,8 +94581,8 @@ xhD bsG kEQ xvB -xWO -uwT +otS +hMz fWG fWG uwT @@ -95292,8 +94726,8 @@ rlB eJR rtX wvX -nTp -qSH +esB +ezj qSH umR qSH @@ -95374,8 +94808,8 @@ xhD bsG kEQ xvB -xWO -uwT +otS +hMz fWG fWG uwT @@ -95519,8 +94953,8 @@ rlB iJE rtX ygD -nTp -qSH +esB +ezj qSH umR qSH @@ -95594,15 +95028,15 @@ uuD uuD lFO gIg -wrY +imT xvl xvl xjY qZd xvl xvl -xWO -uwT +otS +hMz uwT fWG fWG @@ -95682,7 +95116,7 @@ jcl jcl evx jcl -jVa +jcl jcl jcl jcl @@ -95746,8 +95180,8 @@ hcE sjQ wJk wDj -bcl -qSH +euN +ezj qSH umR qSH @@ -95821,15 +95255,15 @@ evv uuD uuD xXg -rIr +imT xvl xvl xje wog xvl xvl -xWO -uwT +otS +hMz uwT uwT fWG @@ -95973,8 +95407,8 @@ eJR azE wJk wDj -qSH -qSH +xFp +ezj qSH qQB qDV @@ -96055,8 +95489,8 @@ xhD bsG kEQ xvB -xWO -uwT +otS +hMz uwT uwT fWG @@ -96200,8 +95634,8 @@ eJR eJR mnx wDj -qSH -qSH +xFp +ezj qSH qSH umR @@ -96282,13 +95716,13 @@ xgA bsG vOT xvB -xWO -uxT +otS +hMz +kIV sps sps sps -dsl -uwT +ppD uwT uwT uwT @@ -96427,8 +95861,8 @@ sOL sOL sOL wDj -ltB -ltB +eyh +eyh ltB ltB bBW @@ -96502,20 +95936,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 +96163,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 +96333,7 @@ vGp cpy pZo tWt -nSE +tDS tDS thc thc @@ -96956,20 +96390,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 +96617,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 +96844,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 +97071,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 +97222,7 @@ dVo ipf qxX qUq -kNM +guj nLW oBx nTg @@ -97864,15 +97298,15 @@ xXg xXg xXg xXg -wrY +imT xvl xvl lot vdz xvl xvl -xWO -uwT +otS +hMz uwT uwT fWG @@ -98098,8 +97532,8 @@ swF fzV qqR cUG -xWO -uwT +iQR +hMz uwT uwT fWG @@ -98325,8 +97759,8 @@ xRw uaI eHB cUG -tti -uwT +xzK +cpk uwT uwT fWG @@ -99414,10 +98848,10 @@ mgk vUb gdO gdO -psC +gdO ayn wHY -psC +gdO gdO tTK tTK @@ -101000,7 +100434,7 @@ umR vGp vGp vGp -uRb +fhQ gdO gdO gdO @@ -101227,16 +100661,16 @@ umR qSH vGp vGp -hHh -sYk +eKe +xZP gdO ene vTW puJ ufU gdO -nlY -ylr +xBS +xXg ylr ylr ylr @@ -101462,8 +100896,8 @@ vDa pej ufU raj -xOB -sKJ +lDE +dCJ tTD rnB rnB @@ -101689,8 +101123,8 @@ vDa pej rMr gdO -lCn -tTD +lDE +dCJ rnB rnB rnB @@ -101917,7 +101351,7 @@ puJ pej uBd lDE -rnB +dCJ rnB rnB rnB @@ -102144,7 +101578,7 @@ puJ pej qZC lDE -rnB +dCJ rnB rnB rnB @@ -102363,15 +101797,15 @@ vGp vGp vGp vGp -gBb +ioD gdO ene pej pej ufU gdO -xBS -rnB +lDE +dCJ rnB rnB rnB @@ -102597,8 +102031,8 @@ pej pej ufU raj -xOB -rnB +lDE +dCJ rnB rnB rnB @@ -102817,7 +102251,7 @@ vGp vGp kQJ tPb -onj +sPh gdO ene puJ @@ -102825,7 +102259,7 @@ puJ ene gdO cpy -rnB +dCJ rnB rnB rnB @@ -103475,14 +102909,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 +103136,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 +103363,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 +103590,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 +103817,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 becac81a1897..6f03ce4c2cba 100644 --- a/maps/map_files/LV624/LV624.dmm +++ b/maps/map_files/LV624/LV624.dmm @@ -1126,9 +1126,7 @@ /area/lv624/ground/barrens/containers) "afu" = ( /obj/item/ammo_casing, -/obj/structure/machinery/floodlight/landing{ - name = "bolted floodlight" - }, +/obj/structure/machinery/colony_floodlight, /turf/open/floor/plating{ dir = 9; icon_state = "warnplate" @@ -1162,9 +1160,7 @@ }, /area/lv624/ground/barrens/central_barrens) "afy" = ( -/obj/structure/machinery/floodlight/landing{ - name = "bolted floodlight" - }, +/obj/structure/machinery/colony_floodlight, /turf/open/floor/plating{ dir = 5; icon_state = "warnplate" @@ -1409,9 +1405,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" = ( @@ -1588,9 +1582,7 @@ }, /area/lv624/ground/barrens/west_barrens/ceiling) "ahM" = ( -/obj/structure/machinery/floodlight/landing{ - name = "bolted floodlight" - }, +/obj/structure/machinery/colony_floodlight, /turf/open/floor/plating{ dir = 10; icon_state = "warnplate" @@ -1630,9 +1622,7 @@ }, /area/lv624/ground/barrens/central_barrens) "ahT" = ( -/obj/structure/machinery/floodlight/landing{ - name = "bolted floodlight" - }, +/obj/structure/machinery/colony_floodlight, /turf/open/floor/plating{ dir = 6; icon_state = "warnplate" @@ -1905,7 +1895,7 @@ /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, @@ -2595,9 +2585,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, @@ -3071,7 +3061,7 @@ /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, @@ -3272,7 +3262,8 @@ /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, @@ -3347,8 +3338,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, @@ -3436,8 +3427,8 @@ }, /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, @@ -3507,16 +3498,12 @@ }, /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, @@ -4456,10 +4443,6 @@ icon_state = "whitepurplecorner" }, /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, @@ -4839,9 +4822,6 @@ icon_state = "whitepurplecorner" }, /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,12 +4850,6 @@ /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{ @@ -4905,12 +4879,6 @@ icon_state = "vault" }, /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{ @@ -5080,10 +5048,6 @@ icon_state = "whitepurple" }, /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{ @@ -5167,12 +5131,6 @@ icon_state = "vault" }, /area/lv624/lazarus/robotics) -"azb" = ( -/obj/structure/prop/mech/mech_parts/part/gygax_torso, -/turf/open/floor{ - icon_state = "vault" - }, -/area/lv624/lazarus/robotics) "azc" = ( /obj/structure/machinery/power/apc{ dir = 1; @@ -5515,13 +5473,6 @@ icon_state = "vault" }, /area/lv624/lazarus/robotics) -"aAk" = ( -/obj/structure/prop/mech/mech_parts/chassis/gygax, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, -/area/lv624/lazarus/robotics) "aAl" = ( /turf/open/gm/dirt, /area/lv624/ground/jungle/west_jungle) @@ -6030,15 +5981,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 @@ -6381,8 +6323,9 @@ }, /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) @@ -7852,14 +7795,6 @@ /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, @@ -7956,11 +7891,11 @@ "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) @@ -9570,6 +9505,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" = ( @@ -9580,8 +9516,7 @@ req_one_access = null }, /turf/open/floor{ - dir = 9; - icon_state = "brown" + icon_state = "delivery" }, /area/lv624/lazarus/comms) "aPR" = ( @@ -9867,38 +9802,28 @@ "aRd" = ( /obj/structure/surface/table, /obj/item/device/mmi/radio_enabled, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, -/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" }, /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 +"aRe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/power/monitor, +/obj/item/ashtray/glass{ + pixel_x = 3; + pixel_y = 15 }, /turf/open/floor{ dir = 9; icon_state = "brown" }, /area/lv624/lazarus/comms) +"aRf" = ( +/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) @@ -9910,10 +9835,11 @@ }, /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, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, /turf/open/floor{ dir = 9; icon_state = "brown" @@ -10142,8 +10068,14 @@ /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 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 }, /turf/open/floor{ dir = 9; @@ -10151,8 +10083,12 @@ }, /area/lv624/lazarus/comms) "aSe" = ( -/obj/structure/surface/table, -/obj/item/device/multitool, +/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{ dir = 9; icon_state = "brown" @@ -10292,30 +10228,24 @@ }, /area/lv624/lazarus/canteen) "aSI" = ( -/obj/structure/machinery/computer/telecomms/server, +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 9; icon_state = "brown" }, /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" + icon_state = "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, @@ -10404,25 +10334,25 @@ "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, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 9; icon_state = "brown" }, /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 + }, +/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{ dir = 9; @@ -10432,19 +10362,9 @@ "aTk" = ( /obj/effect/landmark/static_comms/net_one, /turf/open/floor{ - dir = 9; - icon_state = "brown" + icon_state = "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{ @@ -10468,6 +10388,11 @@ /obj/structure/machinery/colony_floodlight_switch{ pixel_y = 30 }, +/obj/item/device/assembly/voice, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, /turf/open/floor{ icon_state = "dark" }, @@ -10559,7 +10484,6 @@ /obj/structure/machinery/power/apc{ dir = 1; name = "Telecomms APC"; - pixel_y = 30; start_charge = 15 }, /turf/open/floor{ @@ -10567,7 +10491,12 @@ }, /area/lv624/lazarus/comms) "aTK" = ( -/turf/open/gm/dirt, +/obj/structure/surface/rack, +/obj/item/device/multitool, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, /area/lv624/lazarus/comms) "aTM" = ( /turf/open/floor{ @@ -10575,6 +10504,10 @@ }, /area/lv624/lazarus/engineering) "aTN" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/floor/plating{ icon_state = "warnplate" }, @@ -10701,22 +10634,21 @@ req_one_access = null }, /turf/open/floor{ - dir = 9; - icon_state = "brown" + icon_state = "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, +/obj/effect/decal/cleanable/dirt, +/obj/structure/foamed_metal{ + layer = 3.01 + }, +/obj/structure/machinery/fuelcell_recycler/full, /turf/open/floor{ icon_state = "dark" }, @@ -10733,17 +10665,18 @@ }, /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, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, /turf/open/floor{ icon_state = "dark" }, @@ -10909,6 +10842,7 @@ /area/lv624/ground/jungle/south_west_jungle) "aVb" = ( /obj/structure/machinery/light, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 9; icon_state = "brown" @@ -10918,9 +10852,8 @@ /obj/structure/lattice{ layer = 2.9 }, -/obj/structure/machinery/power/geothermal{ - fail_rate = 5 - }, +/obj/structure/platform, +/obj/structure/machinery/power/reactor/colony, /turf/open/floor/plating{ dir = 6; icon_state = "warnplate" @@ -10936,9 +10869,11 @@ /obj/structure/lattice{ layer = 2.9 }, -/obj/structure/machinery/power/geothermal{ - fail_rate = 5 +/obj/item/clothing/head/hardhat/orange{ + pixel_x = -7; + pixel_y = 13 }, +/obj/structure/machinery/power/reactor/colony, /turf/open/floor/plating{ dir = 8; icon_state = "warnplate" @@ -10948,15 +10883,16 @@ /obj/structure/lattice{ layer = 2.9 }, -/obj/structure/machinery/power/geothermal{ - fail_rate = 5 - }, +/obj/structure/machinery/power/reactor/colony, /turf/open/floor/plating{ dir = 4; icon_state = "warnplate" }, /area/lv624/lazarus/engineering) "aVj" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; locked = 1; @@ -10965,7 +10901,7 @@ req_one_access = null }, /turf/open/floor{ - icon_state = "dark" + icon_state = "delivery" }, /area/lv624/lazarus/engineering) "aVk" = ( @@ -11066,11 +11002,12 @@ /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 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 }, /turf/open/floor{ icon_state = "dark" @@ -11083,22 +11020,28 @@ name = "General Listening Channel"; pixel_y = 30 }, +/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{ icon_state = "dark" }, /area/lv624/lazarus/engineering) "aVH" = ( -/obj/item/clothing/head/hardhat/orange, /obj/structure/machinery/light{ dir = 1 }, +/obj/structure/foamed_metal, /turf/open/floor{ icon_state = "dark" }, /area/lv624/lazarus/engineering) "aVI" = ( -/obj/structure/foamed_metal, /obj/structure/machinery/vending/coffee, +/obj/structure/foamed_metal, /turf/open/floor{ icon_state = "dark" }, @@ -11197,20 +11140,21 @@ /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, +/obj/item/shard, /turf/open/floor{ - dir = 9; - icon_state = "brown" + icon_state = "podhatchfloor" }, /area/lv624/lazarus/comms) "aWe" = ( -/obj/structure/machinery/computer/telecomms/monitor, +/obj/structure/machinery/computer/telecomms/monitor{ + pixel_y = 16 + }, /turf/open/floor{ - dir = 9; - icon_state = "brown" + icon_state = "dark" }, /area/lv624/lazarus/comms) "aWf" = ( @@ -11219,16 +11163,16 @@ req_access_txt = "100"; req_one_access = null }, -/obj/structure/foamed_metal, /turf/open/floor{ - icon_state = "dark" + icon_state = "delivery" }, /area/lv624/lazarus/engineering) "aWg" = ( -/obj/structure/machinery/power/geothermal, /obj/structure/lattice{ layer = 2.9 }, +/obj/structure/platform, +/obj/structure/machinery/power/reactor/colony, /turf/open/floor/plating{ dir = 10; icon_state = "warnplate" @@ -11324,28 +11268,38 @@ /obj/effect/decal/remains/xeno, /turf/open/gm/dirt, /area/lv624/ground/colony/south_medbay_road) -"aWx" = ( -/obj/structure/bed/chair/office/light, +"aWy" = ( +/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{ dir = 9; icon_state = "brown" }, /area/lv624/lazarus/comms) -"aWy" = ( -/obj/structure/foamed_metal, -/turf/open/gm/dirt, -/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, +/obj/structure/machinery/computer/telecomms/server{ + pixel_y = 16 + }, +/obj/structure/bed/chair/office/light{ + dir = 1 + }, /turf/open/floor{ - icon_state = "dark" + dir = 9; + icon_state = "brown" }, -/area/lv624/lazarus/engineering) +/area/lv624/lazarus/comms) "aWC" = ( /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass1, @@ -11357,31 +11311,35 @@ }, /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, +/obj/item/prop/alien/hugger, /turf/open/floor{ - icon_state = "dark" + dir = 9; + icon_state = "brown" }, -/area/lv624/lazarus/engineering) +/area/lv624/lazarus/comms) "aWF" = ( +/obj/effect/spawner/random/toolbox, +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/radio, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /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, +/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{ icon_state = "dark" }, @@ -11390,6 +11348,10 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/folder, /obj/item/device/assembly/signaller, +/obj/structure/platform_decoration{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -11399,6 +11361,7 @@ /obj/item/device/flashlight, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -11468,56 +11431,45 @@ /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 +/obj/structure/machinery/light{ + dir = 4 }, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/rods, /turf/open/floor{ dir = 9; icon_state = "brown" }, /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 +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, +/obj/structure/platform, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 9; icon_state = "brown" @@ -11530,11 +11482,24 @@ }, /area/lv624/lazarus/sleep_male) "aXd" = ( -/turf/open/gm/dirtgrassborder/south, +/obj/structure/bed/chair/office/light{ + dir = 1 + }, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, /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{ + dir = 9; + icon_state = "brown" + }, /area/lv624/lazarus/comms) "aXf" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -11545,7 +11510,7 @@ req_one_access = null }, /turf/open/floor{ - icon_state = "dark" + icon_state = "delivery" }, /area/lv624/lazarus/engineering) "aXg" = ( @@ -11556,7 +11521,7 @@ req_one_access = null }, /turf/open/floor{ - icon_state = "dark" + icon_state = "delivery" }, /area/lv624/lazarus/engineering) "aXh" = ( @@ -11581,19 +11546,29 @@ /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{ + dir = 9; + icon_state = "brown" + }, +/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 +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/power/apc{ + dir = 1; + name = "Geothermal APC"; + start_charge = 0 }, /turf/open/floor{ - icon_state = "dark" + icon_state = "delivery" }, /area/lv624/lazarus/engineering) "aXt" = ( @@ -11614,6 +11589,7 @@ dir = 1 }, /obj/structure/reagent_dispensers/fueltank, +/obj/effect/spawner/random/tool, /turf/open/floor{ icon_state = "dark" }, @@ -11677,11 +11653,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" = ( @@ -11706,6 +11684,7 @@ /obj/structure/machinery/light{ dir = 4 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -11720,6 +11699,7 @@ /area/lv624/lazarus/security) "aXN" = ( /obj/effect/spawner/random/powercell, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -11766,7 +11746,14 @@ /area/lv624/lazarus/landing_zones/lz2) "aXZ" = ( /obj/structure/surface/rack, -/obj/effect/spawner/random/tool, +/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" }, @@ -11795,19 +11782,13 @@ /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, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/rods, /turf/open/floor{ - icon_state = "dark" + dir = 9; + icon_state = "brown" }, -/area/lv624/lazarus/engineering) +/area/lv624/lazarus/comms) "aYj" = ( /obj/effect/landmark/lv624/xeno_tunnel, /obj/structure/flora/jungle/vines/light_3, @@ -12004,15 +11985,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,6 +11993,7 @@ name = "General Listening Channel"; pixel_x = -30 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -12031,6 +12004,7 @@ /obj/item/book/manual/engineering_guide, /obj/item/book/manual/engineering_hacking, /obj/item/book/manual/atmospipes, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -12041,6 +12015,10 @@ /obj/item/device/analyzer, /obj/item/device/multitool, /obj/item/device/assembly/prox_sensor, +/obj/effect/decal/cleanable/dirt, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, /turf/open/floor{ icon_state = "dark" }, @@ -12058,9 +12036,11 @@ "aZh" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, +/obj/item/tool/crowbar, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor{ - dir = 9; - icon_state = "brown" + icon_state = "dark" }, /area/lv624/lazarus/comms) "aZi" = ( @@ -12134,6 +12114,7 @@ /obj/structure/machinery/light{ dir = 8 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -12141,6 +12122,7 @@ "aZy" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/effect/landmark/objective_landmark/close, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -12213,14 +12195,28 @@ }, /area/lv624/lazarus/hop) "aZG" = ( -/obj/structure/filingcabinet, -/obj/effect/landmark/objective_landmark/close, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, /turf/open/floor{ - icon_state = "dark" + dir = 9; + icon_state = "brown" }, -/area/lv624/lazarus/engineering) +/area/lv624/lazarus/comms) "aZI" = ( -/obj/structure/filingcabinet/chestdrawer, +/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{ icon_state = "dark" }, @@ -12234,16 +12230,18 @@ }, /area/lv624/lazarus/engineering) "aZK" = ( -/obj/structure/surface/rack, -/obj/item/clothing/mask/gas, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 + }, /turf/open/floor{ dir = 9; icon_state = "brown" }, /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" = ( @@ -12301,10 +12299,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 +12306,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 +12363,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) @@ -12612,6 +12606,13 @@ "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{ + dir = 8; + icon_state = "vault" + }, +/area/lv624/lazarus/robotics) "bvS" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, /turf/open/auto_turf/strata_grass/layer1, @@ -12756,6 +12757,13 @@ }, /turf/open/gm/coast/beachcorner/north_east, /area/lv624/ground/caves/sand_temple) +"bJe" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "bJz" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/wygoon, @@ -12775,6 +12783,18 @@ "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{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "bMu" = ( /turf/open/gm/dirtgrassborder/west, /area/lv624/ground/jungle/east_jungle) @@ -12805,10 +12825,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 +12850,13 @@ /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{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "bQz" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/decal/grass_overlay/grass1{ @@ -12866,10 +12893,17 @@ /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{ + icon_state = "dark" + }, +/area/lv624/lazarus/comms) "bUs" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/ammo_magazine/shotgun/buckshot, @@ -12964,6 +12998,12 @@ icon_state = "whiteyellow" }, /area/lv624/lazarus/corporate_dome) +"cfA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/lv624/lazarus/secure_storage) "cfD" = ( /turf/closed/wall/r_wall/unmeltable, /area/lv624/lazarus/quartstorage/outdoors) @@ -13016,14 +13056,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, @@ -13152,9 +13196,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" = ( @@ -13179,6 +13226,18 @@ /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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "czq" = ( /obj/effect/landmark/objective_landmark/science, /turf/open/auto_turf/strata_grass/layer1, @@ -13338,6 +13397,17 @@ }, /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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "cNH" = ( /obj/structure/surface/rack, /obj/item/storage/box/beakers, @@ -13371,6 +13441,14 @@ /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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "cQX" = ( /obj/structure/stairs/perspective{ color = "#b29082"; @@ -13602,6 +13680,15 @@ icon_state = "dark" }, /area/lv624/ground/barrens/north_east_barrens/ceiling) +"drX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "dsi" = ( /obj/effect/landmark/monkey_spawn, /turf/open/gm/dirt, @@ -13695,10 +13782,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) @@ -13776,6 +13863,13 @@ /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{ + icon_state = "dark" + }, +/area/lv624/lazarus/comms) "dId" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, /turf/open/floor{ @@ -14152,6 +14246,16 @@ }, /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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "enn" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/decal/grass_overlay/grass1{ @@ -14167,6 +14271,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{ + icon_state = "vault" + }, +/area/lv624/lazarus/robotics) "eoM" = ( /turf/open/floor{ dir = 4; @@ -14232,6 +14342,16 @@ /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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "euW" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/tool/candle, @@ -14254,10 +14374,18 @@ /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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "eyn" = ( /obj/structure/flora/jungle/vines/light_3, /turf/closed/wall/strata_ice/jungle, @@ -14446,6 +14574,10 @@ "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{ @@ -14506,11 +14638,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) @@ -14570,6 +14702,13 @@ /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{ + icon_state = "dark" + }, +/area/lv624/lazarus/comms) "fio" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 9 @@ -14734,6 +14873,12 @@ icon_state = "squareswood" }, /area/lv624/ground/caves/sand_temple) +"fAs" = ( +/obj/item/tool/crowbar, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "fAz" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, /turf/open/floor{ @@ -14867,10 +15012,26 @@ /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{ + icon_state = "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{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "fMl" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; @@ -14881,6 +15042,12 @@ icon_state = "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{ @@ -14893,6 +15060,16 @@ "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{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "fQL" = ( /turf/open/gm/coast/beachcorner2/south_east, /area/lv624/ground/river/west_river) @@ -14983,11 +15160,11 @@ /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) @@ -15078,11 +15255,11 @@ /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) @@ -15105,10 +15282,15 @@ /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/item/device/assembly/infra, /obj/effect/spawner/random/powercell, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor{ icon_state = "dark" }, @@ -15278,12 +15460,20 @@ /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" }, /area/lv624/lazarus/engineering) +"gKN" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "gMe" = ( /obj/effect/landmark/nightmare{ insert_tag = "lv-rightsidepass" @@ -15319,6 +15509,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 @@ -15425,6 +15620,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, @@ -15476,13 +15676,18 @@ icon_state = "asteroidwarning" }, /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) @@ -15589,11 +15794,11 @@ /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) @@ -15634,10 +15839,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) @@ -15698,6 +15903,13 @@ /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{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "hDX" = ( /obj/effect/decal/remains/xeno, /turf/open/gm/dirt, @@ -15757,9 +15969,23 @@ /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{ + dir = 9; + icon_state = "brown" + }, +/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, @@ -15815,6 +16041,18 @@ /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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "hPV" = ( /obj/effect/decal/remains/xeno{ pixel_x = 31 @@ -15860,6 +16098,15 @@ "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 +16115,12 @@ /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{ + icon_state = "platingdmg1" + }, +/area/lv624/lazarus/secure_storage) "hTR" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, /turf/open/auto_turf/strata_grass/layer1, @@ -15983,11 +16236,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 +16283,16 @@ /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{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "ikA" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/chanterelle, /turf/open/auto_turf/strata_grass/layer1, @@ -16085,8 +16348,11 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/north_east_caves) "isR" = ( -/obj/effect/landmark/objective_landmark/medium, -/obj/structure/largecrate/random, +/obj/structure/surface/table, +/obj/item/device/flashlight, +/obj/item/device/radio/off{ + frequency = 1469 + }, /turf/open/floor{ dir = 9; icon_state = "brown" @@ -16357,6 +16623,19 @@ /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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "iZG" = ( /obj/effect/landmark/crap_item, /turf/open/gm/dirt, @@ -16375,6 +16654,10 @@ /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, @@ -16397,9 +16680,25 @@ /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{ + icon_state = "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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "jga" = ( /turf/open/gm/river, /area/lv624/ground/jungle/west_jungle) @@ -16525,6 +16824,11 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/west_caves) "jwW" = ( +/obj/structure/platform_decoration, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/floor/plating{ dir = 6; icon_state = "warnplate" @@ -16665,6 +16969,15 @@ /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{ + icon_state = "platebot" + }, +/area/lv624/lazarus/robotics) "jJg" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /turf/open/auto_turf/strata_grass/layer1, @@ -16717,9 +17030,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/obj/structure/machinery/power/geothermal{ - fail_rate = 5 - }, +/obj/structure/machinery/power/reactor/colony, /turf/open/floor/plating{ dir = 8; icon_state = "warnplate" @@ -16807,11 +17118,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) @@ -17054,6 +17365,11 @@ "kvo" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, /area/lv624/ground/jungle/east_central_jungle) +"kvv" = ( +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/comms) "kvE" = ( /obj/structure/machinery/landinglight/ds2/delaythree, /turf/open/floor/plating, @@ -17086,6 +17402,16 @@ }, /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{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "kyN" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, /turf/open/gm/grass/grass1, @@ -17113,6 +17439,13 @@ }, /turf/open/gm/dirt, /area/lv624/ground/caves/north_west_caves) +"kzp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/foamed_metal, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "kzu" = ( /obj/structure/flora/bush/ausbushes/grassybush, /turf/open/gm/grass/grass1, @@ -17208,6 +17541,20 @@ }, /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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "kLl" = ( /obj/effect/decal/grass_overlay/grass1/inner{ dir = 8 @@ -17284,6 +17631,12 @@ }, /turf/open/gm/dirt, /area/lv624/ground/caves/sand_temple) +"kSN" = ( +/obj/structure/girder, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/lv624/lazarus/secure_storage) "kSR" = ( /obj/structure/fence, /turf/open/gm/dirtgrassborder/grassdirt_corner/north_west, @@ -17302,6 +17655,10 @@ /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" @@ -17318,11 +17675,13 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/west_caves) "kWX" = ( +/obj/effect/landmark/objective_landmark/medium, +/obj/structure/largecrate/random, /turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" + dir = 9; + icon_state = "brown" }, -/area/lv624/ground/colony/telecomm/sw_lz2) +/area/lv624/lazarus/comms) "kXE" = ( /obj/structure/flora/bush/ausbushes/ausbush, /turf/open/gm/dirtgrassborder/north, @@ -17517,10 +17876,12 @@ /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{ + icon_state = "warnplate" + }, +/area/lv624/lazarus/engineering) "lxr" = ( /obj/structure/flora/jungle/vines/light_2, /turf/open/gm/dirtgrassborder/south, @@ -17561,6 +17922,16 @@ icon_state = "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{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "lAX" = ( /obj/structure/flora/bush/ausbushes/reedbush, /turf/open/gm/grass/grass1, @@ -17629,9 +18000,7 @@ /obj/structure/lattice{ layer = 2.9 }, -/obj/structure/machinery/power/geothermal{ - fail_rate = 5 - }, +/obj/structure/machinery/power/reactor/colony, /turf/open/floor/plating{ icon_state = "warnplate" }, @@ -17701,11 +18070,11 @@ /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) @@ -17742,11 +18111,11 @@ /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) @@ -17758,6 +18127,11 @@ "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 @@ -17911,14 +18285,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 +18306,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) @@ -17998,6 +18376,7 @@ }, /area/lv624/ground/barrens/south_eastern_barrens) "mkn" = ( +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/lv624/lazarus/secure_storage) "mko" = ( @@ -18018,7 +18397,9 @@ "mkU" = ( /obj/structure/foamed_metal, /obj/structure/flora/jungle/vines/light_2, -/turf/open/floor/plating, +/turf/open/floor{ + icon_state = "delivery" + }, /area/lv624/lazarus/engineering) "mkW" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -18026,6 +18407,15 @@ }, /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{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "mmu" = ( /obj/structure/flora/jungle/plantbot1, /turf/open/gm/grass/grass1, @@ -18060,6 +18450,10 @@ icon_state = "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{ @@ -18145,6 +18539,15 @@ /obj/structure/flora/jungle/vines/light_2, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) +"mBH" = ( +/obj/structure/foamed_metal{ + layer = 3.1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "mBL" = ( /turf/open/floor{ dir = 1; @@ -18523,6 +18926,17 @@ icon_state = "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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "nrP" = ( /obj/structure/transmitter/colony_net{ phone_category = "Lazarus Landing"; @@ -18533,10 +18947,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) @@ -18615,6 +19029,13 @@ /turf/open/gm/dirt, /area/lv624/lazarus/landing_zones/lz2) "nwR" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/floor/plating{ dir = 10; icon_state = "warnplate" @@ -18828,11 +19249,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) @@ -18869,11 +19290,11 @@ /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) @@ -19011,6 +19432,11 @@ /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/gm/grass/grass2, /area/lv624/ground/barrens/south_eastern_jungle_barrens) +"oas" = ( +/turf/open/floor{ + icon_state = "delivery" + }, +/area/lv624/lazarus/engineering) "oaL" = ( /obj/structure/flora/bush/ausbushes/ausbush, /turf/open/gm/grass/grass1, @@ -19097,6 +19523,7 @@ /turf/open/gm/dirt, /area/lv624/ground/river/east_river) "ogR" = ( +/obj/item/prop/alien/hugger, /turf/open/floor/plating{ dir = 9; icon_state = "warnplate" @@ -19137,6 +19564,16 @@ /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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "omu" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /turf/open/gm/dirt, @@ -19184,13 +19621,17 @@ icon_state = "asteroidwarning" }, /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) @@ -19384,6 +19825,16 @@ icon_state = "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{ + icon_state = "dark" + }, +/area/lv624/lazarus/comms) "oJL" = ( /obj/effect/landmark/crap_item, /turf/open/gm/grass/grass1, @@ -19455,6 +19906,15 @@ "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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "oSh" = ( /obj/item/stack/sheet/wood{ amount = 2 @@ -19560,6 +20020,18 @@ /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{ + dir = 6; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) "pba" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /turf/open/gm/grass/grass1, @@ -19581,7 +20053,7 @@ /area/lv624/ground/caves/sand_temple) "pca" = ( /obj/effect/landmark/nightmare{ - insert_tag = "nexuscenter" + insert_tag = "nexuscenter_barricaded" }, /turf/open/floor{ dir = 9; @@ -19644,6 +20116,11 @@ icon_state = "whiteblue" }, /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,6 +20154,9 @@ }, /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, @@ -19813,6 +20293,12 @@ icon_state = "white" }, /area/lv624/lazarus/medbay) +"pzP" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/comms) "pAE" = ( /obj/structure/flora/bush/ausbushes/var3/leafybush, /turf/open/auto_turf/strata_grass/layer1, @@ -19943,8 +20429,8 @@ /area/lv624/lazarus/quartstorage/outdoors) "pKm" = ( /turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 8 + dir = 8; + icon_state = "asteroidwarning" }, /area/lv624/ground/colony/telecomm/sw_lz2) "pKp" = ( @@ -19964,10 +20450,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) @@ -20098,10 +20584,10 @@ /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 +20617,18 @@ /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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "qaE" = ( /obj/effect/landmark/hunter_primary, /obj/effect/landmark/queen_spawn, @@ -20164,6 +20662,13 @@ icon_state = "white" }, /area/lv624/lazarus/corporate_dome) +"qez" = ( +/obj/effect/landmark/good_item, +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/comms) "qeW" = ( /turf/open/gm/coast/beachcorner2/north_west, /area/lv624/ground/caves/sand_temple) @@ -20198,6 +20703,21 @@ }, /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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "qiL" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/amanita, /turf/open/auto_turf/strata_grass/layer1, @@ -20395,6 +20915,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 +20930,9 @@ "qGR" = ( /obj/structure/foamed_metal, /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor/plating, +/turf/open/floor{ + icon_state = "delivery" + }, /area/lv624/lazarus/engineering) "qHC" = ( /obj/structure/largecrate/random/barrel/red, @@ -20463,6 +20989,24 @@ /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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) +"qNz" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "qNQ" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 @@ -20544,11 +21088,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) @@ -20572,6 +21116,12 @@ icon_state = "vault" }, /area/lv624/lazarus/quartstorage) +"qXt" = ( +/obj/item/stack/rods, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/comms) "qYF" = ( /obj/structure/flora/bush/ausbushes/var3/sunnybush, /turf/open/gm/dirt, @@ -20685,10 +21235,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) @@ -20702,32 +21252,40 @@ icon_state = "green" }, /area/lv624/lazarus/hydroponics) +"rkZ" = ( +/obj/item/shard, +/obj/item/stack/rods, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "rmg" = ( -/obj/structure/machinery/power/monitor, -/obj/structure/foamed_metal, /obj/structure/machinery/light{ dir = 1 }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/foamed_metal, /turf/open/floor{ icon_state = "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) @@ -20782,10 +21340,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,6 +21363,11 @@ }, /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" @@ -20863,11 +21422,11 @@ /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) @@ -20889,6 +21448,12 @@ "rCV" = ( /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/south_central_jungle) +"rDK" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/lv624/lazarus/secure_storage) "rER" = ( /obj/effect/decal/grass_overlay/grass1/inner{ dir = 6 @@ -20916,11 +21481,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) @@ -21154,6 +21719,9 @@ icon_state = "vault" }, /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, @@ -21209,10 +21777,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) @@ -21312,6 +21880,15 @@ /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{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "swR" = ( /obj/structure/flora/jungle/vines/light_3, /obj/structure/flora/jungle/vines/heavy, @@ -21398,6 +21975,11 @@ icon_state = "whiteyellowfull" }, /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{ @@ -21626,11 +22208,11 @@ /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) @@ -21654,8 +22236,6 @@ }, /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,13 +22259,13 @@ /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 }, +/obj/structure/machinery/power/reactor/colony, /turf/open/floor/plating{ dir = 4; icon_state = "warnplate" @@ -21710,7 +22290,7 @@ /area/lv624/lazarus/quartstorage) "tgi" = ( /obj/effect/landmark/nightmare{ - insert_tag = "lz-containers" + insert_tag = "lz-containers_swapped" }, /turf/open/floor{ icon_state = "warning" @@ -21727,11 +22307,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) @@ -21900,11 +22480,11 @@ /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) @@ -21964,6 +22544,16 @@ /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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "tBB" = ( /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass1, @@ -22090,6 +22680,10 @@ icon_state = "whiteyellowfull" }, /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 +22708,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) @@ -22210,6 +22804,16 @@ "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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "uaL" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/auto_turf/strata_grass/layer1, @@ -22338,6 +22942,16 @@ icon_state = "desert1" }, /area/lv624/ground/barrens/south_eastern_barrens) +"ukS" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/item/device/flashlight{ + pixel_y = 5 + }, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "ukY" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -22369,7 +22983,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 +23006,13 @@ /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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "upM" = ( /obj/effect/landmark/crap_item, /turf/open/gm/grass/grass1, @@ -22403,8 +23025,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) @@ -22459,11 +23081,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) @@ -22642,9 +23264,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) @@ -22707,6 +23326,12 @@ "uWJ" = ( /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/caves/south_west_caves) +"uXT" = ( +/obj/item/device/assembly/timer, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "uXV" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/gm/dirt, @@ -22777,6 +23402,15 @@ /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{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "vdt" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -22885,11 +23519,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) @@ -23107,6 +23741,12 @@ /obj/item/bananapeel, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/west_jungle) +"vJM" = ( +/obj/item/shard, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/comms) "vKc" = ( /obj/effect/landmark/crap_item, /turf/open/gm/grass/grass1, @@ -23118,6 +23758,16 @@ "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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "vMV" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/structure/blocker/forcefield/multitile_vehicles, @@ -23171,10 +23821,25 @@ /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{ + dir = 9; + icon_state = "brown" + }, +/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, @@ -23230,6 +23895,12 @@ /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{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "vZT" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/gm/dirt, @@ -23290,10 +23961,20 @@ }, /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{ + icon_state = "platingdmg3" + }, +/area/lv624/lazarus/secure_storage) "wgk" = ( /obj/structure/flora/bush/ausbushes/ppflowers, /obj/structure/platform_decoration/mineral/sandstone/runed{ @@ -23303,11 +23984,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) @@ -23386,6 +24067,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{ @@ -23463,18 +24148,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, @@ -23563,11 +24236,11 @@ /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) @@ -23615,11 +24288,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) @@ -23886,6 +24559,14 @@ /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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "xfP" = ( /obj/item/stack/rods, /obj/item/shard, @@ -23970,6 +24651,17 @@ /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{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "xvN" = ( /obj/structure/barricade/handrail/strata{ dir = 1 @@ -24144,6 +24836,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) @@ -24172,6 +24868,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 @@ -24274,6 +24974,16 @@ /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{ + icon_state = "delivery" + }, +/area/lv624/lazarus/engineering) "yfe" = ( /obj/effect/decal/grass_overlay/grass1{ dir = 8 @@ -25014,7 +25724,7 @@ atC aAt aro aHE -aIn +aro asw asw asw @@ -25234,13 +25944,13 @@ nsk nsk nsk aun -aqS -suv -atZ +ase +arE +atC vVD -ayT -aro -aro +asd +atu +asx aro asw asw @@ -25461,20 +26171,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 +26399,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 +26627,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 +26855,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 +27083,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 +27311,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 +27539,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 +27767,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 +27995,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 +28224,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 +28455,10 @@ bBu knd knd axw -ase -atu -atu -aEe +aAl +aAl +aAl +aAl oek jga jga @@ -28878,8 +29588,8 @@ aud aud asF auP -aqR -arE +aAl +aAl npf sTB sTB @@ -29106,13 +29816,13 @@ aud aud bGb auP -aqS -uSw -asa -asa -asa -asa -arE +aAl +aAl +aAl +aAl +aAl +aAl +aAl awC sTB sTB @@ -29334,13 +30044,13 @@ aud asp aud auP -aqS -arP -asc -asg -aro -atA -axV +aAl +amK +aAl +aAl +aAl +aAl +aAl aiS aAl aAl @@ -29562,15 +30272,15 @@ aud aud aud auP -aqS +aAl aFm aFm auO aFm aFm aAl -aqR -asa +aAl +aAl aja asa asa @@ -29790,16 +30500,16 @@ aud aud amG auP -aqS +aAl aFm aue auf aXC aFm aAl -ayN -asx -ayT +aqi +aAl +asX aAp aAp baN @@ -30018,7 +30728,7 @@ aud aud aud asR -aqS +aAl aFm auf auf @@ -30026,7 +30736,7 @@ aZp aFm aAl omu -aqS +aAl aAp aAp aAp @@ -30246,7 +30956,7 @@ amG aud aul aBn -aqS +aAl aFQ aug wFx @@ -30474,7 +31184,7 @@ aud bGb auP aqi -ase +aAl aFm aZn axp @@ -31164,7 +31874,7 @@ uiW sqs oTJ qKC -kWX +pKm hdh oKP aAp @@ -32125,7 +32835,7 @@ aWT aUQ aZL aUQ -aUQ +mdw aTf aTf aTf @@ -32347,7 +33057,7 @@ aTf aUj aUQ aUQ -ygp +aZL aUQ gte aUQ @@ -32804,11 +33514,11 @@ aUj aUQ aUQ aVZ -aUQ -aWV +qEz +ygp aUQ aXE -aUQ +vTT aUQ aYu aTf @@ -33030,13 +33740,13 @@ aTf aTf aTf ulp -aUQ +aZL aWa -aUQ +xRc aWW aUQ aXF -aUQ +weB aUQ aTf aTf @@ -33258,13 +33968,13 @@ vxU aTf aTf aUS -aUQ +xLT iml -aUQ -aWW -aUQ +vTT +fMv +plC aXG -aUQ +aZL aYf aTf aTf @@ -33486,13 +34196,13 @@ aXh aTf aTf aTf +aWV aUQ +plC +vTT +weR aUQ -aUQ -aUQ -sWk -aUQ -aUQ +cfA aTf aTf aTf @@ -33718,9 +34428,9 @@ aTf aTf mkn xLT -mkn -xLT -sWk +xvj +cfA +kSN aTf aTf aXh @@ -33944,12 +34654,12 @@ efp aTf aTf aWc -mkn -mkn +phk +wol sWk -mkn -mkn -xLT +mqf +gSb +hTp kBq aXh aXh @@ -34171,13 +34881,13 @@ bSm efp efp aTf -aTf -xLT -aWv +chy +rDK aWv +kVS xLT -xTT -xTT +sCx +haE vUj qGH aLj @@ -34400,12 +35110,12 @@ buw efp efp uSq +eUI qIO qIO -qIO -qIO +jaw uXV -qtj +hen dMc knp iIU @@ -34624,7 +35334,7 @@ aXh wTC kjp kjp -ply +hSp efp efp uSq @@ -34632,7 +35342,7 @@ njC qIO qIO qIO -qtj +ose qtj ksM rox @@ -34856,7 +35566,7 @@ efp efp gDu uSq -hDX +rwK qIO qIO aXH @@ -35084,9 +35794,9 @@ efp efp efp uSq +xOL qIO -qIO -qIO +jaw ntL kxI kxI @@ -35735,7 +36445,7 @@ axi axj avH aBp -aBR +jIr aCk ado aXX @@ -35989,7 +36699,7 @@ rAo fkJ fau xgE -efp +aWZ efp efp efp @@ -36218,7 +36928,7 @@ xgE sFY xgE xgE -eyb +bgL bgL bgL bgL @@ -36872,7 +37582,7 @@ aym axi aza azG -aAk +bvq axi aBr axi @@ -37098,7 +37808,7 @@ axj axj axj ayG -azb +eot axi axj axj @@ -37585,7 +38295,7 @@ xgE sxY sxY xgE -cPV +aRf cPV uSq qIO @@ -38950,7 +39660,7 @@ gnx gnx fzg pyG -wtK +paQ wJA wMk wMk @@ -38959,8 +39669,8 @@ uSq qIO qIO qIO -qIO -qIO +ctS +ctS ntL kxI kxI @@ -39187,9 +39897,9 @@ uSq njC qIO qIO -qIO -qIO -ntL +ctS +sfg +vVe kxI jxG qZv @@ -39415,9 +40125,9 @@ uSq qIO qIO qIO -qIO -qIO -ntL +ctS +hLu +kxI kxI oAJ qZv @@ -39644,8 +40354,8 @@ aPT aUk aPT aPt -qIO -ntL +hLu +kxI kxI gzd eqs @@ -39868,9 +40578,9 @@ aPT aPT aPT aPt -aTG -aQn +vMC aQn +qNl aPt aPT aPT @@ -40092,17 +40802,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 +41035,12 @@ aQn aQn aQn aTH -aUl aQn aQn aQn aQn -aWX +aQn +uaz aPT kxI kxI @@ -40546,19 +41256,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 +41483,10 @@ ylL byY mun oGs -lud +oGs aPt aPt -aRf +euU aQn aTg aTg @@ -40785,8 +41495,8 @@ aQn aVb aTg aTg +aTG aQn -aWZ aPt aPt kxI @@ -41003,19 +41713,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 +41943,9 @@ byY aPO aQn aQn +rkZ aQn -aQn -aQn +aTi vEj aTg rVH @@ -41458,20 +42168,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 +42398,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 +42623,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 +42851,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 +43079,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 +43302,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 +43536,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 +43764,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 +43997,15 @@ aQo aJz aIO aSg -aPT -aTK +aPt aTK +oRY aSL +aWf aVB aWf -fFN aSL -aXn +sBJ kxI kxI lUc @@ -43514,14 +44224,14 @@ aEt aQp aRo aIO -aSg +kWX aSL aSL aSL aSL rmg aTq -aWA +aTq aSL aSL aVB @@ -43747,9 +44457,9 @@ aSL aVg tem aVd -aTM +kzp +aTq aTq -aZG aSX aZI aXJ @@ -43971,17 +44681,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 +44909,12 @@ aQs aQo aSi mkU -qGR +lud aWD aUq aTN aTM -aTM +fMa aUo aSX aZJ @@ -44427,13 +45137,13 @@ aQt aQo aSj qGR -mkU +jdL aWD aUq aTN udM aTM -aWE +aUx aSX aSX aSX @@ -44666,7 +45376,7 @@ aSX aZd aZx aXZ -aYh +vYL aVB kxI kxI @@ -44887,14 +45597,14 @@ aSL aVf jMk aWg -aTM -aTM +lzW +kyz aWF aSX -aXs +svv aTM aZM -aTM +vYL aXg kyN kxI @@ -45116,9 +45826,9 @@ aSX aSX aSX aXs +drX aTM -aTM -aXg +ydX aTM aVC aTM @@ -45341,12 +46051,12 @@ aJz aSL aTs aTP -aUt +bLH aSX aVF -aTM -aTM -aXg +iiO +uXT +oas aTM aTM aZf @@ -45572,12 +46282,12 @@ aTR aUu aSX aVG -aTM +vdl aWG aSX aXt aWi -aYc +bQf aVB dEp kxI @@ -45796,11 +46506,11 @@ xuk oUy aSL aTu -aZM -aTM +fLf +fQx aVj -aTM -aWi +mkZ +hDe aWH aSX aXu @@ -46025,7 +46735,7 @@ mNO fFN aTM aTM -aUx +fAs aSX aVH aTq @@ -46483,7 +47193,7 @@ aSm aSm oUy aSL -hHc +aVB aWf aVB aSL @@ -47594,7 +48304,7 @@ oUy aMD bbJ bbO -aCV +oUy aDS aDS aFh diff --git a/maps/map_files/LV624/hydro/30.destroyed.dmm b/maps/map_files/LV624/hydro/30.destroyed.dmm index 09eb12287a58..c3b3ddce6c63 100644 --- a/maps/map_files/LV624/hydro/30.destroyed.dmm +++ b/maps/map_files/LV624/hydro/30.destroyed.dmm @@ -174,7 +174,8 @@ 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{ diff --git a/maps/map_files/LV624/standalone/clfship.dmm b/maps/map_files/LV624/standalone/clfship.dmm index 10a6618c681d..c24a511cfc29 100644 --- a/maps/map_files/LV624/standalone/clfship.dmm +++ b/maps/map_files/LV624/standalone/clfship.dmm @@ -183,7 +183,7 @@ /area/lv624/lazarus/crashed_ship) "fX" = ( /obj/item/stool, -/obj/effect/landmark/survivor_spawner/lv624_crashed_clf, +/obj/effect/landmark/survivor_spawner/lv624_crashed_clf_leader, /turf/open/floor{ icon_state = "platingdmg1" }, diff --git a/maps/map_files/LV624/standalone/corporatedome.dmm b/maps/map_files/LV624/standalone/corporatedome.dmm new file mode 100644 index 000000000000..0778d0c61564 --- /dev/null +++ b/maps/map_files/LV624/standalone/corporatedome.dmm @@ -0,0 +1,1787 @@ +//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{ + icon_state = "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{ + dir = 8; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"bA" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor{ + icon_state = "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{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"cm" = ( +/obj/structure/largecrate/random/case/small, +/obj/structure/barricade/sandbags{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"cn" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/largecrate/random/case/double, +/turf/open/floor{ + dir = 10; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"cA" = ( +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"cB" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "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{ + dir = 1; + icon_state = "asteroidfloor" + }, +/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{ + dir = 4; + icon_state = "whiteyellow" + }, +/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{ + dir = 4; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"dY" = ( +/turf/open/floor/plating{ + icon_state = "asteroidwarning" + }, +/area/lv624/lazarus/landing_zones/lz2) +"ev" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"eF" = ( +/obj/structure/barricade/deployable{ + damage_state = 1; + health = 245; + icon_state = "folding_1" + }, +/turf/open/floor{ + dir = 10; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"fm" = ( +/obj/effect/vehicle_spawner/van/decrepit, +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor{ + icon_state = "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{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"fF" = ( +/obj/item/ammo_casing/bullet{ + icon_state = "casing_9_1" + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"fH" = ( +/turf/open/floor{ + dir = 4; + icon_state = "whiteblue" + }, +/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{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"ha" = ( +/turf/open/floor{ + dir = 10; + icon_state = "whiteyellow" + }, +/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{ + dir = 5; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"he" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"hf" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"is" = ( +/obj/item/stack/sheet/wood, +/obj/effect/decal/cleanable/blood/gibs/xeno, +/turf/open/floor{ + dir = 4; + icon_state = "whiteyellow" + }, +/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{ + dir = 8; + icon_state = "whitebluecorner" + }, +/area/lv624/lazarus/corporate_dome) +"iT" = ( +/obj/structure/filingcabinet, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + dir = 10; + icon_state = "whiteyellow" + }, +/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{ + dir = 4; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"jJ" = ( +/obj/item/shard, +/turf/open/floor{ + dir = 8; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"kl" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor{ + dir = 4; + icon_state = "whiteblue" + }, +/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{ + icon_state = "asteroidwarning" + }, +/area/lv624/lazarus/landing_zones/lz2) +"ln" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + dir = 9; + icon_state = "whiteblue" + }, +/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{ + dir = 5; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"lX" = ( +/obj/structure/window_frame/colony/reinforced, +/obj/item/shard, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/lv624/lazarus/corporate_dome) +"mg" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"mi" = ( +/turf/open/floor/plating{ + icon_state = "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{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"ms" = ( +/turf/open/floor{ + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"mw" = ( +/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_goon, +/obj/item/ammo_casing/bullet, +/turf/open/floor{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"pR" = ( +/obj/structure/filingcabinet, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + dir = 6; + icon_state = "whiteyellow" + }, +/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{ + icon_state = "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{ + icon_state = "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{ + dir = 5; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"qJ" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper Storage Room" + }, +/turf/open/floor{ + icon_state = "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{ + icon_state = "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{ + dir = 1; + icon_state = "whitebluecorner" + }, +/area/lv624/lazarus/corporate_dome) +"sm" = ( +/obj/structure/machinery/vending/cigarette, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"sH" = ( +/obj/structure/window_frame/colony/reinforced, +/obj/item/stack/rods, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/lv624/lazarus/corporate_dome) +"sX" = ( +/obj/structure/window/framed/colony/reinforced, +/turf/open/floor/plating{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/lv624/lazarus/corporate_dome) +"wW" = ( +/obj/structure/closet/bodybag, +/obj/effect/landmark/corpsespawner/security/marshal, +/turf/open/floor{ + icon_state = "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{ + dir = 5; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"xG" = ( +/obj/structure/machinery/photocopier, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"yc" = ( +/turf/open/floor/plating{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/lv624/lazarus/landing_zones/lz2) +"yJ" = ( +/turf/open/floor/plating{ + icon_state = "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{ + dir = 5; + icon_state = "whiteyellow" + }, +/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{ + dir = 6; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"zx" = ( +/obj/effect/decal/cleanable/blood/gibs/xeno, +/turf/open/floor{ + icon_state = "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{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"AT" = ( +/obj/item/shard, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"Bh" = ( +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"BL" = ( +/obj/structure/machinery/door/poddoor/almayer{ + dir = 8; + id = "garage_lv"; + name = "\improper Garage" + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"BZ" = ( +/obj/item/ammo_casing/bullet{ + icon_state = "cartridge_6_1" + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"Ct" = ( +/obj/structure/window_frame/colony/reinforced, +/turf/open/floor/plating{ + icon_state = "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{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"Df" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor{ + dir = 8; + icon_state = "whiteyellowcorner" + }, +/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{ + dir = 4; + icon_state = "whitebluecorner" + }, +/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{ + icon_state = "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{ + dir = 6; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"Ez" = ( +/obj/structure/machinery/light_construct{ + dir = 4 + }, +/obj/item/stack/cable_coil, +/turf/open/floor{ + dir = 6; + icon_state = "whiteyellow" + }, +/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{ + icon_state = "whitebluecorner" + }, +/area/lv624/lazarus/corporate_dome) +"Fk" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plating{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/lv624/lazarus/landing_zones/lz2) +"Fl" = ( +/turf/open/floor{ + dir = 1; + icon_state = "whitebluecorner" + }, +/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{ + dir = 6; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"FZ" = ( +/obj/structure/machinery/faxmachine/corporate/liaison, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor{ + dir = 10; + icon_state = "whiteblue" + }, +/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{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"Gt" = ( +/obj/structure/machinery/light_construct/small{ + dir = 8 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/lv624/lazarus/corporate_dome) +"GM" = ( +/turf/open/floor{ + dir = 1; + icon_state = "whiteyellowcorner" + }, +/area/lv624/lazarus/corporate_dome) +"GV" = ( +/turf/open/floor{ + dir = 8; + icon_state = "whiteblue" + }, +/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{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"Ho" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor{ + icon_state = "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{ + dir = 9; + icon_state = "whiteyellow" + }, +/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{ + dir = 9; + icon_state = "whiteblue" + }, +/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{ + icon_state = "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{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"JL" = ( +/obj/effect/decal/cleanable/blood, +/obj/item/prop/colony/usedbandage{ + dir = 10 + }, +/turf/open/floor{ + icon_state = "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{ + dir = 4; + icon_state = "whiteyellowcorner" + }, +/area/lv624/lazarus/corporate_dome) +"KG" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor{ + icon_state = "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{ + icon_state = "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{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"LZ" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/lv624/lazarus/corporate_dome) +"Me" = ( +/turf/open/floor/plating{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/lv624/lazarus/landing_zones/lz2) +"Ml" = ( +/obj/structure/machinery/atm{ + name = "Weyland-Yutani Automatic Teller Machine"; + pixel_y = 30 + }, +/turf/open/floor{ + dir = 9; + icon_state = "whiteblue" + }, +/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{ + icon_state = "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{ + dir = 4; + icon_state = "whiteyellowcorner" + }, +/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{ + dir = 9; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"RD" = ( +/obj/item/ammo_casing/bullet{ + icon_state = "casing_1_1" + }, +/turf/open/floor{ + icon_state = "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{ + icon_state = "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{ + dir = 9; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"Sb" = ( +/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_goon, +/turf/open/floor{ + icon_state = "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{ + dir = 5; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"TF" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/largecrate/supply/medicine, +/turf/open/floor{ + dir = 10; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"Uo" = ( +/obj/item/shard, +/turf/open/floor/plating{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/lv624/lazarus/corporate_dome) +"Uz" = ( +/obj/effect/decal/cleanable/blood/oil/streak, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"UF" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor{ + dir = 6; + icon_state = "whiteblue" + }, +/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{ + dir = 4; + icon_state = "whitebluecorner" + }, +/area/lv624/lazarus/corporate_dome) +"Wx" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor{ + icon_state = "whiteyellowcorner" + }, +/area/lv624/lazarus/corporate_dome) +"Xc" = ( +/obj/structure/barricade/metal{ + dir = 4; + health = 200 + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"Xf" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating{ + icon_state = "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{ + dir = 10; + icon_state = "whiteblue" + }, +/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{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"XC" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor{ + dir = 8; + icon_state = "whiteyellowcorner" + }, +/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{ + dir = 5; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"Yg" = ( +/obj/item/moneybag, +/obj/structure/surface/rack, +/obj/item/coin/diamond, +/turf/open/floor{ + dir = 9; + icon_state = "whiteblue" + }, +/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/handcuffs, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"ZO" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/item/stack/sheet/wood, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"ZT" = ( +/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_cl, +/turf/open/floor{ + icon_state = "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/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/New_Varadero/New_Varadero.dmm b/maps/map_files/New_Varadero/New_Varadero.dmm index ca983240307f..fbcba0174790 100644 --- a/maps/map_files/New_Varadero/New_Varadero.dmm +++ b/maps/map_files/New_Varadero/New_Varadero.dmm @@ -4392,13 +4392,6 @@ }, /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 @@ -5636,6 +5629,16 @@ icon_state = "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{ + icon_state = "asteroidplating" + }, +/area/varadero/interior/maintenance/security) "dJX" = ( /obj/effect/decal/cleanable/blood/drip, /obj/effect/decal/cleanable/blood, @@ -6068,24 +6071,6 @@ icon_state = "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/black{ - 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 @@ -7100,6 +7085,15 @@ icon_state = "asteroidplating" }, /area/varadero/interior/maintenance/security) +"eGd" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/icefloor{ + icon_state = "asteroidplating" + }, +/area/varadero/interior/electrical) "eGq" = ( /obj/item/reagent_container/food/snacks/eat_bar, /obj/item/reagent_container/food/snacks/eat_bar{ @@ -14289,6 +14283,24 @@ icon_state = "asteroidplating" }, /area/varadero/exterior/lz1_near) +"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{ + icon_state = "blue" + }, +/area/varadero/interior/technical_storage) "jks" = ( /turf/open/floor/plating/icefloor{ icon_state = "asteroidplating" @@ -28758,6 +28770,13 @@ default_name = "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, @@ -28985,6 +29004,13 @@ icon_state = "asteroidplating" }, /area/varadero/interior_protected/maintenance/south) +"swM" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/structure/machinery/light/small, +/turf/open/floor/plating/icefloor{ + icon_state = "asteroidplating" + }, +/area/varadero/interior/electrical) "swV" = ( /obj/structure/closet/crate/construction, /turf/open/auto_turf/sand_white/layer1, @@ -29519,15 +29545,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; @@ -30123,6 +30140,12 @@ /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{ + icon_state = "asteroidplating" + }, +/area/varadero/interior/electrical) "thS" = ( /obj/structure/window/framed/colony, /turf/open/floor/plating, @@ -31416,12 +31439,6 @@ /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{ @@ -32750,6 +32767,7 @@ /obj/structure/machinery/light{ dir = 4 }, +/obj/structure/machinery/fuelcell_recycler/full, /turf/open/floor/plating/icefloor{ icon_state = "asteroidplating" }, @@ -36394,13 +36412,6 @@ icon_state = "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" @@ -48027,7 +48038,7 @@ ibP haT teu haT -dZZ +jkq ykw cIB waB @@ -54234,7 +54245,7 @@ bkM pKs pKs bkM -cNC +spN etv cto xxk @@ -60381,9 +60392,9 @@ mSf kCA rsB wOO -ubK -ubK -sLi +thp +thp +eGd pkT pAZ wOO @@ -60749,7 +60760,7 @@ lur lur lur fEu -ubK +thp oSX viK xJZ @@ -60931,7 +60942,7 @@ aDZ aDZ rTv fEu -ubK +thp oSX mZk xJZ @@ -61113,7 +61124,7 @@ rKl lur cbg fEu -xjp +swM wOO viK xJZ @@ -61661,7 +61672,7 @@ uZa mEB mEB oSX -xJZ +dJI xJZ xJZ viK diff --git a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm index 1f81d5d13e61..c781fdff23cc 100644 --- a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm +++ b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm @@ -264,10 +264,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; @@ -460,10 +456,6 @@ icon_state = "multi_tiles" }, /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, @@ -668,18 +660,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{ @@ -856,15 +836,6 @@ icon_state = "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{ @@ -1466,6 +1437,14 @@ icon_state = "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{ + icon_state = "multi_tiles" + }, +/area/strata/ag/interior/dorms/hive) "aen" = ( /obj/effect/landmark/monkey_spawn, /turf/open/auto_turf/snow/brown_base/layer0, @@ -1898,26 +1877,6 @@ icon_state = "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 @@ -3361,19 +3320,6 @@ icon_state = "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{ @@ -5685,12 +5631,6 @@ /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" @@ -6114,15 +6054,6 @@ 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" - }, -/area/strata/ag/interior/outpost/engi) "ass" = ( /obj/structure/surface/rack, /obj/item/storage/box/donkpockets, @@ -6524,15 +6455,6 @@ 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" - }, -/area/strata/ag/interior/dorms) "att" = ( /obj/structure/machinery/camera/autoname{ dir = 4 @@ -8291,6 +8213,12 @@ dir = 1; pixel_y = 20 }, +/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{ icon_state = "floor3" }, @@ -8328,18 +8256,6 @@ }, /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{ @@ -11120,10 +11036,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{ @@ -15779,29 +15691,12 @@ icon_state = "cyan2" }, /area/strata/ag/interior/outpost/canteen/bar) -"aXj" = ( -/obj/structure/surface/rack, -/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, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, -/area/strata/ag/interior/outpost/maint/canteen_e_1) "aXn" = ( /obj/structure/sink{ dir = 1; @@ -16968,13 +16863,6 @@ icon_state = "cyan2" }, /area/strata/ag/interior/outpost/canteen/bar) -"bbE" = ( -/obj/structure/surface/rack, -/obj/item/book/manual/engineering_guide, -/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; @@ -18156,12 +18044,6 @@ /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 @@ -19265,11 +19147,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 @@ -28576,16 +28453,6 @@ icon_state = "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, @@ -29287,14 +29154,6 @@ icon_state = "red1" }, /area/strata/ag/interior/dorms) -"ctE" = ( -/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) "ctF" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/strata{ @@ -29752,13 +29611,6 @@ icon_state = "multi_tiles" }, /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, @@ -29938,6 +29790,10 @@ icon_state = "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) @@ -30221,6 +30077,10 @@ icon_state = "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 @@ -30607,14 +30467,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 @@ -30739,6 +30591,11 @@ icon_state = "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{ @@ -31031,13 +30888,6 @@ icon_state = "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" @@ -31309,6 +31159,12 @@ /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{ + icon_state = "floor_plate" + }, +/area/strata/ag/interior/dorms) "fwV" = ( /obj/structure/flora/grass/ice/brown/snowgrassbb_1, /turf/open/auto_turf/snow/brown_base/layer3, @@ -31335,6 +31191,18 @@ /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{ + icon_state = "red2" + }, +/area/strata/ag/interior/outpost/engi) "fzn" = ( /obj/structure/closet/secure_closet/freezer/fridge, /turf/open/floor/strata{ @@ -32156,6 +32024,13 @@ icon_state = "red3" }, /area/strata/ag/interior/outpost/med) +"gOC" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/strata{ + dir = 4; + icon_state = "floor3" + }, +/area/strata/ag/exterior/shed_five_caves) "gOL" = ( /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/asphalt/cement, @@ -33516,6 +33391,15 @@ icon_state = "multi_tiles" }, /area/strata/ug/interior/jungle/deep/structures/res) +"jfh" = ( +/obj/item/fuel_cell, +/obj/structure/barricade/handrail/strata{ + dir = 1 + }, +/turf/open/floor/strata{ + icon_state = "floor3" + }, +/area/strata/ag/interior/dorms) "jgX" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/barricade/handrail/strata{ @@ -33614,6 +33498,14 @@ /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" @@ -33746,6 +33638,12 @@ icon_state = "white_cyan3" }, /area/strata/ag/interior/outpost/med) +"jBp" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/strata{ + icon_state = "floor3" + }, +/area/strata/ag/interior/outpost/admin) "jBO" = ( /obj/structure/machinery/light/small, /turf/open/floor/strata{ @@ -33810,6 +33708,18 @@ /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{ + icon_state = "multi_tiles" + }, +/area/strata/ag/interior/dorms/hive) "jIz" = ( /obj/structure/machinery/weather_siren{ dir = 1; @@ -33914,6 +33824,16 @@ icon_state = "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{ + icon_state = "multi_tiles" + }, +/area/strata/ag/interior/dorms/hive) "jPV" = ( /obj/structure/flora/grass/tallgrass/jungle/corner, /turf/open/auto_turf/strata_grass/layer1, @@ -34334,6 +34254,13 @@ /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{ + icon_state = "orange_cover" + }, +/area/strata/ag/interior/outpost/maint/canteen_e_1) "kCf" = ( /obj/structure/window/framed/strata, /turf/open/floor/strata{ @@ -36006,6 +35933,19 @@ "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{ + icon_state = "multi_tiles" + }, +/area/strata/ag/interior/dorms/hive) "npy" = ( /obj/structure/closet/secure_closet/medical3{ req_access = null @@ -36209,6 +36149,14 @@ }, /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{ + icon_state = "orange_cover" + }, +/area/strata/ag/interior/outpost/maint/canteen_e_1) "nOE" = ( /obj/structure/closet/secure_closet/personal, /obj/effect/landmark/objective_landmark/far, @@ -36606,6 +36554,18 @@ icon_state = "floor3" }, /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{ + icon_state = "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, @@ -36936,6 +36896,15 @@ icon_state = "floor3" }, /area/strata/ag/interior/dorms) +"piu" = ( +/obj/structure/surface/rack, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/strata{ + icon_state = "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, @@ -37906,6 +37875,13 @@ /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{ + dir = 4; + icon_state = "floor3" + }, +/area/strata/ag/interior/tcomms) "qFH" = ( /obj/structure/filingcabinet, /turf/open/floor/strata{ @@ -38263,6 +38239,14 @@ icon_state = "floor3" }, /area/strata/ag/exterior/research_decks) +"rfB" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/strata{ + dir = 4; + icon_state = "floor3" + }, +/area/strata/ag/exterior/shed_five_caves) "rgt" = ( /obj/structure/stairs/perspective{ color = "#6e6e6e"; @@ -38351,6 +38335,13 @@ }, /turf/open/floor/strata, /area/strata/ug/interior/outpost/jung/dorms/admin2) +"rjn" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/strata{ + dir = 4; + icon_state = "floor3" + }, +/area/strata/ag/exterior/vanyard) "rjG" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /turf/open/asphalt/cement, @@ -38739,6 +38730,10 @@ /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, @@ -38773,6 +38768,15 @@ icon_state = "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{ + icon_state = "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, @@ -38910,6 +38914,15 @@ icon_state = "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{ + icon_state = "floor3" + }, +/area/strata/ag/interior/outpost/engi) "spp" = ( /obj/item/weapon/gun/pistol/t73, /obj/effect/decal/cleanable/blood/gibs/core, @@ -39538,6 +39551,12 @@ }, /turf/open/auto_turf/ice/layer1, /area/strata/ag/exterior/paths/north_outpost) +"tuV" = ( +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/strata{ + icon_state = "floor3" + }, +/area/strata/ag/interior/outpost/engi) "tvk" = ( /obj/structure/platform/strata/metal{ dir = 1 @@ -41643,13 +41662,6 @@ icon_state = "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"; @@ -47803,7 +47815,7 @@ aac aac aac crA -afB +jIv cEu agD aiE @@ -47998,14 +48010,14 @@ aac aac aac crA -afC +aem aiE agE aiE cnO -coc +jPT ajl -ajP +npf cnO ddp alG @@ -48407,7 +48419,7 @@ apZ ctC ctC ctC -ctE +jqg avr bWy bPs @@ -49771,7 +49783,7 @@ afW afW afW asb -ats +jfh bYE cbj bZV @@ -51134,7 +51146,7 @@ anq auC crY crY -arg +fwi ase att crY @@ -55319,7 +55331,7 @@ qfC aac aac sgG -cIQ +qDI gpr tRC sgG @@ -56067,7 +56079,7 @@ aac aac aac rOB -eUe +rjn khh vtl dOO @@ -57815,7 +57827,7 @@ aac bfg bgJ xdr -wVU +gOC jVg sXu okE @@ -58010,7 +58022,7 @@ aac bfg bgI xdr -wVU +gOC fEW sau okE @@ -58205,7 +58217,7 @@ bfe bfc bgI xdr -elE +rfB hPK hYl okE @@ -62847,7 +62859,7 @@ bXq ajW aUV aGr -aHw +dCb oKo aKx dgB @@ -63042,7 +63054,7 @@ bXq dgB aUV uWG -aHw +dCb oKo oKo aLP @@ -63237,7 +63249,7 @@ aCV bXq aUV vBs -aHw +dCb oKo oKo aLQ @@ -63425,7 +63437,7 @@ oBn oBn avP oKo -aIV +tuV aAn aBR aCW @@ -63627,7 +63639,7 @@ dgB aIV aUV aGr -aHw +dCb oKo aKy aLR @@ -63822,7 +63834,7 @@ dgB aIV aUV uWG -aHw +dCb oKo dgB dgB @@ -64017,7 +64029,7 @@ dgB aIV aUV vBs -aHw +dCb oKo aKA dgB @@ -64395,7 +64407,7 @@ ayw awJ aAR arr -asr +soD atF auA avS @@ -64940,7 +64952,7 @@ aam cdo pIa aax -abG +cZZ cdo cdo cjq @@ -65960,10 +65972,10 @@ ijo auF ijo aHv -ayP -ayP -acf -acC +oCc +oCc +fyU +scp oKo aMX dgB @@ -67089,7 +67101,7 @@ pIa pIa cpV cpV -bjT +ezK aam cdo ahn @@ -67284,7 +67296,7 @@ aag pIa aao pIa -bjT +ezK aam cdo ahn @@ -67870,7 +67882,7 @@ aac aac pIa pIa -aaV +rXZ cdo aam adC @@ -68517,7 +68529,7 @@ bWH bll bll bdI -bfZ +jBp bjf bjc cik @@ -73193,9 +73205,9 @@ chd chd cpU aVE -aXj +piu aZw -bbE +kCa cpU crI aHP @@ -73583,7 +73595,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 493be2249cff..6bc6bfeb4a22 100644 --- a/maps/map_files/USS_Almayer/USS_Almayer.dmm +++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm @@ -48,9 +48,6 @@ icon_state = "outerhull_dir" }, /area/space) -"aai" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/upper_hull) "aak" = ( /obj/effect/step_trigger/teleporter/random{ affect_ghosts = 1; @@ -64,13 +61,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{ @@ -82,22 +72,6 @@ allow_construction = 0 }, /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 @@ -138,82 +112,23 @@ icon_state = "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/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) -"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 +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = 32 }, /turf/open/floor/almayer{ - dir = 10; - icon_state = "red" + dir = 1; + icon_state = "blue" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/upper/fore_hallway) "aaF" = ( /obj/structure/stairs{ dir = 1; @@ -239,46 +154,24 @@ icon_state = "plate" }, /area/almayer/stair_clone/upper) -"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" +"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" }, -/area/almayer/hallways/repair_bay) -"aaL" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hallways/aft_hallway) -"aaO" = ( /turf/open/floor/almayer{ - dir = 6; - icon_state = "red" + icon_state = "test_floor4" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/shipboard/brig/starboard_hallway) "aaY" = ( /obj/structure/lattice, /turf/open/space, @@ -293,41 +186,10 @@ icon_state = "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) @@ -335,14 +197,20 @@ /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) -"abp" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_m_s) +"abn" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "abs" = ( /turf/closed/wall/almayer/outer, /area/almayer/lifeboat_pumps/north1) @@ -350,18 +218,6 @@ /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 @@ -470,13 +326,6 @@ "acf" = ( /turf/closed/wall/almayer/outer, /area/almayer/living/starboard_garden) -"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; @@ -663,28 +512,6 @@ 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) -"acF" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) "acI" = ( /obj/structure/desertdam/decals/road_edge{ pixel_x = -12 @@ -695,20 +522,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 @@ -752,6 +565,9 @@ icon_state = "red" }, /area/almayer/shipboard/weapon_room) +"acQ" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "acS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -772,17 +588,6 @@ icon_state = "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 @@ -822,45 +627,15 @@ icon_state = "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" }, /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) +/area/almayer/hallways/lower/starboard_aft_hallway) "adj" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down1"; @@ -872,37 +647,6 @@ }, /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) @@ -912,18 +656,6 @@ icon_state = "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) @@ -952,14 +684,6 @@ icon_state = "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; @@ -976,23 +700,6 @@ "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) @@ -1025,16 +732,6 @@ /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{ @@ -1084,20 +781,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) "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 @@ -1139,21 +825,6 @@ icon_state = "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, @@ -1280,16 +951,6 @@ allow_construction = 0 }, /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, @@ -1342,46 +1003,6 @@ icon_state = "redfull" }, /area/almayer/shipboard/starboard_missiles) -"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, @@ -1389,10 +1010,6 @@ "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; @@ -1411,72 +1028,12 @@ }, /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{ @@ -1609,17 +1166,6 @@ icon_state = "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{ @@ -1636,46 +1182,15 @@ "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" }, /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) -"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 @@ -1718,23 +1233,13 @@ dir = 4 }, /obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "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{ @@ -1742,21 +1247,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{ @@ -1780,12 +1270,6 @@ icon_state = "silver" }, /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 @@ -1818,69 +1302,28 @@ icon_state = "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" }, /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" }, /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" }, /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{ @@ -1900,14 +1343,6 @@ icon_state = "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) @@ -1920,68 +1355,10 @@ icon_state = "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; @@ -2002,16 +1379,6 @@ icon_state = "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; @@ -2029,13 +1396,14 @@ /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, @@ -2053,15 +1421,6 @@ icon_state = "bluecorner" }, /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 @@ -2077,17 +1436,6 @@ icon_state = "silver" }, /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; @@ -2131,15 +1479,6 @@ 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) "aij" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; @@ -2153,23 +1492,6 @@ icon_state = "silver" }, /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 @@ -2178,39 +1500,6 @@ icon_state = "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) @@ -2226,62 +1515,9 @@ icon_state = "bluecorner" }, /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" @@ -2297,12 +1533,6 @@ allow_construction = 0 }, /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, @@ -2325,39 +1555,6 @@ allow_construction = 0 }, /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" - }, -/area/almayer/hull/upper_hull/u_m_s) -"aiV" = ( -/obj/structure/bookcase/manuals/engineering, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "aiW" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -2371,24 +1568,6 @@ "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 @@ -2417,32 +1596,6 @@ icon_state = "redfull" }, /area/almayer/command/cic) -"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) -"ajr" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "bluecorner" - }, -/area/almayer/hallways/aft_hallway) "ajs" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -2451,15 +1604,6 @@ icon_state = "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 @@ -2472,53 +1616,12 @@ }, /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" }, /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{ @@ -2533,24 +1636,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 @@ -2569,21 +1654,6 @@ /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{ @@ -2592,40 +1662,6 @@ }, /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) "ajT" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -2638,19 +1674,6 @@ }, /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; @@ -2680,16 +1703,6 @@ icon_state = "red" }, /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/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{ @@ -2697,6 +1710,24 @@ icon_state = "redcorner" }, /area/almayer/shipboard/weapon_room) +"akh" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "bluecorner" + }, +/area/almayer/hallways/upper/midship_hallway) +"akn" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/vehicle/powerloader{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "cargo" + }, +/area/almayer/hallways/lower/vehiclehangar) "ako" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -2755,20 +1786,6 @@ icon_state = "sterile_green_side" }, /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{ @@ -2798,52 +1815,6 @@ icon_state = "sterile_green_side" }, /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 @@ -2860,17 +1831,6 @@ icon_state = "silver" }, /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 @@ -2883,70 +1843,11 @@ icon_state = "sterile_green_side" }, /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" }, /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 @@ -2965,12 +1866,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; @@ -2983,31 +1882,17 @@ }, /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" + icon_state = "red" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/shipboard/brig/starboard_hallway) "alw" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; @@ -3017,22 +1902,6 @@ icon_state = "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) @@ -3047,99 +1916,17 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) -"alF" = ( -/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 Maintenance"; - closeOtherId = "brigmaint_s" - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "perma_lockdown_2"; - name = "\improper Perma Lockdown Shutter" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/perma) -"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" }, /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) @@ -3195,12 +1982,6 @@ icon_state = "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"; @@ -3225,12 +2006,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"amp" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "ams" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/atmos_alert{ @@ -3240,6 +2015,14 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/s_bow) "amw" = ( /turf/open/floor/almayer{ dir = 9; @@ -3259,17 +2042,6 @@ icon_state = "orange" }, /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) "amE" = ( /obj/item/clothing/suit/storage/marine/light/vest, /obj/item/clothing/suit/storage/marine/light/vest, @@ -3298,113 +2070,6 @@ icon_state = "silver" }, /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" - }, -/area/almayer/hallways/repair_bay) -"amW" = ( -/obj/structure/surface/rack, -/obj/item/storage/firstaid/toxin, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "amX" = ( /turf/open/floor/almayer{ dir = 1; @@ -3434,21 +2099,6 @@ icon_state = "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; @@ -3463,24 +2113,19 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/pilotbunks) -"anf" = ( -/turf/open/floor/almayer{ - icon_state = "silvercorner" +"ang" = ( +/obj/item/clothing/head/welding{ + pixel_y = 6 }, -/area/almayer/hallways/aft_hallway) -"anh" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hallways/aft_hallway) -"ani" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/hull/upper/u_a_p) "anm" = ( /obj/structure/stairs{ icon_state = "ramptop" @@ -3494,13 +2139,6 @@ allow_construction = 0 }, /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) "anp" = ( /obj/structure/sign/safety/hazard{ pixel_x = 15; @@ -3548,25 +2186,6 @@ icon_state = "sterile_green_side" }, /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" - }, -/area/almayer/hull/lower_hull/l_m_p) -"anu" = ( -/obj/structure/ladder{ - height = 2; - id = "AftStarboardMaint" - }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/upper_hull/u_a_s) "anw" = ( /obj/structure/machinery/flasher{ id = "Containment Cell 1"; @@ -3595,77 +2214,6 @@ icon_state = "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, @@ -3685,27 +2233,6 @@ /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; @@ -3713,6 +2240,7 @@ req_access = null; req_one_access_txt = "3;22;2;19" }, +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ icon_state = "test_floor4" }, @@ -3729,60 +2257,19 @@ }, /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" = ( @@ -3794,12 +2281,6 @@ "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; @@ -3834,18 +2315,6 @@ 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" - }, -/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 @@ -3857,11 +2326,6 @@ icon_state = "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; @@ -3869,6 +2333,23 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"aoz" = ( +/obj/structure/stairs{ + dir = 8; + icon_state = "ramptop" + }, +/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/upper/fore_hallway) "aoA" = ( /obj/structure/machinery/light, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -3881,68 +2362,12 @@ icon_state = "silver" }, /area/almayer/command/cichallway) -"aoB" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "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; @@ -4006,9 +2431,6 @@ /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" = ( @@ -4018,66 +2440,11 @@ }, /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" }, /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{ @@ -4109,20 +2476,6 @@ /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 @@ -4132,12 +2485,6 @@ icon_state = "green" }, /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; @@ -4150,12 +2497,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"; @@ -4164,20 +2505,6 @@ }, /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, @@ -4185,25 +2512,12 @@ icon_state = "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" }, /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"; @@ -4222,26 +2536,6 @@ icon_state = "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{ @@ -4266,37 +2560,12 @@ icon_state = "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" }, /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, @@ -4401,17 +2670,6 @@ icon_state = "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) "aqe" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -4465,13 +2723,6 @@ }, /turf/open/floor/plating, /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, @@ -4532,19 +2783,6 @@ icon_state = "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 @@ -4566,6 +2804,10 @@ icon_state = "test_floor4" }, /area/almayer/living/pilotbunks) +"aqB" = ( +/obj/structure/blocker/fuelpump, +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/south1) "aqF" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" @@ -4583,6 +2825,13 @@ icon_state = "plate" }, /area/almayer/medical/medical_science) +"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{ dir = 8; @@ -4601,17 +2850,19 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) -"aqM" = ( +"aqL" = ( +/obj/structure/stairs{ + dir = 1 + }, /obj/effect/projector{ - name = "Almayer_Up2"; - vector_x = -1; - vector_y = 100 + name = "Almayer_Up4"; + vector_x = -19; + vector_y = 104 }, -/obj/structure/machinery/light{ - dir = 8 +/turf/open/floor/plating/almayer{ + allow_construction = 0 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/port_midship_hallway) "aqN" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -4665,18 +2916,12 @@ /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) -"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, @@ -4742,17 +2987,6 @@ icon_state = "orange" }, /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 @@ -4799,6 +3033,23 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) +"ary" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/obj/structure/machinery/door_control{ + id = "OTStore"; + name = "Shutters"; + pixel_y = -24; + access_modified = 1; + req_one_access_txt = "35" + }, +/obj/structure/surface/rack, +/obj/item/reagent_container/glass/bucket/janibucket, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/lower/workshop/hangar) "arz" = ( /obj/structure/closet/firecloset, /turf/open/floor/almayer{ @@ -4848,16 +3099,6 @@ icon_state = "orange" }, /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 @@ -4920,34 +3161,6 @@ icon_state = "dark_sterile" }, /area/almayer/living/pilotbunks) -"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) -"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 @@ -4969,15 +3182,6 @@ /obj/structure/machinery/door/poddoor/almayer/biohazard/white, /turf/open/floor/plating, /area/almayer/medical/upper_medical) -"asp" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "asr" = ( /obj/structure/bed/chair/comfy/alpha{ dir = 8 @@ -5010,41 +3214,12 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north2) -"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) -"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" +"asE" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 }, -/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{ @@ -5093,33 +3268,6 @@ icon_state = "silver" }, /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, @@ -5135,9 +3283,6 @@ icon_state = "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, @@ -5150,18 +3295,6 @@ icon_state = "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{ @@ -5224,16 +3357,6 @@ /obj/structure/bed/sofa/vert/grey/top, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"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{ @@ -5248,17 +3371,6 @@ icon_state = "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) @@ -5337,61 +3449,48 @@ }, /area/almayer/engineering/upper_engineering) "atz" = ( -/obj/item/tool/minihoe{ - pixel_x = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/safety/escapepod{ + pixel_y = 32 }, -/area/almayer/hull/upper_hull/u_a_s) -"atC" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +/obj/structure/sign/safety/east{ + pixel_x = 15; + pixel_y = 32 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 1; + icon_state = "green" }, -/area/almayer/hallways/aft_hallway) -"atD" = ( -/obj/structure/largecrate/random/case/small, +/area/almayer/hallways/upper/fore_hallway) +"atH" = ( /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) -"atG" = ( -/obj/structure/bed/chair/comfy/beige{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +/area/almayer/hallways/lower/starboard_midship_hallway) +"atJ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 }, -/area/almayer/hull/upper_hull/u_a_s) -"atI" = ( -/obj/structure/stairs{ - dir = 8; - icon_state = "ramptop" +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 }, -/obj/effect/projector{ - name = "Almayer_Down3"; - vector_x = 1; - vector_y = -102 +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/upper/port) "atK" = ( /turf/open/floor/almayer{ dir = 10; icon_state = "red" }, /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; @@ -5434,6 +3533,12 @@ icon_state = "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 @@ -5448,39 +3553,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) -"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{ @@ -5493,27 +3565,9 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) -"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) "aui" = ( /obj/structure/machinery/telecomms/hub/preset, @@ -5528,30 +3582,6 @@ icon_state = "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, @@ -5562,42 +3592,6 @@ icon_state = "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) "auu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -5605,17 +3599,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) "auy" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -5635,31 +3618,6 @@ icon_state = "orangecorner" }, /area/almayer/engineering/upper_engineering) -"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) -"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"; @@ -5767,6 +3725,16 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) +"ava" = ( +/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/upper/midship_hallway) "avc" = ( /obj/structure/stairs/perspective{ dir = 4; @@ -5784,35 +3752,20 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"avj" = ( -/turf/open/floor/almayer{ - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"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{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_umbilical) "avs" = ( /turf/closed/wall/biodome, /area/almayer/powered/agent) @@ -5854,10 +3807,6 @@ icon_state = "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"; @@ -5898,68 +3847,6 @@ icon_state = "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{ @@ -6033,15 +3920,6 @@ icon_state = "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) @@ -6057,15 +3935,6 @@ icon_state = "rasputin15" }, /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) @@ -6149,9 +4018,7 @@ 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, @@ -6159,16 +4026,6 @@ icon_state = "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; @@ -6219,6 +4076,9 @@ icon_state = "plate" }, /area/almayer/command/cic) +"awE" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "awF" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/living/numbertwobunks) @@ -6239,19 +4099,6 @@ icon_state = "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{ @@ -6310,10 +4157,6 @@ icon_state = "cargo" }, /area/almayer/living/pilotbunks) -"awY" = ( -/obj/effect/landmark/start/pilot, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/pilotbunks) "awZ" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/paper_bin/uscm{ @@ -6404,19 +4247,6 @@ icon_state = "blue" }, /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{ @@ -6574,6 +4404,17 @@ icon_state = "tcomms" }, /area/almayer/command/telecomms) +"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{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "aya" = ( /turf/open/floor/almayer{ dir = 4; @@ -6628,19 +4469,6 @@ icon_state = "orange" }, /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, @@ -6694,7 +4522,13 @@ /obj/item/storage/belt/medical/full, /obj/structure/machinery/computer/working_joe{ dir = 8; - pixel_x = 17 + pixel_x = 17; + pixel_y = 8 + }, +/obj/structure/machinery/computer/cameras/almayer/ares{ + dir = 8; + pixel_x = 17; + pixel_y = -6 }, /turf/open/floor/almayer{ icon_state = "plate" @@ -6705,21 +4539,6 @@ 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"; - closeOtherId = "ciclobby_n" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/cic) "ayu" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -6767,21 +4586,6 @@ icon_state = "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) "ayI" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical{ @@ -6825,12 +4629,6 @@ icon_state = "silver" }, /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 @@ -6849,21 +4647,6 @@ icon_state = "red" }, /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{ @@ -6908,16 +4691,19 @@ icon_state = "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 }, +/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{ - dir = 8; - icon_state = "cargo_arrow" + icon_state = "test_floor4" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/starboard_fore_hallway) "azc" = ( /obj/structure/machinery/computer/telecomms/traffic, /turf/open/floor/almayer{ @@ -6942,6 +4728,12 @@ icon_state = "orangecorner" }, /area/almayer/engineering/upper_engineering) +"azg" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_bow) "azh" = ( /obj/structure/pipes/vents/pump/on, /turf/open/floor/almayer{ @@ -7059,19 +4851,6 @@ icon_state = "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, @@ -7093,43 +4872,6 @@ allow_construction = 0 }, /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{ @@ -7145,23 +4887,6 @@ }, /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; @@ -7205,28 +4930,11 @@ icon_state = "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) "aAd" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -7237,16 +4945,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; @@ -7273,28 +4971,13 @@ icon_state = "silvercorner" }, /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"; - closeOtherId = "ciclobby_n" - }, -/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; @@ -7318,17 +5001,6 @@ icon_state = "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{ @@ -7445,22 +5117,15 @@ icon_state = "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 +"aAU" = ( +/obj/structure/machinery/light{ + dir = 4 }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" + dir = 4; + icon_state = "orange" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/starboard_midship_hallway) "aAZ" = ( /obj/structure/bed/chair/office/light{ dir = 8 @@ -7472,18 +5137,6 @@ icon_state = "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; @@ -7546,27 +5199,6 @@ icon_state = "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{ @@ -7644,11 +5276,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; @@ -7710,14 +5337,6 @@ icon_state = "red" }, /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{ @@ -7846,9 +5465,7 @@ /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, @@ -7877,18 +5494,6 @@ icon_state = "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, @@ -7916,11 +5521,26 @@ icon_state = "sterile_green" }, /area/almayer/medical/medical_science) +"aCu" = ( +/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/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" @@ -7957,6 +5577,14 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/containment) +"aCX" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "aCZ" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, @@ -7995,14 +5623,6 @@ icon_state = "orangecorner" }, /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, @@ -8027,15 +5647,6 @@ icon_state = "orange" }, /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{ @@ -8063,16 +5674,6 @@ icon_state = "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 @@ -8100,6 +5701,10 @@ icon_state = "plate" }, /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 @@ -8108,21 +5713,6 @@ icon_state = "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 @@ -8177,12 +5767,6 @@ }, /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 @@ -8208,16 +5792,6 @@ icon_state = "silver" }, /area/almayer/command/cic) -"aDM" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/lobby) "aDO" = ( /turf/open/floor/almayer{ dir = 8; @@ -8262,23 +5836,17 @@ /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 }, +/obj/structure/machinery/computer/cameras/almayer/ares{ + dir = 4 + }, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/command/lifeboat) -"aDZ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) "aEe" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -8289,13 +5857,24 @@ }, /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) +/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{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_umbilical) "aEg" = ( /turf/open/floor/almayer{ icon_state = "redfull" @@ -8331,12 +5910,15 @@ icon_state = "orange" }, /area/almayer/engineering/lower) -"aEp" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, +"aEr" = ( +/obj/structure/largecrate/random/barrel/yellow, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/maint/hull/lower/l_a_p) "aEA" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -8379,24 +5961,6 @@ icon_state = "silver" }, /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) -"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, @@ -8436,21 +6000,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{ @@ -8555,31 +6107,6 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) -"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, @@ -8663,15 +6190,15 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) -"aFF" = ( -/obj/structure/machinery/light{ - dir = 4 +"aFG" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "vehicle1door"; + name = "Vehicle Bay One" }, /turf/open/floor/almayer{ - dir = 9; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/vehiclehangar) "aFI" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -8694,23 +6221,13 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north1) -"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 - }, +"aGa" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/toolbox, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/maint/hull/upper/p_bow) "aGb" = ( /obj/structure/ladder{ height = 2; @@ -8724,22 +6241,6 @@ icon_state = "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 @@ -8759,6 +6260,25 @@ icon_state = "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{ + dir = 8; + icon_state = "ai_silver" + }, +/area/almayer/command/airoom) +"aGm" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_p) "aGn" = ( /obj/structure/barricade/handrail, /turf/open/floor/almayer{ @@ -8828,19 +6348,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/upper/starboard) -"aGC" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) -"aGD" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "aGH" = ( /obj/structure/machinery/computer/ordercomp, /turf/open/floor/almayer{ @@ -8850,12 +6357,6 @@ "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"; @@ -8941,16 +6442,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) @@ -9045,12 +6536,6 @@ icon_state = "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"; @@ -9065,12 +6550,6 @@ icon_state = "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"; @@ -9126,34 +6605,20 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/starboard_missiles) -"aIa" = ( -/obj/structure/machinery/power/terminal, -/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) "aId" = ( /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) -"aIe" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "aIf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/command/cic) +"aIh" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) "aIl" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -9224,12 +6689,18 @@ /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{ + dir = 4; + icon_state = "orange" + }, +/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" }, @@ -9246,6 +6717,7 @@ /obj/item/reagent_container/glass/beaker/large{ pixel_x = -6 }, +/obj/structure/surface/table/almayer, /turf/open/floor/almayer{ icon_state = "sterile_green_side" }, @@ -9284,20 +6756,6 @@ icon_state = "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 @@ -9335,9 +6793,22 @@ icon_state = "plate" }, /area/almayer/living/tankerbunks) -"aIZ" = ( -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_s) +"aIY" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/firstaid/toxin{ + pixel_x = 8; + pixel_y = -2 + }, +/obj/item/storage/firstaid/regular, +/obj/item/reagent_container/spray/cleaner, +/turf/open/floor/almayer{ + icon_state = "sterile_green_side" + }, +/area/almayer/shipboard/brig/medical) "aJc" = ( /obj/structure/machinery/door/airlock/almayer/command{ name = "\improper Commanding Officer's Mess" @@ -9458,12 +6929,6 @@ icon_state = "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 @@ -9505,20 +6970,6 @@ /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" @@ -9631,9 +7082,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{ @@ -9702,21 +7151,6 @@ icon_state = "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) "aKN" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/clothing/accessory/red, @@ -9771,15 +7205,6 @@ icon_state = "plating" }, /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) "aLc" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -9793,24 +7218,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"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" - }, -/area/almayer/hull/lower_hull/l_f_s) -"aLl" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "aLp" = ( /obj/structure/sign/safety/cryo{ pixel_x = 8; @@ -9825,28 +7232,42 @@ icon_state = "dark_sterile" }, /area/almayer/living/numbertwobunks) -"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) +"aLx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/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" + }, +/obj/structure/surface/rack, +/obj/item/rappel_harness{ + pixel_y = 8 + }, +/obj/item/rappel_harness, +/obj/item/rappel_harness{ + pixel_y = -6 + }, +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "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 @@ -9891,6 +7312,9 @@ pixel_y = 16 }, /obj/item/clothing/accessory/stethoscope, +/obj/structure/closet/secure_closet/professor_dummy{ + pixel_x = -32 + }, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_corner" @@ -9911,6 +7335,11 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) +"aMf" = ( +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_f_s) "aMg" = ( /obj/structure/sign/safety/intercom{ layer = 2.9; @@ -9936,36 +7365,12 @@ icon_state = "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; + dir = 4; icon_state = "silver" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/upper/midship_hallway) "aMm" = ( /obj/structure/surface/table/almayer, /obj/item/tool/crowbar, @@ -9993,19 +7398,6 @@ icon_state = "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 @@ -10033,6 +7425,11 @@ icon_state = "plate" }, /area/almayer/squads/alpha_bravo_shared) +"aMy" = ( +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/starboard) "aMz" = ( /turf/open/floor/almayer, /area/almayer/squads/alpha) @@ -10091,12 +7488,10 @@ /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 @@ -10128,12 +7523,6 @@ icon_state = "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{ @@ -10152,33 +7541,6 @@ "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) -"aNk" = ( -/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{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "aNl" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -10188,14 +7550,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, @@ -10212,18 +7566,6 @@ icon_state = "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; @@ -10234,12 +7576,12 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha_bravo_shared) -"aNG" = ( +"aNE" = ( +/obj/structure/machinery/light, /turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" + icon_state = "silver" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/upper/midship_hallway) "aNI" = ( /obj/structure/machinery/door/airlock/almayer/marine/alpha/tl, /turf/open/floor/almayer{ @@ -10247,8 +7589,17 @@ }, /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{ + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "aNQ" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -10272,6 +7623,11 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) +"aNW" = ( +/turf/open/floor/almayer{ + icon_state = "redcorner" + }, +/area/almayer/shipboard/brig/starboard_hallway) "aNY" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -10307,16 +7663,6 @@ dir = 1 }, /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, @@ -10381,12 +7727,6 @@ icon_state = "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 @@ -10458,15 +7798,6 @@ icon_state = "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, @@ -10482,11 +7813,11 @@ /turf/open/floor/almayer, /area/almayer/living/chapel) "aOS" = ( -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" +/obj/structure/machinery/portable_atmospherics/canister/air, +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) +/area/almayer/maint/upper/u_a_s) "aOU" = ( /obj/structure/platform{ dir = 4 @@ -10526,19 +7857,26 @@ }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) "aPi" = ( /obj/structure/machinery/vending/cola, /turf/open/floor/almayer{ @@ -10563,12 +7901,6 @@ icon_state = "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; @@ -10607,9 +7939,6 @@ icon_state = "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" @@ -10620,6 +7949,15 @@ icon_state = "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{ @@ -10669,6 +8007,19 @@ /obj/structure/sign/nosmoking_1, /turf/closed/wall/almayer, /area/almayer/squads/alpha) +"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/maint/hull/upper/u_a_p) "aPS" = ( /obj/structure/machinery/power/port_gen/pacman, /turf/open/floor/almayer{ @@ -10687,21 +8038,18 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"aPX" = ( -/obj/structure/largecrate/random/case/double, -/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" +"aPV" = ( +/obj/structure/sign/safety/high_voltage{ + pixel_y = -32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 }, -/area/almayer/hallways/starboard_umbilical) -"aPZ" = ( /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "blue" }, -/area/almayer/hallways/starboard_umbilical) +/area/almayer/hallways/upper/fore_hallway) "aQb" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -10721,15 +8069,6 @@ icon_state = "emerald" }, /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{ @@ -10761,23 +8100,13 @@ icon_state = "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) +/turf/open/floor/plating, +/area/almayer/maint/upper/u_m_p) "aQy" = ( /obj/structure/transmitter{ dir = 8; @@ -10829,10 +8158,6 @@ icon_state = "test_floor4" }, /area/almayer/living/offices) -"aQI" = ( -/obj/effect/landmark/start/researcher, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/offices) "aQL" = ( /turf/closed/wall/almayer, /area/almayer/squads/bravo) @@ -10928,12 +8253,6 @@ }, /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{ @@ -10944,15 +8263,6 @@ icon_state = "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; @@ -11033,16 +8343,6 @@ icon_state = "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; @@ -11069,6 +8369,22 @@ }, /turf/open/floor/plating/almayer, /area/almayer/medical/upper_medical) +"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{ + icon_state = "redfull" + }, +/area/almayer/hallways/lower/port_midship_hallway) "aRP" = ( /turf/open/floor/almayer{ dir = 1; @@ -11094,14 +8410,6 @@ icon_state = "orange" }, /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 @@ -11145,23 +8453,6 @@ icon_state = "tcomms" }, /area/almayer/engineering/lower/engine_core) -"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" - }, -/area/almayer/hull/lower_hull/l_m_s) "aSn" = ( /obj/item/stack/sheet/mineral/plastic{ amount = 15 @@ -11218,24 +8509,6 @@ icon_state = "kitchen" }, /area/almayer/living/captain_mess) -"aSr" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/obj/structure/sign/safety/one{ - 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 = "red" - }, -/area/almayer/hallways/starboard_hallway) "aSt" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/chem_dispenser/soda/beer, @@ -11243,18 +8516,6 @@ icon_state = "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{ @@ -11264,18 +8525,6 @@ icon_state = "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; @@ -11286,20 +8535,6 @@ icon_state = "red" }, /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 @@ -11348,20 +8583,6 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/operating_room_two) -"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{ @@ -11422,16 +8643,6 @@ icon_state = "green" }, /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 @@ -11525,53 +8736,6 @@ icon_state = "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"; @@ -11726,6 +8890,15 @@ icon_state = "plate" }, /area/almayer/living/captain_mess) +"aUB" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) "aUC" = ( /obj/structure/machinery/light{ dir = 4 @@ -11825,6 +8998,12 @@ icon_state = "bluefull" }, /area/almayer/living/captain_mess) +"aVm" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/shipboard/brig/starboard_hallway) "aVo" = ( /obj/structure/machinery/light{ dir = 1 @@ -11846,10 +9025,6 @@ icon_state = "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{ @@ -11885,6 +9060,16 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) +"aVK" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) "aVL" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; @@ -11895,6 +9080,13 @@ icon_state = "red" }, /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; @@ -11948,16 +9140,11 @@ icon_state = "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 }, /obj/structure/machinery/door_control/brbutton{ id = "engie_store"; @@ -11966,6 +9153,11 @@ 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{ dir = 1; icon_state = "orangecorner" @@ -11980,23 +9172,6 @@ icon_state = "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 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "aWg" = ( /obj/structure/machinery/door_control{ id = "CMP Office Shutters"; @@ -12023,15 +9198,6 @@ icon_state = "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 @@ -12072,14 +9238,6 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) -"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{ @@ -12141,23 +9299,12 @@ icon_state = "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{ + dir = 4; + icon_state = "greencorner" }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"aWR" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/upper/fore_hallway) "aWT" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 @@ -12251,75 +9398,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/upper/port) -"aXE" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) -"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) "aYd" = ( /obj/structure/dropship_equipment/medevac_system, /turf/open/floor/almayer{ icon_state = "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) -"aYn" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/aft_hallway) -"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) @@ -12350,15 +9434,6 @@ icon_state = "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{ @@ -12377,23 +9452,6 @@ /obj/structure/safe/cl_office, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"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) "aYQ" = ( /obj/structure/machinery/bioprinter{ stored_metal = 125 @@ -12411,59 +9469,6 @@ icon_state = "sterile_green_side" }, /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 @@ -12483,46 +9488,6 @@ icon_state = "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 @@ -12535,6 +9500,14 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/chapel) +"aZv" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_m_p) "aZy" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -12545,10 +9518,6 @@ /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{ @@ -12556,10 +9525,6 @@ icon_state = "red" }, /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"; @@ -12570,14 +9535,12 @@ allow_construction = 0 }, /area/almayer/stair_clone/upper) -"aZH" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" +"aZI" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) +/area/almayer/maint/hull/upper/p_stern) "aZK" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -12656,10 +9619,6 @@ icon_state = "test_floor4" }, /area/almayer/hallways/hangar) -"bad" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "baf" = ( /obj/structure/barricade/handrail/medical, /turf/open/floor/almayer{ @@ -12673,71 +9632,9 @@ icon_state = "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) "baG" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/floor/almayer, @@ -12785,6 +9682,14 @@ icon_state = "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 @@ -12793,19 +9698,20 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "bbd" = ( /obj/structure/machinery/light{ dir = 4 @@ -12829,83 +9735,18 @@ icon_state = "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 + name = "\improper Brig" }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hallways/starboard_umbilical) +/area/almayer/shipboard/brig/medical) "bbr" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -12916,18 +9757,6 @@ "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" @@ -12955,49 +9784,6 @@ icon_state = "plating" }, /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) @@ -13007,13 +9793,6 @@ }, /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{ @@ -13072,6 +9851,19 @@ icon_state = "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{ + dir = 9; + icon_state = "silver" + }, +/area/almayer/maint/upper/u_m_p) "bcm" = ( /turf/closed/wall/almayer, /area/almayer/hallways/hangar) @@ -13093,6 +9885,12 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"bct" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/maint/upper/u_a_p) "bcw" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -13254,10 +10052,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) @@ -13284,15 +10078,6 @@ icon_state = "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) "bdr" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) @@ -13450,13 +10235,6 @@ icon_state = "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 @@ -13540,36 +10318,15 @@ icon_state = "sterile_green_corner" }, /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" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "beL" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -13586,6 +10343,18 @@ icon_state = "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{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/north2) "beP" = ( /obj/item/stack/catwalk, /obj/structure/disposalpipe/segment{ @@ -13646,25 +10415,15 @@ }, /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 +"bfd" = ( +/obj/structure/machinery/light{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"bfc" = ( -/obj/structure/disposalpipe/segment{ dir = 1; - icon_state = "pipe-c" + icon_state = "green" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/hallways/lower/port_midship_hallway) "bfl" = ( /turf/open/floor/almayer{ dir = 5; @@ -13689,6 +10448,9 @@ icon_state = "redcorner" }, /area/almayer/living/cryo_cells) +"bfs" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/maint/hull/lower/l_f_s) "bft" = ( /obj/structure/disposalpipe/junction{ dir = 4 @@ -13800,24 +10562,9 @@ }, /area/almayer/hallways/hangar) "bfO" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/machinery/photocopier{ - anchored = 0 - }, -/obj/structure/sign/poster/art{ - pixel_y = 32 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliaison) -"bfP" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, +/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 @@ -13839,18 +10586,6 @@ icon_state = "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 @@ -14009,12 +10744,6 @@ /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 @@ -14023,6 +10752,25 @@ icon_state = "test_floor4" }, /area/almayer/living/chapel) +"bgM" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "orange" + }, +/area/almayer/hallways/upper/midship_hallway) +"bgN" = ( +/obj/structure/sign/safety/medical{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) "bgO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -14092,22 +10840,6 @@ icon_state = "silver" }, /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{ @@ -14131,14 +10863,14 @@ icon_state = "plate" }, /area/almayer/living/chapel) -"bhC" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, +"bhy" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/tool, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/maint/hull/lower/l_m_p) "bhG" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -14167,6 +10899,15 @@ icon_state = "bluefull" }, /area/almayer/living/bridgebunks) +"bhR" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/fore_hallway) "bhT" = ( /obj/structure/cargo_container/lockmart/mid{ layer = 3.1; @@ -14181,6 +10922,19 @@ }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "biq" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/glass/beaker/large, @@ -14197,12 +10951,6 @@ icon_state = "sterile_green_side" }, /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; @@ -14234,15 +10982,13 @@ "biA" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/operating_room_three) -"biB" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, +"biC" = ( +/obj/structure/largecrate/random/case, +/obj/structure/machinery/access_button/airlock_exterior, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull) +/area/almayer/maint/hull/upper/u_a_s) "biF" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/roller/surgical, @@ -14286,13 +11032,6 @@ icon_state = "red" }, /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 @@ -14300,10 +11039,10 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/living/starboard_garden) -"bjb" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +"bjg" = ( +/obj/item/trash/chips, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "bjk" = ( /obj/structure/machinery/door_control{ id = "perma_lockdown_2"; @@ -14326,12 +11065,27 @@ icon_state = "plate" }, /area/almayer/squads/bravo) +"bjt" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_stern) "bju" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "red" }, /area/almayer/shipboard/brig/processing) +"bjv" = ( +/obj/structure/disposalpipe/junction, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/fore_hallway) "bjA" = ( /turf/open/floor/almayer{ dir = 9; @@ -14350,64 +11104,6 @@ icon_state = "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 - }, -/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) "bjQ" = ( /obj/structure/machinery/shower{ dir = 8 @@ -14427,6 +11123,12 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"bkb" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/aft_hallway) "bkd" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 @@ -14493,16 +11195,6 @@ "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{ @@ -14514,6 +11206,16 @@ }, /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{ + dir = 8; + icon_state = "silver" + }, +/area/almayer/maint/upper/u_m_p) "bkN" = ( /obj/item/storage/firstaid/toxin{ pixel_x = 6; @@ -14541,26 +11243,17 @@ icon_state = "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" @@ -14584,24 +11277,6 @@ icon_state = "silver" }, /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) -"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) "blf" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -14676,6 +11351,7 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ icon_state = "test_floor4" }, @@ -14846,12 +11522,6 @@ }, /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; @@ -14866,21 +11536,6 @@ icon_state = "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{ @@ -14907,9 +11562,9 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/obj/structure/disposalpipe/segment{ +/obj/structure/disposalpipe/junction{ dir = 8; - icon_state = "pipe-c" + icon_state = "pipe-y" }, /turf/open/floor/almayer{ icon_state = "plate" @@ -15072,15 +11727,6 @@ icon_state = "cargo_arrow" }, /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 @@ -15154,32 +11800,6 @@ icon_state = "red" }, /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) -"boc" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 2 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "bof" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 @@ -15200,32 +11820,31 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_four) -"boq" = ( -/obj/structure/bed/chair/comfy/alpha, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/living/briefing) -"bot" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/light{ - dir = 8 +"bom" = ( +/obj/structure/sign/safety/south{ + pixel_x = -17; + pixel_y = 8 }, -/obj/effect/spawner/random/toolbox, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "blue" }, -/area/almayer/hallways/starboard_umbilical) -"bou" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/light{ - dir = 4 +/area/almayer/hallways/lower/port_midship_hallway) +"bop" = ( +/turf/open/floor/almayer{ + dir = 10; + icon_state = "cargo" }, -/obj/item/tank/emergency_oxygen/double, +/area/almayer/engineering/upper_engineering/port) +"boq" = ( +/obj/structure/bed/chair/comfy/alpha, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "redfull" }, -/area/almayer/hallways/starboard_umbilical) +/area/almayer/living/briefing) +"bos" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/lower/s_bow) "boy" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" @@ -15265,13 +11884,6 @@ icon_state = "mono" }, /area/almayer/squads/req) -"boC" = ( -/obj/structure/barricade/handrail, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"boL" = ( -/turf/open/floor/almayer, -/area/almayer/living/starboard_garden) "boV" = ( /obj/structure/cargo_container/wy/left, /obj/structure/prop/almayer/minigun_crate{ @@ -15295,13 +11907,6 @@ icon_state = "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, @@ -15414,14 +12019,6 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"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) "bpK" = ( /obj/structure/machinery/door/airlock/almayer/marine/alpha/sl, /turf/open/floor/almayer{ @@ -15448,7 +12045,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{ @@ -15464,26 +12061,30 @@ icon_state = "green" }, /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" }, /area/almayer/living/cryo_cells) -"bpW" = ( -/obj/structure/surface/table/almayer, -/obj/effect/spawner/random/technology_scanner, +"bqc" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) +"bqg" = ( +/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/starboard_umbilical) +/area/almayer/hallways/lower/starboard_fore_hallway) "bqm" = ( /obj/structure/closet/boxinggloves, /turf/open/floor/almayer{ @@ -15496,12 +12097,6 @@ icon_state = "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; @@ -15539,14 +12134,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lockerroom) -"bqP" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 5" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower/engine_core) "bqR" = ( /turf/open/floor/almayer{ dir = 6; @@ -15648,6 +12235,11 @@ /obj/structure/supply_drop/bravo, /turf/open/floor/plating, /area/almayer/squads/req) +"brq" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_midship_hallway) "brr" = ( /obj/structure/machinery/cm_vending/clothing/medic/bravo, /turf/open/floor/almayer{ @@ -15704,31 +12296,6 @@ icon_state = "plate" }, /area/almayer/squads/bravo) -"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, @@ -15742,12 +12309,6 @@ icon_state = "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, @@ -15761,18 +12322,6 @@ icon_state = "sterile_green_side" }, /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" - }, -/area/almayer/hallways/starboard_hallway) "bsp" = ( /obj/structure/sink{ dir = 4; @@ -15826,20 +12375,14 @@ }, /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 + name = "ship-grade camera" }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "red" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/shipboard/brig/mp_bunks) "bsG" = ( /obj/structure/machinery/disposal{ density = 0; @@ -15866,7 +12409,7 @@ /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{ @@ -15888,10 +12431,6 @@ icon_state = "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{ @@ -15927,15 +12466,6 @@ icon_state = "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{ @@ -15946,25 +12476,16 @@ icon_state = "red" }, /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" }, /area/almayer/squads/bravo) -"bsX" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/starboard_hallway) +"btb" = ( +/obj/structure/window/framed/almayer, +/turf/open/floor/plating, +/area/almayer/maint/upper/u_a_s) "btc" = ( /obj/structure/bed/chair{ dir = 8; @@ -15988,29 +12509,6 @@ icon_state = "silver" }, /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) -"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, @@ -16071,6 +12569,15 @@ "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_s) "btX" = ( /obj/structure/machinery/light{ dir = 4 @@ -16098,11 +12605,6 @@ icon_state = "red" }, /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{ @@ -16137,15 +12639,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_one) -"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{ @@ -16187,26 +12680,6 @@ icon_state = "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) "buM" = ( /obj/structure/machinery/cm_vending/clothing/smartgun/bravo, /turf/open/floor/almayer{ @@ -16238,27 +12711,28 @@ icon_state = "plate" }, /area/almayer/squads/bravo) -"buU" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +"buY" = ( +/obj/structure/stairs{ + dir = 1 }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/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/starboard_hallway) +/area/almayer/hallways/lower/port_midship_hallway) "bvb" = ( /obj/structure/machinery/light{ dir = 8 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"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{ @@ -16292,6 +12766,19 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_one) +"bvD" = ( +/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/lower/port_fore_hallway) "bvF" = ( /turf/open/floor/almayer{ dir = 8; @@ -16309,35 +12796,6 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/general_equipment) -"bvO" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"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) -"bvV" = ( -/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) "bvX" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -16357,11 +12815,6 @@ icon_state = "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{ @@ -16442,15 +12895,32 @@ /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/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 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/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{ @@ -16461,26 +12931,12 @@ icon_state = "sterile_green_corner" }, /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" +"bwP" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/almayer{ + allow_construction = 0 }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/lower/starboard_midship_hallway) "bwR" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/med_data/laptop{ @@ -16506,18 +12962,6 @@ icon_state = "sterile_green_side" }, /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" @@ -16554,13 +12998,6 @@ icon_state = "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; @@ -16573,12 +13010,6 @@ icon_state = "redfull" }, /area/almayer/living/cryo_cells) -"bxx" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) "bxA" = ( /obj/structure/machinery/power/apc/almayer/hardened, /obj/effect/decal/warning_stripes{ @@ -16617,27 +13048,35 @@ icon_state = "dark_sterile" }, /area/almayer/living/port_emb) -"bxD" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 +"bxE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/machinery/light, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "red" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/shipboard/brig/starboard_hallway) "bxN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/lower/workshop) -"bxX" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 +"bxY" = ( +/obj/structure/surface/table/almayer, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21"; + pixel_y = 11 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" + }, +/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{ @@ -16705,15 +13144,15 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"bys" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, +"byt" = ( +/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/hallways/starboard_hallway) +/area/almayer/maint/hull/lower/l_m_s) "byu" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -16741,33 +13180,6 @@ icon_state = "silver" }, /area/almayer/living/cryo_cells) -"byC" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"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) "bzg" = ( /obj/structure/pipes/vents/pump{ dir = 8; @@ -16783,9 +13195,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_four) -"bzy" = ( -/turf/closed/wall/almayer, -/area/almayer/hallways/vehiclehangar) "bzz" = ( /obj/structure/disposalpipe/trunk{ dir = 4 @@ -16793,11 +13202,6 @@ /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" @@ -16806,25 +13210,6 @@ icon_state = "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" @@ -16836,10 +13221,6 @@ icon_state = "silver" }, /area/almayer/living/cryo_cells) -"bzK" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "bzQ" = ( /obj/structure/largecrate/random/case, /turf/open/floor/plating/plating_catwalk, @@ -16858,34 +13239,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/chemistry) -"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) -"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 @@ -16903,12 +13256,6 @@ dir = 1 }, /area/almayer/command/lifeboat) -"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, @@ -16918,12 +13265,6 @@ /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) @@ -16939,6 +13280,13 @@ icon_state = "test_floor4" }, /area/almayer/command/securestorage) +"bAy" = ( +/obj/structure/closet/fireaxecabinet{ + pixel_y = -32 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "bAH" = ( /obj/structure/largecrate/random/case, /turf/open/floor/almayer{ @@ -17015,17 +13363,6 @@ icon_state = "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" @@ -17044,21 +13381,6 @@ icon_state = "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) "bBd" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -17085,14 +13407,6 @@ icon_state = "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) "bBl" = ( /obj/structure/machinery/light{ dir = 4 @@ -17146,9 +13460,6 @@ "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 @@ -17181,6 +13492,11 @@ icon_state = "plate" }, /area/almayer/living/auxiliary_officer_office) +"bBH" = ( +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) "bBN" = ( /obj/structure/machinery/light, /turf/open/floor/plating/plating_catwalk, @@ -17196,6 +13512,18 @@ icon_state = "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{ @@ -17233,21 +13561,10 @@ /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 @@ -17271,17 +13588,10 @@ icon_state = "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 @@ -17290,6 +13600,18 @@ icon_state = "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 @@ -17334,22 +13656,6 @@ icon_state = "silver" }, /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; @@ -17357,10 +13663,6 @@ }, /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) "bCM" = ( /obj/structure/machinery/cryopod, /turf/open/floor/almayer{ @@ -17382,12 +13684,12 @@ icon_state = "red" }, /area/almayer/squads/alpha) -"bCQ" = ( -/obj/structure/machinery/light/small, +"bCR" = ( +/obj/structure/largecrate/random/case, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/maint/hull/upper/u_a_p) "bCS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -17396,15 +13698,6 @@ icon_state = "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" @@ -17421,20 +13714,6 @@ icon_state = "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, @@ -17450,28 +13729,6 @@ icon_state = "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; @@ -17496,7 +13753,7 @@ access_modified = 1; dir = 1; name = "\improper Auxiliary Combat Support Secondary Preparations"; - req_one_access = "19;27;22" + req_one_access_txt = "19;27;22" }, /turf/open/floor/almayer{ icon_state = "plate" @@ -17661,6 +13918,16 @@ }, /turf/open/floor/plating, /area/almayer/squads/req) +"bEk" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 2 + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "bEl" = ( /obj/structure/machinery/computer/supply_drop_console/limited, /turf/closed/wall/almayer, @@ -17672,12 +13939,6 @@ }, /turf/open/floor/plating, /area/almayer/squads/req) -"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{ @@ -17705,16 +13966,6 @@ icon_state = "cargo" }, /area/almayer/squads/req) -"bEt" = ( -/obj/structure/noticeboard{ - pixel_x = -10; - pixel_y = 31 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/squads/req) "bEv" = ( /turf/open/floor/almayer{ dir = 1; @@ -17733,14 +13984,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"; @@ -17799,16 +14042,6 @@ icon_state = "red" }, /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"; @@ -17919,12 +14152,6 @@ icon_state = "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) "bFa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -17948,6 +14175,21 @@ }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "bFp" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -17982,10 +14224,6 @@ icon_state = "orange" }, /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 @@ -17995,6 +14233,15 @@ icon_state = "silver" }, /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 @@ -18017,6 +14264,14 @@ /obj/docking_port/stationary/marine_dropship/almayer_hangar_1, /turf/open/floor/plating, /area/almayer/hallways/hangar) +"bFX" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_aft_hallway) "bGa" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -18030,9 +14285,6 @@ icon_state = "mono" }, /area/almayer/hallways/upper/starboard) -"bGb" = ( -/turf/closed/wall/almayer, -/area/almayer/hallways/port_hallway) "bGc" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -18042,60 +14294,6 @@ 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" - }, -/area/almayer/hallways/port_hallway) -"bGl" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, -/area/almayer/hallways/port_hallway) "bGn" = ( /obj/structure/barricade/plasteel/metal, /turf/open/floor/almayer{ @@ -18112,17 +14310,6 @@ /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{ @@ -18132,12 +14319,6 @@ icon_state = "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{ @@ -18283,48 +14464,22 @@ icon_state = "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 +"bHg" = ( +/obj/structure/bed, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "sterile_green_side" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/area/almayer/medical/lower_medical_medbay) "bHk" = ( /turf/open/floor/almayer/research/containment/floor2{ dir = 1 }, /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 @@ -18358,16 +14513,13 @@ icon_state = "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 +"bHu" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/warden_office) "bHB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -18388,20 +14540,6 @@ icon_state = "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, @@ -18409,73 +14547,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) -"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 @@ -18494,21 +14568,11 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"bIi" = ( -/obj/structure/sign/safety/security{ - pixel_x = 15; - pixel_y = 32 - }, +"bIj" = ( /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 + icon_state = "emeraldcorner" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/lower/port_midship_hallway) "bIn" = ( /obj/structure/machinery/computer/cameras/almayer_network, /obj/structure/surface/table/almayer, @@ -18537,7 +14601,7 @@ name = "\improper ARES Mainframe Shutters"; plane = -7 }, -/obj/structure/machinery/door/poddoor/almayer/blended/white/open{ +/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open{ closed_layer = 3.2; id = "ARES Emergency"; layer = 3.2; @@ -18589,16 +14653,6 @@ }, /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/navigation) -"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 @@ -18622,27 +14676,19 @@ }, /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) -"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" +"bIO" = ( +/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) -"bIT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/almayer{ + dir = 8; + icon_state = "greencorner" }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/lower/port_fore_hallway) "bIU" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/warning_stripes{ @@ -18659,18 +14705,13 @@ icon_state = "orange" }, /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, @@ -18695,21 +14736,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) "bJl" = ( /obj/structure/machinery/door/airlock/almayer/generic{ access_modified = 1; @@ -18729,9 +14755,6 @@ icon_state = "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) @@ -18748,11 +14771,6 @@ icon_state = "sterile_green_side" }, /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) @@ -18775,19 +14793,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/bravo) -"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) "bJS" = ( /obj/structure/surface/rack, /obj/item/tool/wrench, @@ -18824,12 +14829,6 @@ icon_state = "red" }, /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 @@ -18846,12 +14845,6 @@ icon_state = "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, @@ -18861,36 +14854,21 @@ icon_state = "red" }, /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" }, /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." @@ -18975,17 +14953,32 @@ icon_state = "cargo" }, /area/almayer/living/cryo_cells) -"bKE" = ( +"bKI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/starboard_hallway) +"bKJ" = ( +/obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" + icon_state = "test_floor4" }, -/area/almayer/hallways/starboard_hallway) +/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) +"bKP" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/lower/s_bow) "bKQ" = ( /obj/structure/bed/chair{ dir = 8 @@ -19000,18 +14993,27 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"bLb" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ +"bLc" = ( +/obj/structure/surface/rack, +/obj/item/roller, +/obj/item/roller, +/obj/structure/machinery/light{ dir = 1 }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" +/obj/item/clothing/glasses/disco_fever{ + pixel_x = 5; + pixel_y = 4 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_s) +"bLf" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/hull/upper/u_m_s) "bLh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -19125,41 +15127,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{ @@ -19207,6 +15174,21 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"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{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/starboard_hallway) "bLH" = ( /turf/open/floor/almayer{ dir = 8; @@ -19236,34 +15218,6 @@ /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{ @@ -19280,6 +15234,21 @@ icon_state = "green" }, /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{ @@ -19289,12 +15258,6 @@ icon_state = "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; @@ -19353,6 +15316,16 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) +"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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/p_bow) "bMJ" = ( /obj/structure/machinery/light, /obj/structure/machinery/portable_atmospherics/canister/oxygen, @@ -19425,21 +15398,12 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) -"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" - }, +"bMZ" = ( +/obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ - icon_state = "dark_sterile" + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/upper/u_f_p) "bNa" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black, @@ -19535,15 +15499,6 @@ /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, @@ -19553,6 +15508,14 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) +"bNr" = ( +/obj/structure/sign/safety/storage{ + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "bNs" = ( /obj/structure/bed/chair/office/light{ dir = 8 @@ -19678,47 +15641,6 @@ icon_state = "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) -"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) "bOq" = ( /obj/structure/prop/almayer/cannon_cables, /turf/open/floor/almayer{ @@ -19734,12 +15656,15 @@ icon_state = "redcorner" }, /area/almayer/shipboard/weapon_room) -"bOv" = ( +"bOw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "emeraldcorner" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/lower/vehiclehangar) "bOx" = ( /obj/structure/machinery/door/airlock/almayer/marine/charlie/tl, /turf/open/floor/almayer{ @@ -19867,11 +15792,6 @@ icon_state = "plating" }, /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 @@ -19915,15 +15835,11 @@ icon_state = "red" }, /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, @@ -19987,22 +15903,6 @@ icon_state = "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 @@ -20082,36 +15982,6 @@ icon_state = "logo_c" }, /area/almayer/living/briefing) -"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" - }, -/area/almayer/hull/lower_hull/l_m_s) "bQc" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1 @@ -20280,76 +16150,29 @@ icon_state = "plate" }, /area/almayer/squads/bravo) -"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) -"bRx" = ( -/obj/structure/machinery/door/poddoor/railing{ - id = "vehicle_elevator_railing_aux" - }, -/obj/structure/machinery/light, +"bRo" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, /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 + icon_state = "N"; + pixel_y = 1 }, /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 + icon_state = "orangecorner" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) -"bRK" = ( -/obj/structure/machinery/light/small{ - dir = 1 +/area/almayer/hallways/lower/starboard_umbilical) +"bRO" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 32 }, -/obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "green" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/hallways/upper/fore_hallway) "bRP" = ( /obj/structure/machinery/body_scanconsole, /obj/structure/disposalpipe/segment{ @@ -20363,39 +16186,6 @@ icon_state = "sterile_green_side" }, /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 @@ -20428,13 +16218,6 @@ icon_state = "silver" }, /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; @@ -20444,22 +16227,6 @@ "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) "bSn" = ( /obj/structure/machinery/cm_vending/gear/tl{ density = 0; @@ -20546,15 +16313,6 @@ icon_state = "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; @@ -20639,6 +16397,14 @@ icon_state = "bluecorner" }, /area/almayer/squads/delta) +"bTz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_umbilical) "bTA" = ( /turf/open/floor/almayer, /area/almayer/squads/delta) @@ -20671,10 +16437,6 @@ "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; @@ -20706,12 +16468,6 @@ "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 @@ -20769,6 +16525,16 @@ icon_state = "plate" }, /area/almayer/living/tankerbunks) +"bTW" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "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{ @@ -20787,38 +16553,6 @@ icon_state = "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{ @@ -20893,12 +16627,6 @@ icon_state = "blue" }, /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, @@ -20914,35 +16642,18 @@ icon_state = "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" +"bUH" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/area/almayer/hallways/aft_hallway) -"bUF" = ( -/turf/open/floor/almayer{ - icon_state = "bluecorner" +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 }, -/area/almayer/hallways/port_hallway) -"bUG" = ( -/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hallways/port_hallway) -"bUM" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/hull/lower/l_m_p) "bUN" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -20957,16 +16668,11 @@ icon_state = "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, +"bUQ" = ( /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/maint/hull/lower/l_f_p) "bUT" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 26 @@ -21000,15 +16706,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/medical_science) -"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 @@ -21033,6 +16730,14 @@ icon_state = "blue" }, /area/almayer/squads/delta) +"bVr" = ( +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "bVs" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -21068,31 +16773,6 @@ icon_state = "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, @@ -21104,36 +16784,12 @@ }, /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/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/hull/upper_hull/u_f_s) +/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; @@ -21170,6 +16826,12 @@ icon_state = "plate" }, /area/almayer/living/starboard_garden) +"bWg" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "bWh" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 2; @@ -21219,15 +16881,6 @@ icon_state = "test_floor4" }, /area/almayer/living/chapel) -"bWF" = ( -/obj/structure/machinery/door/airlock/almayer/medical{ - dir = 1; - name = "Medical Storage" - }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, -/area/almayer/medical/lower_medical_medbay) "bWJ" = ( /obj/structure/machinery/shower{ dir = 4 @@ -21235,30 +16888,18 @@ /obj/structure/machinery/door/window/eastright, /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" - }, -/area/almayer/squads/req) -"bWP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 - }, +/area/almayer/living/auxiliary_officer_office) +"bWL" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - dir = 4; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/squads/req) +"bWQ" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/warden_office) "bWT" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -21272,18 +16913,18 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"bWV" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 +"bXc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/sign/safety/rewire{ - pixel_x = 32 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer{ dir = 4; - icon_state = "orange" + icon_state = "green" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/fore_hallway) "bXe" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) @@ -21295,6 +16936,14 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) +"bXh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/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; @@ -21308,12 +16957,6 @@ icon_state = "plate" }, /area/almayer/shipboard/navigation) -"bXs" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) "bXw" = ( /obj/structure/machinery/bioprinter{ stored_metal = 125 @@ -21322,6 +16965,15 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/operating_room_two) +"bXy" = ( +/obj/structure/machinery/cm_vending/clothing/maintenance_technician, +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/upper_engineering/port) "bXz" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating/plating_catwalk, @@ -21335,12 +16987,6 @@ icon_state = "plate" }, /area/almayer/squads/req) -"bXX" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) "bXY" = ( /obj/structure/ladder{ height = 1; @@ -21354,10 +17000,6 @@ icon_state = "plate" }, /area/almayer/shipboard/navigation) -"bXZ" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) "bYa" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/blend, /turf/open/floor/almayer{ @@ -21365,43 +17007,6 @@ icon_state = "green" }, /area/almayer/squads/req) -"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) "bYn" = ( /turf/closed/wall/almayer/outer, /area/almayer/engineering/upper_engineering/port) @@ -21451,16 +17056,6 @@ icon_state = "silver" }, /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) "bYF" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -21468,6 +17063,18 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/lower) +"bYL" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_a_s) +"bYW" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/panic) "bYY" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, @@ -21509,13 +17116,18 @@ icon_state = "red" }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "bZi" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ @@ -21536,6 +17148,25 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"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 = "ramptop" + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "bZr" = ( /turf/open/floor/almayer{ dir = 1; @@ -21545,49 +17176,12 @@ "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) -"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) "bZO" = ( /obj/structure/machinery/light{ dir = 8 @@ -21609,6 +17203,13 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) +"bZS" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "bZU" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -21689,12 +17290,10 @@ icon_state = "green" }, /area/almayer/squads/req) -"can" = ( -/obj/structure/machinery/conveyor{ - id = "req_belt" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +"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 @@ -21707,14 +17306,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"cat" = ( -/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/hallways/vehiclehangar) "cau" = ( /obj/structure/disposalpipe/segment, /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -21731,63 +17322,6 @@ icon_state = "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) -"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) "caM" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/floor/almayer{ @@ -21841,6 +17375,17 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "cbg" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 2; @@ -21879,17 +17424,6 @@ icon_state = "silver" }, /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 @@ -21904,150 +17438,27 @@ icon_state = "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" + name = "ship-grade camera" }, -/area/almayer/hallways/port_hallway) +/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) -"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{ @@ -22055,27 +17466,6 @@ icon_state = "red" }, /area/almayer/living/cryo_cells) -"ccc" = ( -/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{ - dir = 8; - name = "\improper Containment Airlock"; - closeOtherId = "containment_n" - }, -/obj/structure/machinery/door/poddoor/almayer/biohazard/white{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/medical/containment) "ccd" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, /turf/open/floor/almayer{ @@ -22108,31 +17498,8 @@ 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) -"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 @@ -22141,22 +17508,16 @@ icon_state = "plate" }, /area/almayer/medical/morgue) -"ccu" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/disposalpipe/segment{ - dir = 4 +"ccx" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" }, /turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) -"ccv" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" + dir = 8; + icon_state = "green" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/fore_hallway) "ccG" = ( /obj/structure/largecrate/random/secure, /obj/effect/decal/warning_stripes{ @@ -22166,64 +17527,23 @@ icon_state = "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" }, /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) -"ccU" = ( -/obj/structure/pipes/vents/pump{ - dir = 8; - id_tag = "mining_outpost_pump" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_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" @@ -22264,27 +17584,6 @@ }, /turf/open/floor/plating, /area/almayer/living/cryo_cells) -"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, @@ -22296,37 +17595,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"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 - }, -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "cdI" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -22375,22 +17643,20 @@ }, /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) +/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 @@ -22400,50 +17666,6 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha) -"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, @@ -22466,28 +17688,24 @@ icon_state = "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" +"ceV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hallways/repair_bay) -"ceR" = ( -/obj/structure/machinery/prop/almayer/computer{ - pixel_y = 20 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "orange" }, -/area/almayer/hallways/repair_bay) -"ceU" = ( -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" +/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{ @@ -22505,6 +17723,24 @@ icon_state = "red" }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "cfo" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) @@ -22533,71 +17769,12 @@ }, /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" }, /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; @@ -22671,29 +17848,6 @@ "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) -"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{ @@ -22712,6 +17866,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) +"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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "chb" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/sign/safety/maint{ @@ -22777,33 +17941,10 @@ icon_state = "plate" }, /area/almayer/squads/charlie) -"chu" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "chv" = ( /obj/structure/closet/secure_closet/guncabinet/red/mp_armory_shotgun, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/armory) -"chC" = ( -/obj/structure/platform_decoration, -/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) "chL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -22926,6 +18067,16 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha) +"cif" = ( +/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/lower/starboard_umbilical) "cil" = ( /obj/structure/machinery/light, /obj/structure/sign/safety/waterhazard{ @@ -22936,47 +18087,12 @@ icon_state = "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" }, /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 @@ -23012,6 +18128,21 @@ icon_state = "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 @@ -23033,31 +18164,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, @@ -23088,10 +18194,6 @@ icon_state = "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{ @@ -23109,59 +18211,19 @@ icon_state = "red" }, /area/almayer/shipboard/brig/cells) -"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" - }, -/area/almayer/hallways/port_umbilical) "cjm" = ( -/obj/structure/machinery/door/poddoor/almayer{ - id = "s_umbilical"; - name = "\improper Umbillical Airlock"; - unacidable = 1 - }, +/obj/structure/surface/rack, +/obj/item/tool/wet_sign, +/obj/item/tool/wet_sign, /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) +/area/almayer/maint/upper/u_a_p) "cjt" = ( /turf/open/floor/almayer{ icon_state = "orange" }, /area/almayer/engineering/lower) -"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) "cjA" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -23201,41 +18263,6 @@ icon_state = "emerald" }, /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 @@ -23278,29 +18305,34 @@ icon_state = "silver" }, /area/almayer/engineering/port_atmos) -"ckl" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 +"cke" = ( +/obj/structure/machinery/vending/cola{ + density = 0; + pixel_y = 18 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) -"ckm" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +/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/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 }, /turf/open/floor/almayer{ - dir = 9; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/hull/upper/p_stern) "ckr" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, @@ -23308,28 +18340,6 @@ icon_state = "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) -"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 @@ -23362,22 +18372,6 @@ icon_state = "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, @@ -23388,29 +18382,23 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"cla" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 +"ckZ" = ( +/obj/structure/machinery/light{ + dir = 8 }, +/obj/structure/machinery/power/reactor, /turf/open/floor/almayer{ - dir = 6; - icon_state = "red" + icon_state = "test_floor4" }, -/area/almayer/hallways/port_hallway) -"clb" = ( -/obj/structure/machinery/light{ +/area/almayer/engineering/lower/engine_core) +"cla" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, /turf/open/floor/almayer{ - dir = 10; - icon_state = "red" + icon_state = "orangecorner" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/aft_hallway) "cle" = ( /turf/open/floor/almayer{ dir = 4; @@ -23538,55 +18526,10 @@ /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{ + icon_state = "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{ @@ -23646,35 +18589,6 @@ icon_state = "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{ @@ -23696,7 +18610,6 @@ /area/almayer/squads/delta) "clV" = ( /obj/structure/machinery/computer/arcade, -/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ dir = 9; icon_state = "green" @@ -23733,44 +18646,17 @@ icon_state = "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"; @@ -23811,10 +18697,9 @@ icon_state = "green" }, /area/almayer/squads/req) -"cmq" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +"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 @@ -23838,10 +18723,6 @@ icon_state = "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{ @@ -23856,72 +18737,51 @@ icon_state = "red" }, /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, +"cmK" = ( +/obj/structure/window/reinforced, /turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_umbilical) -"cmI" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 + dir = 8; + icon_state = "silver" }, +/area/almayer/command/securestorage) +"cmL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ 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"; - closeOtherId = "astroladder_n" +/turf/open/floor/almayer{ + icon_state = "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{ - icon_state = "test_floor4" + icon_state = "plate" }, -/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"; - closeOtherId = "astroladder_s" +/area/almayer/maint/hull/lower/l_a_p) +"cmS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, -/area/almayer/shipboard/navigation) -"cmK" = ( -/obj/structure/window/reinforced, /turf/open/floor/almayer{ dir = 8; icon_state = "silver" }, -/area/almayer/command/securestorage) -"cmX" = ( -/obj/docking_port/stationary/escape_pod/west, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_m_p) -"cna" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/machinery/alarm/almayer{ - dir = 1 +/area/almayer/hallways/upper/fore_hallway) +"cmV" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/upper/port) +/area/almayer/maint/hull/upper/u_a_p) "cnd" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 2; @@ -23932,6 +18792,12 @@ icon_state = "test_floor4" }, /area/almayer/powered) +"cnm" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/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{ @@ -23946,26 +18812,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"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{ - dir = 4 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) "cnq" = ( /obj/structure/machinery/line_nexter{ id = "line1"; @@ -23997,12 +18843,6 @@ icon_state = "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; @@ -24028,6 +18868,15 @@ icon_state = "test_floor4" }, /area/almayer/command/computerlab) +"cnI" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/lower/port_umbilical) "cnM" = ( /obj/structure/window/reinforced{ dir = 4; @@ -24057,6 +18906,14 @@ icon_state = "plate" }, /area/almayer/living/port_emb) +"cnP" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "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{ @@ -24099,12 +18956,6 @@ icon_state = "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 @@ -24120,22 +18971,10 @@ icon_state = "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, +/obj/item/tool/surgery/scalpel, +/obj/item/tool/surgery/hemostat, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_corner" @@ -24176,10 +19015,20 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"com" = ( -/obj/structure/largecrate/supply/weapons/pistols, +"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/hull/upper_hull/u_m_s) +/area/almayer/maint/hull/lower/l_f_s) "cop" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/living/tankerbunks) @@ -24213,12 +19062,6 @@ }, /turf/open/floor/carpet, /area/almayer/living/commandbunks) -"coG" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "coH" = ( /obj/structure/platform_decoration{ dir = 1 @@ -24252,16 +19095,6 @@ dir = 4 }, /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, @@ -24289,12 +19122,12 @@ }, /turf/open/floor/almayer, /area/almayer/living/offices) -"cpw" = ( +"cpz" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ - icon_state = "mono" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/hull/lower/l_m_s) "cpJ" = ( /obj/structure/window/framed/almayer/white, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -24316,12 +19149,21 @@ /obj/structure/window/framed/almayer/hull/hijack_bustable, /turf/open/floor/plating, /area/almayer/squads/req) -"cqa" = ( +"cpP" = ( +/obj/structure/blocker/fuelpump, /turf/open/floor/almayer{ - dir = 10; - icon_state = "green" + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/north1) +"cqd" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orangecorner" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/starboard_umbilical) "cqm" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/folder/white{ @@ -24331,15 +19173,25 @@ 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) +"cqp" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer{ + icon_state = "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 @@ -24372,20 +19224,18 @@ /turf/open/floor/almayer, /area/almayer/living/bridgebunks) "crc" = ( -/obj/structure/sign/safety/storage{ - pixel_x = -17 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/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/machinery/door/poddoor/shutters/almayer{ + dir = 8; + id = "laddersoutheast"; + name = "\improper South East Ladders Shutters" }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "green" + icon_state = "test_floor4" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/port_midship_hallway) "crh" = ( /obj/structure/machinery/light{ dir = 1 @@ -24395,47 +19245,31 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"crp" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/secure_data{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/chief_mp_office) -"crD" = ( +"cri" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "greencorner" - }, -/area/almayer/squads/req) -"crP" = ( -/obj/item/tool/kitchen/utensil/pfork, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, -/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, +/area/almayer/maint/hull/upper/u_f_s) +"crD" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "greencorner" }, -/area/almayer/hallways/starboard_hallway) -"csz" = ( -/turf/open/floor/almayer{ - icon_state = "plate" +/area/almayer/squads/req) +"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/hull/upper_hull/u_m_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/warden_office) "csI" = ( /turf/open/floor/almayer{ dir = 8; @@ -24467,10 +19301,29 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/bravo) +"cth" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) +"ctp" = ( +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice12"; + pixel_y = 16 + }, +/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{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_umbilical) "ctx" = ( /obj/structure/bed{ icon_state = "abed" @@ -24500,15 +19353,22 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"ctC" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +"ctJ" = ( +/obj/structure/machinery/light{ dir = 4 }, +/obj/structure/machinery/cm_vending/sorted/medical/bolted, +/obj/structure/medical_supply_link, /turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" + dir = 1; + icon_state = "sterile_green_side" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/medical/lower_medical_medbay) +"ctQ" = ( +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "ctT" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ dir = 1; @@ -24567,17 +19427,23 @@ }, /area/almayer/squads/alpha) "cvb" = ( +/obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" + dir = 1 }, /turf/open/floor/almayer{ icon_state = "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 = 8 @@ -24590,6 +19456,10 @@ }, /turf/open/floor/almayer, /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 @@ -24609,31 +19479,15 @@ }, /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" - }, +"cwC" = ( /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 4; + icon_state = "red" }, -/area/almayer/hallways/port_hallway) +/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{ @@ -24647,28 +19501,39 @@ 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) "cxk" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"cxo" = ( +"cxF" = ( +/obj/structure/barricade/handrail{ + dir = 8 + }, +/obj/structure/barricade/handrail, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor5" + }, +/area/almayer/hallways/lower/port_midship_hallway) +"cyc" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) +"cyh" = ( +/obj/structure/machinery/door/airlock/almayer/generic/glass{ + name = "\improper Passenger Cryogenics Bay" }, -/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" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/maint/upper/u_m_p) "cyo" = ( /obj/structure/machinery/vending/cigarette, /turf/open/floor/almayer{ @@ -24676,29 +19541,49 @@ icon_state = "green" }, /area/almayer/squads/req) -"cyy" = ( -/obj/structure/machinery/light/small{ +"cyp" = ( +/obj/structure/machinery/conveyor{ + id = "lower_garbage" + }, +/obj/structure/plasticflaps, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "plating_striped" + }, +/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" + icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/stern) -"cyE" = ( -/obj/structure/platform_decoration{ - dir = 8 +/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{ + dir = 6; + icon_state = "orange" + }, +/area/almayer/maint/upper/mess) +"cyP" = ( +/obj/structure/machinery/cm_vending/clothing/intelligence_officer{ + density = 0; + pixel_x = -32 }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "silver" }, -/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 +/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 @@ -24713,24 +19598,35 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) -"czu" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/upper_hull/u_m_p) -"czJ" = ( -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 8; - pixel_y = -32 +"czN" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = -28 }, -/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 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) +"czR" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) +"cAa" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/janitorialcart, +/obj/item/tool/mop, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_p) "cAm" = ( /obj/structure/bed/chair/office/light{ dir = 8 @@ -24748,6 +19644,15 @@ }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "cAF" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -24760,11 +19665,9 @@ icon_state = "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 @@ -24781,16 +19684,6 @@ icon_state = "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; @@ -24807,32 +19700,6 @@ icon_state = "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{ @@ -24849,82 +19716,27 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/general_equipment) -"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 - }, +"cBC" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; - pixel_x = 1 + pixel_x = 2 }, /turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"cBZ" = ( -/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" + dir = 5; + icon_state = "green" }, -/obj/structure/machinery/light{ - dir = 1 +/area/almayer/hallways/lower/port_aft_hallway) +"cBV" = ( +/obj/structure/closet/firecloset, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + dir = 4; + icon_state = "greencorner" }, -/area/almayer/shipboard/brig/chief_mp_office) +/area/almayer/hallways/lower/port_fore_hallway) "cCa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -24948,15 +19760,22 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"cDe" = ( -/obj/structure/largecrate/random/barrel/white, -/obj/structure/sign/safety/storage{ - pixel_x = -17 +"cCL" = ( +/obj/effect/landmark/crap_item, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"cDb" = ( +/obj/structure/closet/secure_closet/personal/cabinet{ + req_access = null + }, +/obj/item/clothing/mask/rebreather/scarf/tacticalmask/red, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/maint/hull/lower/p_bow) "cDn" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/glass{ @@ -24984,6 +19803,15 @@ icon_state = "cargo" }, /area/almayer/squads/charlie) +"cDx" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_m_p) "cDC" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -24997,26 +19825,34 @@ /area/almayer/living/grunt_rnr) "cDH" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/computer/cameras/wooden_tv/prop{ +/obj/structure/machinery/computer/cameras/wooden_tv/broadcast{ pixel_y = 29 }, /turf/open/floor/almayer{ icon_state = "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 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/lobby) -"cDW" = ( -/obj/structure/largecrate/supply/supplies/flares, +"cDP" = ( /turf/open/floor/almayer{ dir = 1; - icon_state = "red" + icon_state = "silvercorner" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/hallways/upper/midship_hallway) "cDZ" = ( /obj/structure/surface/table/almayer, /obj/item/paper, @@ -25024,16 +19860,6 @@ icon_state = "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, @@ -25054,6 +19880,21 @@ icon_state = "plating" }, /area/almayer/command/cic) +"cEA" = ( +/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/maint/hull/lower/l_f_s) "cEC" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -25076,25 +19917,30 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/charlie) -"cEO" = ( -/obj/structure/largecrate/supply/floodlights, +"cEG" = ( +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "mono" }, -/area/almayer/hull/upper_hull/u_a_p) -"cES" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 +/area/almayer/hallways/upper/fore_hallway) +"cFg" = ( +/obj/structure/stairs{ + dir = 1; + icon_state = "ramptop" }, -/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/effect/projector{ + name = "Almayer_AresUp2"; + vector_x = -102; + vector_y = 61 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/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/almayer/aicore/no_build, +/area/almayer/command/airoom) "cFh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -25114,13 +19960,6 @@ icon_state = "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) "cFC" = ( /obj/structure/machinery/light{ dir = 1 @@ -25139,30 +19978,40 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"cGe" = ( -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/obj/item/fuelCell, -/turf/open/floor/almayer{ - icon_state = "cargo" +"cGd" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/upper/u_m_s) +"cGA" = ( +/obj/structure/sign/poster{ + pixel_y = -32 }, -/area/almayer/engineering/lower/engine_core) -"cGr" = ( +/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{ - icon_state = "plate" + dir = 4; + icon_state = "orange" }, -/area/almayer/hallways/aft_hallway) -"cGI" = ( -/obj/structure/largecrate/random/case/double, +/area/almayer/maint/hull/lower/l_m_s) +"cGO" = ( /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "silver" }, -/area/almayer/hull/lower_hull/stern) +/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" }, /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{ @@ -25173,6 +20022,9 @@ icon_state = "plate" }, /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" @@ -25185,10 +20037,6 @@ icon_state = "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) @@ -25197,6 +20045,12 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) +"cHC" = ( +/obj/structure/machinery/cm_vending/clothing/combat_correspondent, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "cHE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -25212,15 +20066,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"cHP" = ( -/obj/structure/machinery/light/small, -/obj/effect/decal/warning_stripes{ - icon_state = "N" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "cIe" = ( /obj/structure/machinery/light{ dir = 4 @@ -25228,20 +20073,14 @@ /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 +"cIm" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "greencorner" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/lower/port_fore_hallway) "cIr" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -25263,15 +20102,17 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) -"cIU" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, +"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{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/maint/upper/u_f_s) "cIW" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ name = "\improper Engineering Engine Monitoring" @@ -25280,15 +20121,20 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/starboard) -"cJh" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 8; - id = "Warden Office Shutters"; - name = "\improper Privacy Shutters" +"cJm" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/cells) +/obj/structure/bed/chair{ + dir = 16 + }, +/turf/open/floor/almayer{ + icon_state = "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" @@ -25301,16 +20147,46 @@ icon_state = "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/disposaloutlet{ + density = 0; + desc = "An outlet for the pneumatic delivery system."; + icon_state = "delivery_outlet"; + name = "take-ins"; + pixel_x = -1; + pixel_y = 28; + range = 0 + }, +/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{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "cJM" = ( /obj/structure/machinery/door_display/research_cell{ dir = 8; @@ -25353,36 +20229,47 @@ icon_state = "sterile_green" }, /area/almayer/medical/containment) -"cJP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"cKm" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/glass/bucket/mopbucket{ + pixel_x = -8 }, -/obj/structure/sign/safety/water{ +/obj/item/reagent_container/glass/bucket/mopbucket{ + pixel_y = 12 + }, +/obj/item/clothing/head/militia/bucket{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/item/reagent_container/spray/cleaner{ pixel_x = 8; - pixel_y = 32 + pixel_y = -1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"cKJ" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_a_p) -"cKt" = ( -/obj/structure/bed/sofa/south/grey/left, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "red" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/shipboard/brig/interrogation) "cKL" = ( /turf/open/floor/almayer{ dir = 8; icon_state = "orangecorner" }, /area/almayer/engineering/upper_engineering/port) -"cKY" = ( -/obj/structure/machinery/light, +"cLd" = ( +/obj/structure/closet, +/obj/item/clothing/glasses/mgoggles/prescription, +/obj/item/clothing/glasses/mbcg, /turf/open/floor/almayer{ - icon_state = "silver" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/upper/u_a_s) "cLl" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -25397,8 +20284,8 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "cargo_arrow" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_arrow" }, /area/almayer/command/airoom) "cLq" = ( @@ -25437,23 +20324,6 @@ icon_state = "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) -"cMb" = ( -/obj/structure/surface/table/almayer, -/obj/item/paper_bin/uscm{ - pixel_y = 7 - }, -/obj/item/tool/pen, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "cMl" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -25463,10 +20333,19 @@ }, /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 @@ -25494,26 +20373,23 @@ }, /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" }, /area/almayer/living/briefing) +"cNm" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/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"; @@ -25529,6 +20405,17 @@ icon_state = "test_floor4" }, /area/almayer/medical/containment/cell/cl) +"cNI" = ( +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/shipboard/brig/medical) +"cNJ" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) "cNK" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -25561,12 +20448,38 @@ }, /turf/open/floor/almayer, /area/almayer/living/grunt_rnr) -"cOi" = ( -/obj/effect/landmark/yautja_teleport, +"cOd" = ( +/obj/structure/blocker/fuelpump, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/south2) +"cOe" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) +"cOh" = ( +/obj/item/stool{ + pixel_x = 15; + pixel_y = 6 + }, +/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{ + icon_state = "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!"; @@ -25580,13 +20493,78 @@ icon_state = "outerhull_dir" }, /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; @@ -25601,6 +20579,10 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"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" @@ -25613,6 +20595,23 @@ icon_state = "red" }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "cQc" = ( /turf/open/floor/almayer{ dir = 1; @@ -25644,12 +20643,31 @@ "cQv" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/brig/general_equipment) +"cQC" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_x = -8; + pixel_y = 28 + }, +/obj/structure/sign/safety/intercom{ + pixel_x = 14; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "cQF" = ( -/obj/structure/largecrate/random/barrel/red, +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = -32 + }, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "blue" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/upper/midship_hallway) +"cQG" = ( +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/starboard_hallway) "cQL" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -25657,15 +20675,6 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/lobby) -"cQN" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "cQW" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out"; @@ -25690,15 +20699,6 @@ icon_state = "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) "cRi" = ( /turf/open/floor/almayer{ icon_state = "mono" @@ -25759,16 +20759,24 @@ icon_state = "red" }, /area/almayer/shipboard/starboard_missiles) -"cSK" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 +"cSH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) +"cSP" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, -/obj/structure/largecrate/supply/supplies/flares, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 9; + icon_state = "green" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/hallways/lower/port_midship_hallway) "cSQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -25795,6 +20803,12 @@ icon_state = "cargo" }, /area/almayer/squads/req) +"cTy" = ( +/obj/structure/closet/secure_closet/medical2, +/turf/open/floor/almayer{ + icon_state = "sterile_green_side" + }, +/area/almayer/shipboard/brig/medical) "cTC" = ( /obj/structure/machinery/vending/walkman, /turf/open/floor/almayer{ @@ -25802,34 +20816,64 @@ icon_state = "green" }, /area/almayer/living/offices) -"cUv" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 +"cTM" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/light/small{ + dir = 8 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/maint/upper/mess) +"cTX" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/lower/cryo_cells) +"cUl" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) +"cUo" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/lifeboat_pumps/north1) "cVb" = ( /obj/structure/machinery/sentry_holder/almayer, /turf/open/floor/almayer{ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north2) +"cVf" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "cVq" = ( /obj/structure/machinery/power/apc/almayer/hardened{ dir = 1 }, /turf/open/floor/almayer, /area/almayer/command/corporateliaison) -"cVs" = ( -/obj/structure/platform_decoration{ - dir = 8 +"cVt" = ( +/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) +/area/almayer/hallways/lower/port_fore_hallway) "cVw" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -25850,6 +20894,32 @@ icon_state = "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{ + icon_state = "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{ + icon_state = "sterile_green_corner" + }, +/area/almayer/medical/lower_medical_medbay) "cWr" = ( /obj/structure/machinery/photocopier{ density = 0; @@ -25888,26 +20958,6 @@ icon_state = "green" }, /area/almayer/living/offices) -"cWs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"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, @@ -25917,10 +20967,6 @@ icon_state = "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) "cWE" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -25931,16 +20977,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"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) "cXi" = ( /obj/structure/machinery/light{ unacidable = 1; @@ -25956,12 +20992,41 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) +"cXm" = ( +/obj/structure/largecrate/supply/supplies/mre, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "cXq" = ( -/obj/structure/largecrate/supply/supplies/water, +/obj/structure/machinery/light{ + dir = 1 + }, /turf/open/floor/almayer{ - icon_state = "red" + dir = 5; + icon_state = "green" + }, +/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 + }, +/obj/item/device/toner{ + pixel_x = -2; + pixel_y = -11 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "cXC" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -25971,6 +21036,19 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/execution_storage) "cXF" = ( /obj/structure/machinery/flasher{ alpha = 1; @@ -25989,6 +21067,12 @@ icon_state = "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 @@ -26000,18 +21084,27 @@ icon_state = "sterile_green_side" }, /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" }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) "cYu" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -26044,6 +21137,9 @@ icon_state = "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{ @@ -26053,27 +21149,39 @@ }, /turf/open/floor/plating, /area/almayer/command/cichallway) -"cZj" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, +"cZp" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/pipes/standard/simple/hidden/supply{ +/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{ + icon_state = "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{ - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) -"cZm" = ( -/obj/structure/machinery/light{ - dir = 1 +/area/almayer/maint/hull/lower/l_m_p) +"cZO" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/hull/upper/u_f_p) "cZV" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/fancy/cigarettes/wypacket, @@ -26109,23 +21217,34 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"dac" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"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{ + dir = 4; + icon_state = "orange" }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 8; - id = "laddernortheast"; - name = "\improper North East Ladders Shutters" +/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/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" }, -/area/almayer/hallways/starboard_hallway) -"daz" = ( -/turf/closed/wall/almayer/white/hull, -/area/almayer/command/airoom) +/area/almayer/maint/upper/u_m_s) "dbc" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -26208,6 +21327,12 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) +"dbX" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/maint/upper/mess) "dcd" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -26221,49 +21346,53 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"dco" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/almayer_network{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/chief_mp_office) "dcp" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) +"dcx" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_umbilical) "dcy" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "red" }, /area/almayer/shipboard/brig/perma) -"dcS" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = 12; - pixel_y = 13 +"dcR" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/fore_hallway) +"dcT" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 +/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 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/maint/upper/u_a_p) "ddf" = ( /obj/structure/machinery/portable_atmospherics/canister/air, /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/engineering/lower/engine_core) +"ddj" = ( +/obj/structure/bed/chair/bolted, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/shipboard/brig/interrogation) "ddk" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer{ @@ -26285,10 +21414,23 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/weapon_room) +"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 + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/aft_hallway) "deg" = ( /obj/structure/platform_decoration{ dir = 1 @@ -26297,6 +21439,11 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south2) +"deq" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "deD" = ( /obj/structure/machinery/prop/almayer/CICmap{ pixel_x = -5 @@ -26304,14 +21451,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 @@ -26328,19 +21474,6 @@ /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" @@ -26364,20 +21497,21 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/cells) +"dfA" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) "dfC" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ icon_state = "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) "dgg" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -26401,17 +21535,6 @@ icon_state = "plate" }, /area/almayer/living/gym) -"dgq" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "dgx" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_18"; @@ -26423,17 +21546,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/chief_mp_office) -"dgN" = ( -/obj/structure/surface/rack, -/obj/item/tool/shovel/etool{ - pixel_x = 6 - }, -/obj/item/tool/shovel/etool, -/obj/item/tool/wirecutters, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "dha" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -26464,6 +21576,29 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) +"dhp" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "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{ + dir = 1; + icon_state = "red" + }, +/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; @@ -26474,27 +21609,30 @@ icon_state = "redfull" }, /area/almayer/living/briefing) -"dhU" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "cargo" +"div" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hallways/port_hallway) -"dhZ" = ( -/obj/structure/machinery/light/small{ - dir = 1 +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 8; + id = "laddernortheast"; + name = "\improper North East Ladders Shutters" }, -/obj/structure/sign/safety/hazard{ - pixel_y = 32 +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/obj/structure/sign/safety/airlock{ - pixel_x = 15; - pixel_y = 32 +/area/almayer/hallways/lower/starboard_midship_hallway) +"diw" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 1; + icon_state = "blue" }, -/area/almayer/hallways/starboard_umbilical) +/area/almayer/hallways/upper/fore_hallway) "diz" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/blastdoor{ id_tag = "Boat1-D4"; @@ -26518,18 +21656,6 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha_bravo_shared) -"diP" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ - name = "\improper Brig Lobby"; - closeOtherId = "brignorth" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/lobby) "djQ" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -26556,9 +21682,6 @@ }, /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 @@ -26584,6 +21707,15 @@ icon_state = "red" }, /area/almayer/living/briefing) +"dkz" = ( +/obj/structure/pipes/vents/scrubber/no_boom{ + dir = 4 + }, +/turf/open/floor/almayer/aicore/no_build{ + dir = 8; + icon_state = "ai_silver" + }, +/area/almayer/command/airoom) "dkO" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down2"; @@ -26600,6 +21732,12 @@ allow_construction = 0 }, /area/almayer/stair_clone/upper) +"dkP" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "dkX" = ( /obj/structure/bed/chair/comfy/delta, /obj/effect/decal/cleanable/dirt, @@ -26613,13 +21751,18 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) -"dlp" = ( -/obj/structure/largecrate/supply/supplies/water, -/obj/item/toy/deck{ - pixel_y = 12 +"dlo" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/starboard) +"dlT" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/aft_hallway) "dmg" = ( /obj/structure/machinery/vending/coffee, /obj/structure/sign/safety/coffee{ @@ -26631,6 +21774,18 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"dmr" = ( +/obj/structure/transmitter{ + name = "Brig Offices Telephone"; + phone_category = "MP Dept."; + phone_id = "Brig Main Offices"; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "dmv" = ( /turf/open/floor/almayer{ dir = 8; @@ -26648,11 +21803,17 @@ icon_state = "cargo" }, /area/almayer/squads/req) -"dmQ" = ( +"dmF" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk, +/obj/structure/machinery/light{ + dir = 8 + }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "green" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/squads/req) "dmR" = ( /obj/effect/glowshroom, /obj/effect/glowshroom{ @@ -26690,26 +21851,14 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/cells) -"dnk" = ( -/obj/structure/largecrate/supply/generator, -/obj/item/reagent_container/food/drinks/bottle/whiskey{ - layer = 2.9; - pixel_x = -10; - pixel_y = 3 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/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 - }, +"dnh" = ( +/obj/structure/surface/rack, +/obj/item/book/manual/orbital_cannon_manual, /turf/open/floor/almayer{ - icon_state = "silverfull" + dir = 9; + icon_state = "red" }, -/area/almayer/command/computerlab) +/area/almayer/maint/upper/u_a_p) "dnC" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -26734,6 +21883,13 @@ icon_state = "mono" }, /area/almayer/engineering/upper_engineering/starboard) +"dnP" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "dnS" = ( /obj/structure/safe, /turf/open/floor/almayer{ @@ -26741,16 +21897,19 @@ icon_state = "silver" }, /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{ + dir = 4; + icon_state = "plating_striped" + }, +/area/almayer/maint/hull/lower/l_a_p) "dof" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ name = "\improper Upper Engineering" @@ -26762,14 +21921,6 @@ icon_state = "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 @@ -26801,6 +21952,13 @@ /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{ + dir = 10; + icon_state = "red" + }, +/area/almayer/hallways/upper/aft_hallway) "dpo" = ( /obj/structure/machinery/light{ dir = 1 @@ -26816,17 +21974,29 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) -"dpy" = ( -/obj/structure/disposalpipe/segment{ +"dpp" = ( +/obj/effect/projector{ + name = "Almayer_AresUp"; + vector_x = -96; + vector_y = 65 + }, +/obj/structure/platform{ dir = 4 }, -/obj/structure/bed/chair{ +/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 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/lower/starboard_aft_hallway) "dpO" = ( /obj/structure/machinery/cm_vending/clothing/marine/delta{ density = 0; @@ -26843,10 +22013,6 @@ }, /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{ @@ -26885,30 +22051,6 @@ icon_state = "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 - }, -/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" - }, -/area/almayer/hallways/aft_hallway) -"dqZ" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/chief_mp_office) "drj" = ( /obj/structure/window/reinforced{ dir = 4; @@ -26929,15 +22071,16 @@ icon_state = "silver" }, /area/almayer/engineering/port_atmos) -"drt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, +"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{ icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/hull/lower/l_m_s) "drT" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -26958,25 +22101,19 @@ icon_state = "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" +"drU" = ( +/obj/structure/machinery/door_control{ + id = "ARES JoeCryo"; + name = "ARES WorkingJoe Bay Shutters"; + req_one_access_txt = "91;92"; + pixel_x = 24 }, -/area/almayer/hallways/stern_hallway) -"dsu" = ( -/obj/structure/largecrate/supply/supplies/tables_racks, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" +/obj/structure/machinery/camera/autoname/almayer/containment/ares{ + autoname = 0; + c_tag = "AI - Comms" }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "dsA" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/almayer{ @@ -26984,43 +22121,32 @@ icon_state = "redcorner" }, /area/almayer/shipboard/brig/execution) +"dsY" = ( +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "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) "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"; - closeOtherId = "ciclobby_s" - }, -/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 @@ -27057,11 +22183,6 @@ icon_state = "emeraldfull" }, /area/almayer/living/briefing) -"dux" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/living/starboard_garden) "duz" = ( /obj/structure/mirror{ pixel_y = 32 @@ -27127,6 +22248,27 @@ icon_state = "cargo" }, /area/almayer/living/cryo_cells) +"dvD" = ( +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "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, @@ -27139,6 +22281,14 @@ }, /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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_f_s) "dwA" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/sign/safety/bathunisex{ @@ -27173,15 +22323,6 @@ icon_state = "silvercorner" }, /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"; @@ -27192,6 +22333,17 @@ allow_construction = 0 }, /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{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_fore_hallway) "dxK" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -27260,6 +22412,15 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_umbilical) "dyx" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 2; @@ -27289,29 +22450,57 @@ "dzp" = ( /turf/open/floor/almayer, /area/almayer/command/corporateliaison) -"dzF" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 8; - id = "laddernortheast"; - name = "\improper North East Ladders Shutters" +"dzt" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + layer = 3.3 + }, +/obj/structure/machinery/camera/autoname/almayer/containment/ares{ + dir = 8; + autoname = 0; + c_tag = "AI - Secondary Processors" }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer/aicore/glowing/no_build, +/area/almayer/command/airoom) "dzG" = ( /obj/structure/reagent_dispensers/peppertank{ pixel_y = 26 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/general_equipment) -"dAb" = ( -/obj/structure/largecrate/random/barrel/blue, +"dzX" = ( +/obj/structure/sign/safety/water{ + pixel_x = -17 + }, +/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/item/desk_bell{ + anchored = 1; + pixel_x = -8; + pixel_y = 8 + }, +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) +"dAm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/lower/starboard_midship_hallway) "dAq" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ @@ -27324,6 +22513,12 @@ icon_state = "test_floor4" }, /area/almayer/squads/bravo) +"dAA" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/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{ @@ -27346,6 +22541,20 @@ icon_state = "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{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/port_midship_hallway) "dBj" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -27410,13 +22619,21 @@ icon_state = "dark_sterile" }, /area/almayer/medical/operating_room_one) -"dBQ" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 +"dBR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" }, -/turf/open/floor/wood/ship, -/area/almayer/shipboard/brig/chief_mp_office) +/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/lower/repair_bay) "dBS" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -27443,22 +22660,6 @@ icon_state = "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 @@ -27466,14 +22667,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{ @@ -27488,6 +22681,13 @@ icon_state = "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 @@ -27505,27 +22705,19 @@ }, /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 - }, +"dCM" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/manifold/fourway/hidden/supply, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/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{ @@ -27541,15 +22733,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) -"dDC" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, +"dDJ" = ( +/obj/structure/closet/emcloset, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/maint/hull/lower/stern) "dDL" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/research/main_terminal{ @@ -27576,6 +22765,12 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop/hangar) +"dDT" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) "dEm" = ( /obj/structure/machinery/power/apc/almayer, /obj/effect/decal/warning_stripes{ @@ -27597,6 +22792,16 @@ }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) +"dEo" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/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; @@ -27607,16 +22812,6 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/port) -"dEC" = ( -/obj/structure/sign/safety/escapepod{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" - }, -/area/almayer/hallways/starboard_hallway) "dEG" = ( /obj/structure/machinery/light{ unacidable = 1; @@ -27633,6 +22828,23 @@ icon_state = "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 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/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, @@ -27640,13 +22852,6 @@ icon_state = "redfull" }, /area/almayer/living/briefing) -"dEV" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/light, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "dEX" = ( /obj/structure/closet/secure_closet/guncabinet/riot_control, /obj/item/weapon/shield/riot, @@ -27663,55 +22868,71 @@ icon_state = "redcorner" }, /area/almayer/command/lifeboat) +"dFl" = ( +/obj/structure/sign/safety/security{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) +"dFB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/machinery/light, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "dFF" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, /turf/open/floor/wood/ship, /area/almayer/shipboard/sea_office) +"dFL" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) +"dFM" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "dFR" = ( /turf/open/floor/almayer{ dir = 9; icon_state = "silver" }, /area/almayer/command/cichallway) -"dFU" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/main_office) -"dFV" = ( +"dFW" = ( /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, +/area/almayer/maint/hull/lower/l_f_p) +"dGg" = ( +/obj/structure/bed/chair{ + dir = 4 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) -"dGl" = ( -/obj/effect/step_trigger/teleporter_vector{ - name = "Almayer_AresUp"; - vector_x = -97; - vector_y = 65 - }, -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/stairs{ - dir = 1 - }, -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/command/airoom) +/area/almayer/maint/hull/upper/u_m_s) "dGr" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 @@ -27721,13 +22942,6 @@ icon_state = "blue" }, /area/almayer/living/pilotbunks) -"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{ @@ -27739,6 +22953,30 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"dGP" = ( +/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/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_f_s) +"dGT" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/obj/structure/surface/table/almayer, +/obj/item/storage/donut_box, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) "dGU" = ( /obj/structure/sign/poster/propaganda{ pixel_x = -27 @@ -27768,12 +23006,6 @@ icon_state = "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) "dHu" = ( /obj/structure/desertdam/decals/road_edge{ pixel_x = 2; @@ -27804,28 +23036,17 @@ id = "CIC Lockdown"; name = "\improper Combat Information Center Blast Door" }, -/turf/open/floor/plating, -/area/almayer/living/bridgebunks) -"dIi" = ( -/obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/plating/plating_catwalk{ - allow_construction = 0 - }, -/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) +/turf/open/floor/plating, +/area/almayer/living/bridgebunks) +"dIi" = ( +/obj/structure/pipes/standard/simple/hidden/supply/no_boom, +/turf/open/floor/plating/plating_catwalk/aicore, +/area/almayer/command/airoom) "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{ @@ -27858,16 +23079,30 @@ icon_state = "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, +"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 + }, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) +"dJy" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_bow) +"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 @@ -27880,47 +23115,36 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"dKa" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/upper_hull/u_f_s) -"dKc" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 9" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower/engine_core) -"dKm" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - layer = 3.33; - pixel_x = 2 - }, +"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 + pixel_y = 1 }, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - 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" }, -/obj/effect/decal/warning_stripes{ - icon_state = "S"; - layer = 3.3 +/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{ - dir = 5; - icon_state = "plating" +/turf/open/floor/almayer/aicore/no_build{ + dir = 8; + icon_state = "ai_silver" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/command/airoom) "dKp" = ( /turf/open/floor/almayer/research/containment/corner{ dir = 4 @@ -27939,6 +23163,27 @@ "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{ + icon_state = "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, @@ -27956,14 +23201,6 @@ icon_state = "silver" }, /area/almayer/command/cichallway) -"dLi" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 4" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower/engine_core) "dLt" = ( /obj/structure/sign/safety/hazard{ pixel_x = -17; @@ -27983,43 +23220,31 @@ icon_state = "cargo" }, /area/almayer/lifeboat_pumps/south1) -"dLE" = ( -/turf/open/floor/almayer{ - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) -"dMf" = ( -/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) +"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" }, /area/almayer/living/cryo_cells) +"dME" = ( +/turf/open/floor/almayer{ + icon_state = "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"; @@ -28042,12 +23267,18 @@ }, /turf/open/floor/plating, /area/almayer/living/cryo_cells) -"dNB" = ( -/obj/structure/largecrate/random/barrel/yellow, +"dNv" = ( +/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 = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/upper/fore_hallway) "dNM" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/tabasco{ @@ -28058,6 +23289,13 @@ icon_state = "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 @@ -28089,6 +23327,42 @@ icon_state = "plate" }, /area/almayer/living/captain_mess) +"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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_umbilical) "dPm" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -28097,6 +23371,27 @@ icon_state = "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) +"dPB" = ( +/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/upper/midship_hallway) "dPC" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -28112,6 +23407,12 @@ icon_state = "cargo" }, /area/almayer/engineering/lower/engine_core) +"dPO" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "dPQ" = ( /obj/structure/surface/table/almayer, /obj/item/tool/pen, @@ -28129,29 +23430,6 @@ allow_construction = 0 }, /area/almayer/shipboard/brig/processing) -"dPU" = ( -/obj/structure/sign/safety/nonpress_ag{ - pixel_x = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"dQl" = ( -/obj/structure/platform{ - dir = 4 - }, -/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; - icon_state = "silver" - }, -/area/almayer/command/airoom) "dQp" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -28171,23 +23449,6 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/cells) -"dQs" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) -"dQv" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/surgery) "dQA" = ( /obj/structure/pipes/standard/simple/visible{ dir = 4 @@ -28197,22 +23458,12 @@ icon_state = "orangecorner" }, /area/almayer/engineering/lower) -"dQE" = ( +"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 @@ -28223,6 +23474,21 @@ }, /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{ + icon_state = "dark_sterile" + }, +/area/almayer/shipboard/brig/mp_bunks) "dRs" = ( /obj/structure/closet/emcloset, /turf/open/floor/almayer{ @@ -28238,18 +23504,20 @@ icon_state = "red" }, /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 + }, +/obj/structure/machinery/status_display{ + pixel_y = -32 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "red" }, -/area/almayer/hallways/vehiclehangar) +/area/almayer/shipboard/brig/starboard_hallway) "dRD" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/airlock/almayer/security{ @@ -28262,15 +23530,6 @@ icon_state = "test_floor4" }, /area/almayer/living/offices/flight) -"dRG" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/starboard_hallway) "dRP" = ( /obj/structure/bed/chair/comfy/orange, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -28288,13 +23547,18 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"dRV" = ( -/obj/effect/landmark/crap_item, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 +"dSm" = ( +/obj/structure/sign/safety/airlock{ + pixel_y = -32 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "dSp" = ( /obj/structure/machinery/camera/autoname/almayer{ name = "ship-grade camera" @@ -28305,10 +23569,12 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"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{ + dir = 8; + icon_state = "bluecorner" + }, +/area/almayer/hallways/upper/midship_hallway) "dSJ" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -28331,6 +23597,16 @@ icon_state = "rasputin3" }, /area/almayer/powered/agent) +"dTd" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 8; + id = "laddernortheast"; + name = "\improper North East Ladders Shutters" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "dTn" = ( /turf/open/floor/almayer{ icon_state = "red" @@ -28344,30 +23620,12 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/lower/workshop) -"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" - }, -/area/almayer/hull/upper_hull/u_f_s) "dTI" = ( /obj/structure/machinery/light{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"dTQ" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/obj/structure/sign/safety/bulkhead_door{ - pixel_x = -16 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "dTS" = ( /obj/structure/machinery/fuelcell_recycler, /turf/open/floor/almayer{ @@ -28386,21 +23644,16 @@ icon_state = "silver" }, /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" +"dUR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 4; + icon_state = "silver" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/hallways/upper/midship_hallway) "dUS" = ( /turf/open/floor/almayer{ icon_state = "dark_sterile" @@ -28428,18 +23681,6 @@ icon_state = "blue" }, /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" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) "dVn" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -28471,6 +23712,21 @@ icon_state = "sterile_green_side" }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "dVO" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ @@ -28480,26 +23736,59 @@ icon_state = "plate" }, /area/almayer/living/offices) +"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 + }, +/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) -"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" - }, -/area/almayer/hull/upper_hull/u_m_p) "dWw" = ( /turf/open/floor/almayer{ dir = 8; icon_state = "bluecorner" }, /area/almayer/living/basketball) +"dWA" = ( +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) +"dWJ" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "dWX" = ( /obj/structure/machinery/light{ dir = 8 @@ -28508,6 +23797,12 @@ icon_state = "mono" }, /area/almayer/engineering/upper_engineering/starboard) +"dXb" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/lower/cryo_cells) "dXd" = ( /obj/item/storage/fancy/cigarettes/kpack, /obj/structure/surface/rack, @@ -28552,17 +23847,6 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/stern_point_defense) -"dXO" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -19; - pixel_y = -6 - }, -/obj/structure/sign/safety/bulkhead_door{ - pixel_x = -19; - pixel_y = 6 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "dXV" = ( /obj/structure/desertdam/decals/road_edge{ pixel_x = 16 @@ -28582,12 +23866,31 @@ icon_state = "blue" }, /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{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/fore_hallway) "dYu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -28605,22 +23908,6 @@ icon_state = "orange" }, /area/almayer/engineering/lower) -"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 - }, -/obj/structure/surface/table/almayer, -/obj/item/toy/crayon{ - pixel_x = 9; - pixel_y = -2 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "dYR" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/reagentgrinder{ @@ -28628,6 +23915,30 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) +"dYU" = ( +/obj/structure/surface/rack, +/obj/effect/decal/cleanable/cobweb{ + dir = 8; + plane = -6 + }, +/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/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/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/almayer{ + dir = 4; + icon_state = "sterile_green_corner" + }, +/area/almayer/medical/lower_medical_medbay) "dYX" = ( /obj/structure/machinery/door/airlock/almayer/marine/bravo{ dir = 1 @@ -28640,12 +23951,6 @@ icon_state = "test_floor4" }, /area/almayer/living/briefing) -"dZd" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "dZr" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28664,6 +23969,14 @@ }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "eaf" = ( /obj/structure/machinery/cm_vending/clothing/military_police{ density = 0; @@ -28710,84 +24023,74 @@ icon_state = "plate" }, /area/almayer/shipboard/port_point_defense) +"eaz" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + icon_state = "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) -"ebn" = ( -/obj/structure/sign/safety/airlock{ - pixel_x = 15; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"ebf" = ( +/obj/structure/closet/crate/freezer{ + desc = "A freezer crate. There is a note attached, it reads: Do not open, property of Pvt. Mendoza." }, -/area/almayer/command/lifeboat) -"ebp" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/bed/chair/comfy/bravo{ - dir = 4 +/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/living/briefing) -"ebt" = ( -/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" - }, -/area/almayer/engineering/lower/engine_core) -"ebv" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/firstaid/toxin{ - pixel_x = 8; - pixel_y = -2 +/area/almayer/maint/hull/upper/s_stern) +"ebn" = ( +/obj/structure/sign/safety/airlock{ + pixel_x = 15; + pixel_y = 32 }, -/obj/item/storage/firstaid/regular, -/obj/item/reagent_container/spray/cleaner, /turf/open/floor/almayer{ - icon_state = "sterile_green_side" + icon_state = "plate" }, -/area/almayer/shipboard/brig/surgery) -"ebD" = ( -/obj/structure/machinery/light/small{ - dir = 1 +/area/almayer/command/lifeboat) +"ebp" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/bed/chair/comfy/bravo{ + dir = 4 }, -/obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) +/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 + }, +/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_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" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/hull/lower/l_m_p) "eco" = ( /obj/structure/sign/safety/restrictedarea{ pixel_x = -17; @@ -28801,29 +24104,15 @@ "ecr" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/living/captain_mess) -"ecM" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"ecP" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"ecR" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/pipes/vents/pump{ - dir = 1 +"ecS" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "plate" }, -/area/almayer/hallways/vehiclehangar) +/area/almayer/maint/hull/lower/s_bow) "ecZ" = ( /obj/structure/ladder{ height = 1; @@ -28834,14 +24123,11 @@ }, /area/almayer/shipboard/navigation) "edn" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/obj/structure/sign/poster/ad{ - pixel_x = 30 +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliaison) +/area/almayer/hallways/lower/starboard_aft_hallway) "edo" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -28854,6 +24140,16 @@ icon_state = "sterile_green" }, /area/almayer/medical/medical_science) +"edG" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer{ + icon_state = "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" @@ -28891,18 +24187,6 @@ icon_state = "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 @@ -28927,12 +24211,44 @@ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) +"eeA" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) +"eeC" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "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{ dir = 4; icon_state = "red" }, /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" + }, +/area/almayer/hallways/lower/port_umbilical) "efC" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -28942,6 +24258,11 @@ icon_state = "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 @@ -28953,6 +24274,20 @@ icon_state = "plate" }, /area/almayer/squads/alpha) +"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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "efT" = ( /obj/structure/machinery/atm{ pixel_y = 32 @@ -28962,14 +24297,14 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"efU" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"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 @@ -28989,17 +24324,31 @@ icon_state = "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{ + dir = 8; + icon_state = "ai_silver" + }, +/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" @@ -29014,23 +24363,13 @@ icon_state = "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) -"egS" = ( -/obj/structure/closet, -/obj/item/clothing/ears/earmuffs, -/obj/item/clothing/glasses/regular/hipster, +"egD" = ( +/obj/structure/bed/stool, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "green" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/hallways/lower/port_midship_hallway) "ehc" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 1; @@ -29058,19 +24397,23 @@ }, /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{ + dir = 5; + icon_state = "red" + }, +/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" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 2; - pixel_y = 3 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "ehL" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/sign/safety/maint{ @@ -29089,6 +24432,14 @@ icon_state = "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; @@ -29131,6 +24482,20 @@ icon_state = "red" }, /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 @@ -29185,6 +24550,20 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "ejo" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -29198,12 +24577,6 @@ icon_state = "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 @@ -29213,56 +24586,48 @@ /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 - }, +"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) +/area/almayer/maint/hull/upper/u_m_s) "ejY" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) -"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) -"ekF" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, +"ekz" = ( +/obj/structure/girder/displaced, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) -"ekO" = ( -/obj/structure/machinery/cryopod{ - pixel_y = 6 +/area/almayer/maint/hull/upper/u_a_p) +"ekM" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/structure/sign/safety/cryo{ - pixel_x = -17 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) +"ekR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - icon_state = "cargo" + dir = 4; + icon_state = "orangecorner" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/hallways/lower/starboard_umbilical) "ekY" = ( /obj/structure/machinery/door/airlock/almayer/generic/glass{ name = "\improper Memorial Room" @@ -29274,6 +24639,16 @@ icon_state = "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{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/warden_office) "elf" = ( /obj/structure/sign/safety/hvac_old{ pixel_x = 8; @@ -29294,12 +24669,6 @@ "elx" = ( /turf/open/floor/almayer, /area/almayer/engineering/lower) -"elA" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "elE" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -29312,20 +24681,41 @@ icon_state = "dark_sterile" }, /area/almayer/medical/operating_room_one) -"elM" = ( -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "elR" = ( /turf/closed/wall/almayer/research/containment/wall/corner{ dir = 1 }, /area/almayer/medical/containment/cell) +"elV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/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 = "test_floor4" + }, +/area/almayer/shipboard/brig/execution_storage) +"elY" = ( +/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 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_umbilical) "eme" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -29334,6 +24724,14 @@ icon_state = "dark_sterile" }, /area/almayer/medical/upper_medical) +"eml" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_umbilical) "emn" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, @@ -29353,18 +24751,19 @@ /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{ @@ -29372,20 +24771,22 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"emL" = ( +/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/upper/midship_hallway) "ene" = ( /turf/open/floor/almayer{ dir = 4; icon_state = "silvercorner" }, /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/machinery/power/monitor{ name = "Main Power Grid Monitoring" @@ -29394,16 +24795,64 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"enx" = ( -/obj/structure/pipes/vents/pump, -/obj/structure/machinery/status_display{ - pixel_y = 30 +"enK" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor/plating/almayer{ + allow_construction = 0 }, +/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{ - dir = 1; - icon_state = "green" + icon_state = "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 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_m_s) +"eol" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/midship_hallway) +"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 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_midship_hallway) +"eoE" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/maint/hull/lower/l_f_s) "eoG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -29411,18 +24860,19 @@ /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{ + icon_state = "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 +/obj/item/tank/emergency_oxygen/double, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/hallways/lower/port_umbilical) "epu" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -29434,16 +24884,6 @@ icon_state = "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) "epJ" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -29453,6 +24893,15 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) +"epT" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) "eqb" = ( /obj/structure/surface/table/almayer, /obj/item/tool/stamp/denied{ @@ -29479,12 +24928,27 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"eqk" = ( -/mob/living/simple_animal/mouse/brown, +"eqd" = ( +/obj/item/stack/folding_barricade/three, +/obj/item/stack/folding_barricade/three, +/obj/structure/surface/rack, +/turf/open/floor/almayer{ + icon_state = "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 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/hull/lower/l_m_s) "eqB" = ( /obj/item/bedsheet/brown{ layer = 3.2 @@ -29547,6 +25011,12 @@ dir = 1 }, /area/almayer/medical/containment/cell/cl) +"ere" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "erh" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -29574,6 +25044,14 @@ /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/engineering/lower/engine_core) +"erE" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) "erF" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/toxin{ @@ -29594,40 +25072,64 @@ /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 }, -/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 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/structure/sign/safety/west{ - pixel_y = 32 +/area/almayer/maint/hull/lower/l_m_s) +"erN" = ( +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_plates" }, -/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 +/area/almayer/command/airoom) +"esd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_midship_hallway) +"esm" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = -32 + }, +/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 + }, +/obj/item/stack/sheet/cardboard/medium_stack{ + pixel_y = -6; + pixel_x = -7; + layer = 3.01 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer, +/area/almayer/squads/alpha_bravo_shared) "esC" = ( /obj/structure/toilet{ pixel_y = 13 @@ -29667,6 +25169,12 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/gym) +"esQ" = ( +/turf/open/floor/almayer{ + dir = 9; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) "esT" = ( /turf/open/floor/almayer/uscm/directional{ dir = 9 @@ -29713,6 +25221,12 @@ icon_state = "plating" }, /area/almayer/engineering/upper_engineering) +"ety" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "etE" = ( /obj/structure/prop/almayer/name_stencil, /turf/open/floor/almayer_hull{ @@ -29727,6 +25241,10 @@ icon_state = "plate" }, /area/almayer/shipboard/starboard_point_defense) +"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{ @@ -29741,6 +25259,18 @@ icon_state = "test_floor4" }, /area/almayer/living/officer_study) +"euL" = ( +/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/maint/hull/upper/u_f_s) "euN" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" @@ -29752,20 +25282,8 @@ 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; @@ -29812,12 +25330,15 @@ icon_state = "cargo" }, /area/almayer/engineering/upper_engineering/starboard) -"evl" = ( -/obj/structure/largecrate/random/barrel/yellow, +"evM" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 1; + icon_state = "green" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/upper/fore_hallway) "evR" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/mechanical/green{ @@ -29832,16 +25353,13 @@ /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 @@ -29882,28 +25400,30 @@ icon_state = "silvercorner" }, /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/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"exc" = ( +/obj/structure/machinery/light{ + dir = 4 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 4; + icon_state = "blue" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/lower/port_midship_hallway) "exi" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"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" @@ -29915,21 +25435,26 @@ icon_state = "tcomms" }, /area/almayer/engineering/upper_engineering/starboard) -"eyd" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - layer = 2.5 - }, +"exQ" = ( /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "greencorner" }, -/area/almayer/hull/upper_hull/u_f_p) +/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" }, /area/almayer/lifeboat_pumps/south2) +"eyM" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "eyQ" = ( /obj/structure/machinery/light{ dir = 1 @@ -29963,6 +25488,18 @@ icon_state = "green" }, /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 @@ -29996,6 +25533,28 @@ icon_state = "red" }, /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{ + dir = 8; + icon_state = "silver" + }, +/area/almayer/hallways/upper/fore_hallway) "eAC" = ( /obj/structure/machinery/light{ dir = 4 @@ -30013,6 +25572,15 @@ icon_state = "silver" }, /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{ + icon_state = "plate" + }, +/area/almayer/squads/req) "eAI" = ( /turf/open/floor/almayer{ dir = 8; @@ -30029,14 +25597,6 @@ "eAN" = ( /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"eAT" = ( -/obj/structure/machinery/door_control/cl/office/door{ - pixel_y = -20 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/aft_hallway) "eAU" = ( /obj/structure/bed/chair{ dir = 8 @@ -30070,27 +25630,30 @@ /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{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/starboard_hallway) -"eBC" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 + icon_state = "cargo" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_umbilical) +/area/almayer/shipboard/brig/starboard_hallway) "eBE" = ( /obj/structure/machinery/photocopier{ anchored = 0 }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) +"eBG" = ( +/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/maint/hull/lower/l_m_p) "eBO" = ( /obj/structure/bed, /turf/open/floor/almayer{ @@ -30175,6 +25738,12 @@ icon_state = "plating" }, /area/almayer/shipboard/brig/execution) +"eDe" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_m_s) "eDo" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -30185,6 +25754,12 @@ icon_state = "plating" }, /area/almayer/medical/upper_medical) +"eDq" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_s) "eDt" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras/almayer_network{ @@ -30201,30 +25776,6 @@ }, /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 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "eEc" = ( /obj/structure/machinery/light, /obj/effect/decal/warning_stripes{ @@ -30234,12 +25785,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"eEf" = ( -/obj/structure/sign/safety/bulkhead_door{ - pixel_x = -16 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "eEk" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -30261,6 +25806,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{ @@ -30278,17 +25829,6 @@ icon_state = "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" - }, -/area/almayer/hull/lower_hull/l_f_p) "eFG" = ( /obj/structure/machinery/light{ dir = 1 @@ -30300,9 +25840,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/chemistry) -"eFH" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) "eFK" = ( /obj/structure/bed{ icon_state = "abed" @@ -30379,72 +25916,26 @@ }, /turf/open/floor/carpet, /area/almayer/command/corporateliaison) -"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 - }, -/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/sign/safety/intercom{ - pixel_x = 14; - pixel_y = 32 - }, +"eGq" = ( +/obj/structure/largecrate/random/secure, /turf/open/floor/almayer{ dir = 4; - icon_state = "bluecorner" + icon_state = "green" }, -/area/almayer/hallways/aft_hallway) +/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) -"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 @@ -30467,15 +25958,6 @@ icon_state = "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) "eHx" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/faxmachine/uscm/command, @@ -30483,6 +25965,24 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) +"eHy" = ( +/obj/structure/machinery/conveyor{ + id = "lower_garbage" + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "plating_striped" + }, +/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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_f_s) "eHY" = ( /obj/structure/surface/rack, /obj/item/device/taperecorder, @@ -30490,35 +25990,59 @@ icon_state = "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" }, -/area/almayer/hull/upper_hull/u_a_s) -"eJg" = ( -/obj/structure/largecrate/random/barrel/red, +/area/almayer/maint/upper/u_f_s) +"eIN" = ( +/obj/item/tool/kitchen/utensil/pfork, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) -"eJh" = ( -/obj/structure/sign/safety/storage{ - pixel_x = -17 +/area/almayer/maint/hull/upper/p_stern) +"eIO" = ( +/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 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/lower/starboard_fore_hallway) +"eIY" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) +"eJg" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/hallways/upper/aft_hallway) "eJQ" = ( /obj/structure/prop/invuln{ desc = "An inflated membrane. This one is puncture proof. Wow!"; @@ -30532,27 +26056,15 @@ icon_state = "outerhull_dir" }, /area/almayer/command/lifeboat) +"eJU" = ( +/obj/structure/bed/chair, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/lifeboat_pumps/north1) "eJX" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/ce_room) -"eKa" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ - dir = 2; - name = "\improper Brig Lobby"; - closeOtherId = "briglobby" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/processing) -"eKg" = ( -/obj/structure/disposalpipe/segment{ - layer = 5.1; - name = "water pipe" - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "eKy" = ( /obj/structure/pipes/standard/simple/visible{ dir = 6 @@ -30564,12 +26076,6 @@ icon_state = "plate" }, /area/almayer/engineering/lower) -"eKD" = ( -/obj/structure/machinery/portable_atmospherics/canister/air, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/upper_hull/u_a_s) "eKH" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, @@ -30590,32 +26096,10 @@ /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{ + icon_state = "ai_floor3" }, /area/almayer/command/airoom) -"eKM" = ( -/obj/structure/surface/rack, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) -"eKO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "eKQ" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 @@ -30630,22 +26114,105 @@ icon_state = "green" }, /area/almayer/living/offices) -"eLz" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 +"eKZ" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper Port Viewing Room" }, /turf/open/floor/almayer{ - icon_state = "silver" + icon_state = "test_floor4" }, -/area/almayer/hallways/repair_bay) -"eMh" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper Laundry Room" +/area/almayer/maint/hull/upper/u_f_p) +"eLp" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, +/obj/structure/machinery/computer/supplycomp/vehicle, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/engineering/laundry) +/area/almayer/hallways/lower/vehiclehangar) +"eLu" = ( +/obj/structure/sign/safety/three{ + 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 = "emerald" + }, +/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 + }, +/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/maint/hull/lower/l_f_p) +"eLH" = ( +/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/maint/hull/lower/l_m_s) +"eLV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/aft_hallway) +"eLX" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) +"eMr" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"eMx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"eMI" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "blue" + }, +/area/almayer/hallways/lower/port_midship_hallway) "eMJ" = ( /obj/structure/machinery/light{ unacidable = 1; @@ -30672,29 +26239,16 @@ icon_state = "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) -"eNw" = ( -/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) -"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; @@ -30706,13 +26260,11 @@ }, /area/almayer/medical/containment) "eNL" = ( -/obj/structure/surface/table/almayer, -/obj/item/stack/sheet/cardboard{ - amount = 50; - pixel_x = 4 +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/lower/starboard_midship_hallway) "eNR" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -30720,18 +26272,14 @@ }, /turf/open/floor/plating, /area/almayer/shipboard/brig/processing) -"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" +"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; @@ -30752,26 +26300,19 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"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 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) -"ePA" = ( -/obj/structure/machinery/light{ - dir = 1 +"ePq" = ( +/obj/structure/pipes/vents/pump{ + dir = 4 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 8; + icon_state = "orange" }, -/area/almayer/hallways/starboard_hallway) +/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 @@ -30813,14 +26354,70 @@ icon_state = "cargo" }, /area/almayer/engineering/lower/workshop/hangar) -"eRe" = ( -/obj/structure/bed/chair/comfy/orange{ - dir = 8 +"eQj" = ( +/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{ + indestructible = 1; + unacidable = 1; + unslashable = 1 + }, +/obj/structure/machinery/door_control{ + id = "ARES Emergency"; + name = "ARES Emergency Lockdown"; + pixel_x = 10; + pixel_y = -24; + req_one_access_txt = "91;92" + }, +/obj/structure/machinery/computer/cameras/almayer{ + dir = 4; + pixel_y = 12 + }, +/obj/structure/machinery/computer/cameras/almayer/ares{ + dir = 4; + pixel_y = -1 + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"eQm" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/maint/hull/upper/p_bow) +"eQz" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/s_bow) "eRi" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/folder/black{ @@ -30861,9 +26458,22 @@ icon_state = "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{ + dir = 4; + icon_state = "silver" + }, +/area/almayer/hallways/upper/midship_hallway) "eRR" = ( /obj/item/clothing/head/helmet/marine{ pixel_x = 16; @@ -30904,6 +26514,12 @@ icon_state = "sterile_green_side" }, /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" @@ -30912,6 +26528,9 @@ icon_state = "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{ @@ -30922,15 +26541,53 @@ /obj/effect/landmark/crap_item, /turf/open/floor/almayer, /area/almayer/living/briefing) -"eTO" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 +"eTm" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 }, /turf/open/floor/almayer{ - dir = 10; - icon_state = "red" + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) +"eTx" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/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{ + dir = 1; + icon_state = "sterile_green_side" + }, +/area/almayer/medical/lockerroom) +"eTD" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) +"eUe" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) +"eUf" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "eUh" = ( /obj/structure/window/reinforced{ dir = 8 @@ -30957,17 +26614,6 @@ icon_state = "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"; @@ -31058,6 +26704,19 @@ icon_state = "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{ + dir = 4; + icon_state = "silver" + }, +/area/almayer/hallways/upper/midship_hallway) "eWp" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/bed/chair/comfy/charlie{ @@ -31067,6 +26726,20 @@ icon_state = "emeraldfull" }, /area/almayer/living/briefing) +"eWs" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/lower/l_f_s) +"eWv" = ( +/turf/open/floor/almayer{ + icon_state = "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 @@ -31075,13 +26748,6 @@ icon_state = "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 @@ -31095,18 +26761,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"eXk" = ( -/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) -"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) @@ -31114,17 +26768,31 @@ /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/living/offices) -"eXS" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +"eXy" = ( +/obj/effect/step_trigger/teleporter_vector{ + name = "Almayer_AresDown"; + vector_x = 96; + vector_y = -65 + }, +/obj/structure/machinery/light{ dir = 1 }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 2; - pixel_y = 2 +/obj/structure/stairs{ + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer/aicore/no_build, +/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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "eYj" = ( /obj/structure/machinery/light{ dir = 8 @@ -31140,6 +26808,15 @@ /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" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_m_s) "eYr" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -31167,18 +26844,6 @@ icon_state = "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) "eYD" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -31196,15 +26861,6 @@ icon_state = "emeraldfull" }, /area/almayer/living/briefing) -"eYH" = ( -/obj/structure/platform{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "eYM" = ( /obj/structure/desertdam/decals/road_edge{ pixel_x = 2; @@ -31233,16 +26889,9 @@ icon_state = "orangecorner" }, /area/almayer/engineering/upper_engineering/port) -"eZi" = ( -/obj/effect/projector{ - name = "Almayer_Up4"; - vector_x = -19; - vector_y = 104 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) +"eZm" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/upper/p_stern) "eZo" = ( /obj/structure/disposalpipe/segment{ dir = 8 @@ -31270,33 +26919,26 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"eZz" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 - }, +"eZC" = ( /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) +/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" +"eZR" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_a_p) -"fad" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "green" +/obj/structure/disposalpipe/junction{ + dir = 8 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) "fag" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -31304,14 +26946,16 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/execution) -"fau" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/disposalpipe/junction{ +"far" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ dir = 4; - icon_state = "pipe-j2" + icon_state = "orangecorner" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/port_aft_hallway) "faE" = ( /obj/structure/bookcase{ icon_state = "book-5"; @@ -31335,6 +26979,18 @@ /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; @@ -31367,6 +27023,15 @@ icon_state = "plate" }, /area/almayer/squads/alpha) +"fbe" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_s) "fbo" = ( /obj/structure/machinery/door_control{ id = "kitchen2"; @@ -31377,6 +27042,17 @@ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) +"fbr" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ + closeOtherId = "briglobby"; + dir = 2; + name = "\improper Brig Lobby" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/processing) "fbu" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -31400,24 +27076,19 @@ icon_state = "sterile_green_side" }, /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" }, /area/almayer/medical/upper_medical) -"fbH" = ( -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/item/fuelCell, +"fbC" = ( +/obj/structure/closet/toolcloset, /turf/open/floor/almayer{ - icon_state = "cargo" + dir = 6; + icon_state = "orange" }, -/area/almayer/engineering/lower/engine_core) +/area/almayer/maint/hull/lower/l_m_s) "fbR" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -31431,12 +27102,47 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) +"fbU" = ( +/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/lower/vehiclehangar) +"fbV" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/lifeboat_pumps/north2) +"fca" = ( +/obj/structure/disposalpipe/segment{ + layer = 5.1; + name = "water pipe" + }, +/turf/open/floor/plating, +/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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) "fcy" = ( /obj/structure/machinery/light{ dir = 8 @@ -31458,18 +27164,6 @@ icon_state = "bluecorner" }, /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) "fcM" = ( /obj/structure/machinery/camera/autoname/almayer{ name = "ship-grade camera" @@ -31493,26 +27187,6 @@ icon_state = "orange" }, /area/almayer/engineering/lower) -"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" - }, -/area/almayer/hull/upper_hull/u_m_p) "fdx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -31522,13 +27196,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"fdA" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) "fdE" = ( /obj/item/clothing/mask/rebreather/scarf, /obj/structure/closet/secure_closet/personal/cabinet{ @@ -31550,9 +27217,31 @@ icon_state = "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{ + icon_state = "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 @@ -31575,6 +27264,10 @@ icon_state = "silver" }, /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, @@ -31603,11 +27296,51 @@ /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/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/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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "ffE" = ( /turf/open/floor/almayer/no_build{ icon_state = "plating" }, /area/almayer/command/airoom) +"ffN" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/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 @@ -31634,16 +27367,15 @@ icon_state = "green" }, /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{ + dir = 9; + icon_state = "sterile_green_side" + }, +/area/almayer/shipboard/brig/medical) "fgE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -31682,41 +27414,51 @@ }, /turf/open/floor/plating, /area/almayer/shipboard/brig/cells) +"fgU" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/turf/open/floor/almayer{ + icon_state = "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" }, /area/almayer/engineering/upper_engineering/starboard) +"fhR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/closed/wall/almayer/aicore/hull, +/area/almayer/command/airoom) +"fic" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "fie" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "orange" }, /area/almayer/engineering/lower/workshop) -"fiq" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_m_p) +"fix" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "fiE" = ( /obj/structure/machinery/computer/cameras/containment/hidden{ dir = 4; @@ -31727,15 +27469,6 @@ /obj/item/device/camera_film, /turf/open/floor/almayer, /area/almayer/command/corporateliaison) -"fiI" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/stern) "fiQ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -31744,52 +27477,97 @@ icon_state = "plate" }, /area/almayer/engineering/lower) -"fjO" = ( -/obj/item/tool/wet_sign, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"fkO" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, +"fje" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/machinery/light/small, /turf/open/floor/almayer{ - dir = 1; - icon_state = "green" + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_p) +"fjo" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/north2) +"fjz" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/area/almayer/hallways/port_hallway) -"fkW" = ( +/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" + dir = 8; + icon_state = "blue" + }, +/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{ + icon_state = "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{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/maint/hull/lower/p_bow) +"flD" = ( +/obj/structure/largecrate/supply/supplies/water, +/turf/open/floor/almayer{ + icon_state = "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 + }, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/stairs{ + dir = 1; + icon_state = "ramptop" + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "flW" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/light{ @@ -31801,6 +27579,18 @@ icon_state = "silver" }, /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{ + dir = 1; + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/port_fore_hallway) "fmv" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -31810,9 +27600,7 @@ 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{ @@ -31822,12 +27610,24 @@ icon_state = "bluecorner" }, /area/almayer/living/pilotbunks) -"fmS" = ( -/obj/structure/closet/secure_closet/engineering_electrical, +"fmZ" = ( /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "orange" + }, +/area/almayer/hallways/lower/starboard_umbilical) +"fnc" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "green" }, -/area/almayer/hull/lower_hull/l_f_s) +/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 @@ -31861,15 +27661,6 @@ icon_state = "redfull" }, /area/almayer/medical/upper_medical) -"fnC" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "fnH" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -31881,15 +27672,6 @@ icon_state = "test_floor4" }, /area/almayer/squads/req) -"fnZ" = ( -/obj/structure/machinery/portable_atmospherics/canister/air, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/upper_hull/u_a_s) "foC" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ @@ -31936,19 +27718,26 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/medical_science) -"foR" = ( -/obj/structure/largecrate/random/case, +"foS" = ( +/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/upper_hull/u_m_p) -"fpd" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 +/area/almayer/maint/hull/lower/l_a_p) +"fpi" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/hull/lower/stern) "fpA" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -31961,10 +27750,21 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"fpO" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +"fpI" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "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, @@ -31992,6 +27792,21 @@ icon_state = "orange" }, /area/almayer/hallways/hangar) +"fqb" = ( +/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 + }, +/obj/effect/spawner/random/balaclavas, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "fqc" = ( /obj/structure/machinery/vending/cigarette, /obj/structure/machinery/light, @@ -31999,27 +27814,38 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) -"fqu" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"fqx" = ( -/obj/structure/machinery/light, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 +"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{ + allow_construction = 0 }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/hallways/lower/port_midship_hallway) "fqC" = ( /obj/structure/machinery/vending/cigarette, /turf/open/floor/almayer{ icon_state = "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" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/panic) "fqO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -32027,6 +27853,26 @@ /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{ + dir = 8; + icon_state = "red" + }, +/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{ @@ -32067,6 +27913,42 @@ icon_state = "sterile_green_side" }, /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{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/warden_office) "frz" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ name = "\improper Exterior Airlock"; @@ -32093,43 +27975,24 @@ 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) -"frX" = ( -/obj/structure/machinery/optable, -/obj/structure/sign/safety/medical{ - pixel_x = 8; - pixel_y = 29 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, -/area/almayer/shipboard/brig/surgery) -"frY" = ( -/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) -"fsd" = ( +"fsf" = ( /obj/effect/decal/warning_stripes{ - icon_state = "S" + icon_state = "N"; + pixel_y = 1 }, +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "orangecorner" + }, +/area/almayer/hallways/lower/port_umbilical) +"fsh" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" }, -/area/almayer/hallways/vehiclehangar) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "fsp" = ( /obj/structure/barricade/handrail{ dir = 1; @@ -32140,15 +28003,6 @@ icon_state = "plate" }, /area/almayer/living/gym) -"fsH" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "fsR" = ( /obj/structure/pipes/vents/pump{ dir = 8; @@ -32171,45 +28025,12 @@ icon_state = "plating_striped" }, /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" }, /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) "fuS" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -32230,20 +28051,22 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) -"fuY" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +"fuU" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" }, -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice2"; - pixel_x = 16; - pixel_y = 16 +/area/almayer/hallways/lower/port_umbilical) +"fuY" = ( +/obj/structure/bed/chair/bolted{ + dir = 1 }, -/obj/structure/largecrate/supply/supplies/flares, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "red" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/shipboard/brig/interrogation) "fva" = ( /obj/structure/machinery/light{ dir = 1 @@ -32272,18 +28095,23 @@ icon_state = "silver" }, /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 + }, +/obj/structure/machinery/light/small{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/maint/hull/upper/u_a_p) "fvA" = ( /obj/structure/closet/secure_closet/brig, /turf/open/floor/almayer, @@ -32294,20 +28122,6 @@ icon_state = "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 @@ -32318,6 +28132,19 @@ }, /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; @@ -32328,6 +28155,9 @@ icon_state = "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, @@ -32345,19 +28175,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie_delta_shared) -"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"; @@ -32379,15 +28196,6 @@ /obj/item/weapon/shield/riot, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/armory) -"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) "fxZ" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -32409,14 +28217,6 @@ icon_state = "plate" }, /area/almayer/shipboard/weapon_room) -"fyd" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 1" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower/engine_core) "fyp" = ( /obj/structure/machinery/cryopod{ layer = 3.1; @@ -32434,9 +28234,35 @@ }, /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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/mess) +"fzc" = ( +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "fzq" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -32449,6 +28275,32 @@ icon_state = "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{ + icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "fzP" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, @@ -32465,11 +28317,16 @@ }, /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{ + icon_state = "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 }, @@ -32488,67 +28345,20 @@ /obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m39_submachinegun, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/armory) -"fAt" = ( -/obj/structure/largecrate/guns/merc{ - name = "\improper dodgy crate" - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"fAE" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/shipboard/brig/main_office) -"fAS" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, +"fBi" = ( /turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "redcorner" }, -/area/almayer/hull/lower_hull/l_m_s) -"fBd" = ( +/area/almayer/hallways/lower/starboard_midship_hallway) +"fBo" = ( /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/hull/lower_hull/stern) -"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 + dir = 4 }, /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" + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/hull/lower/l_a_s) "fBO" = ( /obj/structure/machinery/chem_master{ vial_maker = 1 @@ -32561,18 +28371,67 @@ icon_state = "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{ + icon_state = "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) +"fCG" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, +/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 + }, +/obj/structure/pipes/standard/simple/hidden/supply/no_boom{ + dir = 4 + }, +/turf/open/floor/almayer/no_build{ + icon_state = "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{ + icon_state = "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"; @@ -32660,27 +28519,18 @@ icon_state = "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" }, /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 @@ -32731,6 +28581,23 @@ icon_state = "plate" }, /area/almayer/medical/morgue) +"fFQ" = ( +/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/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{ @@ -32741,10 +28608,26 @@ icon_state = "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{ + icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "fGu" = ( /obj/structure/machinery/door_control{ dir = 1; @@ -32771,34 +28654,16 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"fGY" = ( -/obj/structure/machinery/door_control{ - id = "panicroomback"; - name = "\improper Safe Room"; - pixel_x = 25; - req_one_access_txt = "3" - }, +"fGB" = ( +/obj/structure/largecrate/random/case/small, /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) +/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; @@ -32821,25 +28686,10 @@ icon_state = "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) -"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) -"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, @@ -32849,7 +28699,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/almayer{ access_modified = 1; name = "\improper Requisitions Auxiliary Storage Room"; - req_one_access = "19;21" + req_one_access_txt = "19;21" }, /turf/open/floor/almayer{ icon_state = "plate" @@ -32877,6 +28727,25 @@ icon_state = "plate" }, /area/almayer/command/cichallway) +"fJp" = ( +/obj/structure/girder, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) +"fJt" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/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{ @@ -32911,32 +28780,11 @@ icon_state = "green" }, /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/glowing/no_build, /area/almayer/command/airoom) "fKh" = ( /obj/structure/window/framed/almayer, @@ -32952,17 +28800,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/chief_mp_office) -"fKl" = ( -/obj/structure/surface/rack, -/obj/item/tool/shovel/etool{ - pixel_x = 6 - }, -/obj/item/tool/shovel/etool, -/obj/item/tool/wirecutters, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) "fKt" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/structure/prop/dam/crane{ @@ -33027,6 +28864,13 @@ icon_state = "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{ @@ -33037,6 +28881,26 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) +"fLi" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "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, +/area/almayer/maint/hull/upper/u_f_s) "fLu" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 @@ -33080,19 +28944,6 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) -"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/no_build{ - dir = 4; - icon_state = "silver" - }, -/area/almayer/command/airoom) "fMt" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "ARES Interior"; @@ -33100,7 +28951,7 @@ plane = -7 }, /obj/effect/step_trigger/ares_alert/core, -/obj/structure/machinery/door/poddoor/almayer/blended/white/open{ +/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open{ closed_layer = 3.2; id = "ARES Emergency"; layer = 3.2; @@ -33121,23 +28972,34 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "fNi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -33153,13 +29015,20 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"fNC" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/disposalpipe/junction{ - dir = 8 +"fNH" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "cargo_arrow" }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/starboard_midship_hallway) +"fNX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/almayer/hallways/upper/fore_hallway) "fOk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -33191,6 +29060,15 @@ 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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_s) "fOL" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" @@ -33256,10 +29134,19 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "fQn" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -33281,15 +29168,24 @@ }, /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{ + icon_state = "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{ + icon_state = "ai_floor3" + }, +/area/almayer/command/airoom) "fQS" = ( /obj/structure/bed/chair/comfy/orange, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -33300,20 +29196,16 @@ }, /turf/open/floor/carpet, /area/almayer/command/corporateliaison) -"fQY" = ( -/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 +"fRg" = ( +/obj/structure/closet/emcloset, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "cargo" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/maint/hull/upper/u_f_s) "fRr" = ( /obj/structure/machinery/light{ dir = 1 @@ -33329,13 +29221,13 @@ }, /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{ @@ -33361,6 +29253,16 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north1) +"fSx" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/fore_hallway) "fSF" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight, @@ -33370,20 +29272,6 @@ icon_state = "orange" }, /area/almayer/engineering/lower) -"fSK" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/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/hull/upper_hull/u_a_p) "fTj" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -33395,6 +29283,9 @@ icon_state = "red" }, /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, @@ -33406,24 +29297,6 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/processing) -"fTu" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/hull/lower_hull/l_f_p) -"fTx" = ( -/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) "fTF" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; @@ -33433,25 +29306,17 @@ 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{ - dir = 1 +"fUz" = ( +/obj/structure/surface/rack, +/obj/item/storage/box/cups{ + pixel_x = 4; + pixel_y = 9 }, +/obj/item/storage/box/cups, /turf/open/floor/almayer{ - dir = 4; - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/maint/hull/lower/s_bow) "fUA" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/living/briefing) @@ -33470,6 +29335,28 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"fUZ" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_a_s) "fVo" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -33477,6 +29364,12 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop) +"fVx" = ( +/turf/open/floor/almayer/aicore/glowing/no_build{ + icon_state = "ai_floor3"; + light_range = 4 + }, +/area/almayer/command/airoom) "fVz" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -33506,6 +29399,14 @@ icon_state = "dark_sterile" }, /area/almayer/medical/chemistry) +"fWg" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/p_bow) "fWi" = ( /obj/structure/toilet{ dir = 1 @@ -33518,14 +29419,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) -"fXd" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) "fXg" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -33548,11 +29441,6 @@ icon_state = "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) "fXE" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ @@ -33571,6 +29459,12 @@ /obj/effect/landmark/late_join/delta, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) +"fXO" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/north2) "fXP" = ( /obj/structure/machinery/camera/autoname/almayer{ name = "ship-grade camera" @@ -33593,18 +29487,6 @@ icon_state = "sterile_green_side" }, /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 @@ -33612,15 +29494,17 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/cichallway) -"fYN" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 +"fYr" = ( +/obj/structure/surface/rack, +/obj/item/device/radio{ + pixel_x = 5; + pixel_y = 4 }, +/obj/item/device/radio, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/stern) +/area/almayer/maint/hull/upper/u_f_s) "fYZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -33651,18 +29535,15 @@ /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 - }, -/obj/structure/sign/safety/restrictedarea{ - pixel_y = 32 +"fZy" = ( +/obj/structure/sign/poster{ + pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "fZA" = ( /obj/structure/pipes/standard/simple/visible{ dir = 9 @@ -33676,12 +29557,9 @@ icon_state = "orangecorner" }, /area/almayer/engineering/lower) -"fZF" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) +"fZE" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "fZG" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -33690,6 +29568,22 @@ icon_state = "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{ + icon_state = "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"; @@ -33713,30 +29607,9 @@ icon_state = "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) -"gax" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "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{ @@ -33765,9 +29638,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{ @@ -33791,8 +29662,14 @@ 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{ + icon_state = "ai_floor3" + }, +/area/almayer/command/airoom) +"gbm" = ( +/turf/open/floor/almayer/aicore/no_build{ + dir = 4; + icon_state = "ai_silver" }, /area/almayer/command/airoom) "gbs" = ( @@ -33813,26 +29690,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"gbO" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/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/upper_hull/u_f_p) -"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) "gcm" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -33843,19 +29700,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"gcq" = ( -/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 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/upper/starboard) "gcN" = ( /obj/structure/machinery/door/airlock/almayer/command{ access_modified = 1; @@ -33867,21 +29711,6 @@ icon_state = "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; @@ -33892,11 +29721,6 @@ icon_state = "silver" }, /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) "gdp" = ( /obj/structure/bed/chair{ dir = 4 @@ -33906,15 +29730,16 @@ icon_state = "red" }, /area/almayer/hallways/hangar) -"gds" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"gdG" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "silvercorner" + dir = 5; + icon_state = "red" }, -/area/almayer/hallways/repair_bay) +/area/almayer/shipboard/brig/mp_bunks) "gdJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -33941,6 +29766,21 @@ icon_state = "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{ + icon_state = "mono" + }, +/area/almayer/medical/medical_science) "gek" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/fancy/cigarettes/wypacket, @@ -33951,6 +29791,20 @@ "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_p) "ger" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/wy{ @@ -33970,21 +29824,30 @@ icon_state = "dark_sterile" }, /area/almayer/medical/medical_science) -"geH" = ( -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" +"geu" = ( +/obj/structure/machinery/light, +/obj/effect/projector{ + name = "Almayer_Up4"; + vector_x = -19; + vector_y = 104 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) +"gfd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/power/apc/almayer, +/obj/structure/sign/safety/rewire{ + pixel_y = -38 }, -/area/almayer/hallways/stern_hallway) -"gfk" = ( -/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "red" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/shipboard/brig/starboard_hallway) "gfo" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 1; @@ -33998,12 +29861,6 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"gfs" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/stern) "gfu" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -34013,13 +29870,7 @@ 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) "gfG" = ( /obj/structure/disposalpipe/segment, @@ -34038,12 +29889,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"gfS" = ( -/obj/structure/sign/safety/cryo{ - pixel_y = -26 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "gfW" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/lockerroom) @@ -34062,6 +29907,14 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) +"ggo" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "ggt" = ( /turf/open/floor/almayer{ dir = 5; @@ -34074,6 +29927,10 @@ icon_state = "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; @@ -34091,25 +29948,42 @@ /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{ + icon_state = "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{ + icon_state = "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/power/fusion_engine{ - name = "\improper S-52 fusion reactor 14" +/area/almayer/hallways/lower/vehiclehangar) +"gii" = ( +/obj/structure/bed/chair/bolted{ + dir = 8 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 1; + icon_state = "red" }, -/area/almayer/engineering/lower/engine_core) +/area/almayer/shipboard/brig/interrogation) "gio" = ( /obj/structure/closet/emcloset, /obj/structure/sign/safety/restrictedarea{ @@ -34131,15 +30005,12 @@ icon_state = "orange" }, /area/almayer/squads/bravo) -"giB" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, +"giD" = ( +/obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/upper/u_f_p) "giR" = ( /obj/structure/machinery/status_display{ pixel_y = -30 @@ -34153,6 +30024,38 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"giW" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "orange" + }, +/area/almayer/hallways/upper/midship_hallway) +"gjg" = ( +/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/lower/port_midship_hallway) +"gji" = ( +/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/upper/fore_hallway) "gjm" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -34165,10 +30068,6 @@ icon_state = "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 @@ -34191,34 +30090,15 @@ }, /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{ @@ -34237,22 +30117,20 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/lower_medical_medbay) -"gjN" = ( -/obj/effect/landmark/yautja_teleport, +"gkr" = ( /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_a_s) -"gka" = ( -/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, +/area/almayer/maint/hull/upper/s_bow) +"gkE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/open/floor/almayer{ - icon_state = "redfull" + icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) -"gks" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/upper/mess) "gkK" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/surface/table/reinforced/almayer_B, @@ -34269,17 +30147,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, @@ -34302,6 +30169,17 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) +"glG" = ( +/obj/structure/surface/rack, +/obj/item/storage/box/gloves{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/masks, +/turf/open/floor/almayer{ + icon_state = "sterile_green_side" + }, +/area/almayer/shipboard/brig/medical) "glH" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ dir = 2; @@ -34315,15 +30193,13 @@ icon_state = "test_floor4" }, /area/almayer/engineering/lower/workshop) -"glM" = ( -/obj/structure/window/reinforced{ - dir = 8; - health = 80 - }, +"glP" = ( +/obj/structure/janitorialcart, +/obj/item/tool/mop, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/shipboard/brig/execution_storage) "gmb" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 @@ -34362,15 +30238,34 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"gob" = ( -/obj/structure/closet/fireaxecabinet{ - pixel_y = 32 +"gnB" = ( +/obj/structure/platform_decoration{ + dir = 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, +/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{ - dir = 1; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/maint/hull/lower/l_f_p) +"gof" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) "goj" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 2; @@ -34392,6 +30287,19 @@ icon_state = "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{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_midship_hallway) "goy" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ @@ -34416,6 +30324,17 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"goM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "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{ @@ -34426,15 +30345,23 @@ icon_state = "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" }, /area/almayer/hallways/hangar) +"gpp" = ( +/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/upper/fore_hallway) "gpI" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -34443,25 +30370,74 @@ icon_state = "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{ + dir = 1; + icon_state = "blue" + }, +/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" +"gqt" = ( +/obj/structure/sign/safety/storage{ + pixel_x = -17 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_s) +"gqx" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/obj/structure/largecrate/random, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) -"gqK" = ( -/obj/structure/machinery/light/small{ +/area/almayer/maint/upper/u_a_s) +"gqz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/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{ + dir = 10; + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) +"gqI" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/hallways/upper/midship_hallway) "gqP" = ( /obj/structure/largecrate/random/case, /obj/structure/machinery/camera/autoname/almayer{ @@ -34472,10 +30448,40 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) -"grF" = ( -/obj/structure/pipes/vents/scrubber, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) +"gqQ" = ( +/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 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"grd" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) +"gre" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "greencorner" + }, +/area/almayer/hallways/upper/fore_hallway) +"grv" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + layer = 2.5; + pixel_y = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) "grG" = ( /obj/structure/sign/safety/restrictedarea{ pixel_x = -17 @@ -34491,6 +30497,22 @@ icon_state = "orangecorner" }, /area/almayer/living/briefing) +"grT" = ( +/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/maint/lower/constr) "gsd" = ( /obj/structure/surface/table/almayer, /obj/item/tool/hand_labeler{ @@ -34547,6 +30569,28 @@ /obj/effect/landmark/late_join, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/cryo_cells) +"gsp" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "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 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/p_bow) "gsC" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ @@ -34554,23 +30598,12 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"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 - }, +"gsJ" = ( /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 6; + icon_state = "blue" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/upper/midship_hallway) "gsM" = ( /obj/structure/machinery/portable_atmospherics/powered/pump, /turf/open/floor/almayer{ @@ -34589,6 +30622,16 @@ }, /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{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "gtp" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/structure/disposalpipe/junction{ @@ -34600,6 +30643,30 @@ icon_state = "silvercorner" }, /area/almayer/command/cichallway) +"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 = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) +"gtI" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_s) +"gtQ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) "gtU" = ( /obj/structure/machinery/power/apc/almayer{ dir = 8 @@ -34613,14 +30680,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/perma) -"guc" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "guo" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out"; @@ -34630,6 +30689,20 @@ icon_state = "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{ + dir = 8; + icon_state = "orangecorner" + }, +/area/almayer/maint/upper/u_a_s) "guS" = ( /obj/structure/reagent_dispensers/fueltank/custom, /turf/open/floor/almayer{ @@ -34664,24 +30737,16 @@ icon_state = "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 +"gvu" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/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{ @@ -34692,12 +30757,15 @@ icon_state = "green" }, /area/almayer/squads/req) -"gvW" = ( -/obj/structure/closet/firecloset, +"gwh" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, /turf/open/floor/almayer{ - icon_state = "cargo" + dir = 1; + icon_state = "blue" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/upper/fore_hallway) "gwj" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -34706,20 +30774,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"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 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "gwn" = ( /obj/structure/machinery/ares/processor/bioscan, /turf/open/floor/almayer/no_build{ @@ -34741,24 +30795,6 @@ icon_state = "plate" }, /area/almayer/living/gym) -"gwD" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/firstaid/regular, -/obj/item/clipboard, -/obj/item/tool/pen, -/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{ @@ -34791,18 +30827,6 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/carpet, /area/almayer/command/cichallway) -"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, @@ -34819,32 +30843,39 @@ }, /area/almayer/shipboard/starboard_point_defense) "gxk" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +/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 }, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/maint/upper/u_m_s) +"gxm" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/upper/stairs) "gxn" = ( /turf/open/floor/almayer{ dir = 8; icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"gxr" = ( -/obj/structure/largecrate/random/barrel/green, -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = 32 +"gxt" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + name = "\improper Warden's Office" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 8 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_m_s) +/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; @@ -34864,50 +30895,54 @@ /obj/structure/surface/table/almayer, /obj/item/toy/deck, /turf/open/floor/almayer{ - dir = 10; + dir = 8; icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"gyt" = ( -/obj/item/storage/firstaid/regular, -/obj/structure/surface/rack, +"gyh" = ( +/obj/structure/machinery/cm_vending/gear/executive_officer{ + density = 0; + pixel_y = 30 + }, +/obj/structure/machinery/power/apc/almayer{ + dir = 4 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) +/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 +"gyw" = ( +/turf/open/floor/almayer{ + icon_state = "plate" }, +/area/almayer/hallways/lower/port_aft_hallway) +"gyE" = ( /turf/open/floor/almayer{ - dir = 4; + dir = 1; 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" +/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..."; @@ -34987,6 +31022,23 @@ }, /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{ + allow_construction = 0 + }, +/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; @@ -34996,24 +31048,6 @@ icon_state = "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 @@ -35033,12 +31067,6 @@ }, /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{ @@ -35053,6 +31081,25 @@ "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{ + icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/living/port_emb) "gAS" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -35074,18 +31121,34 @@ icon_state = "plate" }, /area/almayer/squads/bravo) +"gBd" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/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) -"gBM" = ( -/obj/structure/machinery/light/small{ +"gBs" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer{ + icon_state = "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/plating_catwalk, -/area/almayer/hull/lower_hull/stern) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "gBW" = ( /obj/structure/machinery/floodlight/landing{ name = "bolted floodlight" @@ -35094,27 +31157,21 @@ icon_state = "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" }, /area/almayer/lifeboat_pumps/south1) -"gCl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"gCu" = ( +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice12"; + pixel_y = 16 }, -/obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hallways/vehiclehangar) +/area/almayer/maint/hull/lower/l_a_s) "gCw" = ( /obj/item/reagent_container/food/drinks/cans/beer{ pixel_x = 10 @@ -35142,6 +31199,27 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) +"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 + }, +/turf/open/floor/almayer/no_build{ + icon_state = "test_floor4" + }, +/area/almayer/command/airoom) +"gDk" = ( +/obj/structure/sign/safety/stairs{ + pixel_x = -15 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) "gDp" = ( /obj/structure/machinery/light{ dir = 4 @@ -35171,14 +31249,6 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower/engine_core) -"gDP" = ( -/obj/structure/closet/crate, -/obj/item/ammo_box/magazine/l42a, -/obj/item/ammo_box/magazine/l42a, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "gDW" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -35191,10 +31261,19 @@ icon_state = "sterile_green_side" }, /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{ @@ -35233,20 +31312,6 @@ icon_state = "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" - }, -/area/almayer/hull/lower_hull/l_m_p) "gFP" = ( /turf/closed/wall/almayer/outer, /area/almayer/shipboard/stern_point_defense) @@ -35257,30 +31322,22 @@ icon_state = "cargo" }, /area/almayer/living/commandbunks) -"gGf" = ( -/obj/structure/machinery/light{ +"gGb" = ( +/obj/structure/platform{ dir = 1 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/squads/delta) -"gGp" = ( -/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/maint/hull/upper/u_a_p) +"gGf" = ( +/obj/structure/machinery/light{ + dir = 1 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/command/combat_correspondent) +/area/almayer/squads/delta) "gGr" = ( /obj/structure/machinery/vending/cigarette, /turf/open/floor/almayer{ @@ -35308,8 +31365,16 @@ layer = 2.1; name = "lattice" }, -/turf/open/floor/plating, -/area/almayer/hallways/hangar) +/turf/open/floor/plating, +/area/almayer/hallways/hangar) +"gGw" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/vehiclehangar) "gGx" = ( /obj/structure/filingcabinet/chestdrawer{ density = 0; @@ -35340,12 +31405,6 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) -"gHg" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "gHh" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -35353,6 +31412,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/upper/port) +"gHi" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/maint/hull/lower/l_m_s) "gHj" = ( /obj/structure/machinery/light, /obj/structure/closet/secure_closet/fridge/groceries/stock, @@ -35396,6 +31461,27 @@ icon_state = "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{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "gII" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -35407,13 +31493,12 @@ icon_state = "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) +/area/almayer/shipboard/brig/interrogation) "gIU" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/tapes{ @@ -35432,16 +31517,56 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/evidence_storage) -"gJd" = ( -/obj/structure/disposalpipe/segment{ +"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{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) +"gJp" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails{ dir = 4 }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/lower/repair_bay) +"gJC" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" + }, +/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" + }, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/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{ @@ -35471,6 +31596,25 @@ icon_state = "red" }, /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{ + icon_state = "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{ @@ -35490,15 +31634,11 @@ icon_state = "redfull" }, /area/almayer/shipboard/port_missiles) -"gKJ" = ( -/obj/structure/machinery/vending/cola{ - density = 0; - pixel_y = 18 - }, +"gKK" = ( /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "silvercorner" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/lower/repair_bay) "gKR" = ( /obj/structure/closet/emcloset, /obj/structure/machinery/light{ @@ -35509,12 +31649,6 @@ icon_state = "sterile_green_side" }, /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, @@ -35538,6 +31672,15 @@ }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "gLz" = ( /obj/structure/machinery/cryopod{ layer = 3.1; @@ -35603,18 +31746,6 @@ icon_state = "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) "gMd" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, @@ -35624,20 +31755,13 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"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" +"gMk" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/sign/safety/maint{ + pixel_x = -17 }, -/area/almayer/hull/upper_hull/u_m_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "gMN" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -35667,10 +31791,20 @@ 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) +"gMS" = ( +/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/lower/port_umbilical) "gMU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -35679,6 +31813,18 @@ dir = 4 }, /area/almayer/living/briefing) +"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{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_p) "gNp" = ( /turf/open/floor/almayer{ dir = 9; @@ -35696,27 +31842,27 @@ icon_state = "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) -"gNG" = ( -/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" +"gNy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, /turf/open/floor/almayer{ - icon_state = "cargo" + dir = 5; + icon_state = "plating" }, -/area/almayer/engineering/lower/engine_core) +/area/almayer/hallways/lower/vehiclehangar) +"gNI" = ( +/turf/open/floor/almayer{ + icon_state = "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 @@ -35726,33 +31872,31 @@ icon_state = "orange" }, /area/almayer/engineering/lower) -"gOs" = ( +"gNZ" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/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{ + dir = 8; + icon_state = "green" }, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" +/area/almayer/hallways/upper/fore_hallway) +"gOk" = ( +/obj/structure/largecrate/guns/merc{ + name = "\improper dodgy crate" }, -/area/almayer/command/airoom) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "gOC" = ( /obj/structure/machinery/recharge_station, /turf/open/floor/almayer{ @@ -35767,6 +31911,12 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) +"gOS" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "emerald" + }, +/area/almayer/hallways/lower/port_midship_hallway) "gPc" = ( /obj/structure/machinery/power/terminal{ dir = 1 @@ -35776,30 +31926,35 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"gPr" = ( -/obj/effect/step_trigger/teleporter_vector{ - name = "Almayer_AresUp"; - vector_x = -97; - vector_y = 65 +"gPA" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 +/turf/open/floor/almayer{ + dir = 5; + icon_state = "silver" }, -/obj/structure/stairs{ - dir = 1 +/area/almayer/hallways/upper/midship_hallway) +"gPS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/turf/open/floor/almayer/no_build{ - dir = 4 +/turf/open/floor/almayer{ + icon_state = "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/command/airoom) -"gPF" = ( -/obj/structure/machinery/light, /turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" + icon_state = "plate" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/hallways/lower/vehiclehangar) "gQk" = ( /obj/structure/surface/table/almayer, /obj/structure/sign/safety/terminal{ @@ -35808,6 +31963,16 @@ /obj/structure/machinery/faxmachine/corporate/liaison, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) +"gQu" = ( +/obj/structure/platform{ + dir = 4 + }, +/obj/item/storage/firstaid/rad, +/obj/structure/surface/rack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "gQF" = ( /obj/structure/bed/chair/comfy{ buckling_y = 2; @@ -35824,6 +31989,18 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) +"gQQ" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "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{ @@ -35832,9 +32009,17 @@ }, /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{ + dir = 8; + icon_state = "orangecorner" + }, +/area/almayer/hallways/lower/port_umbilical) "gRP" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -35875,12 +32060,42 @@ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) -"gSs" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +"gSy" = ( +/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/maint/hull/upper/u_f_s) +"gSz" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/shipboard/brig/mp_bunks) +"gSH" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) +"gTk" = ( +/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/lower/port_umbilical) "gTH" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/skills{ @@ -35894,10 +32109,18 @@ dir = 4; pixel_y = -18 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/turf/open/floor/almayer/aicore/glowing/no_build{ + icon_state = "ai_floor3" }, /area/almayer/command/airoom) +"gTK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/p_bow) "gUf" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /turf/open/floor/almayer{ @@ -35913,23 +32136,31 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/general_equipment) -"gUv" = ( +"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" + icon_state = "E"; + pixel_x = 2 }, -/area/almayer/hull/lower_hull/l_f_p) -"gUy" = ( -/obj/structure/machinery/vending/cola{ - density = 0; - pixel_y = 18 +/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 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/maint/hull/upper/u_a_s) "gUL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -35946,15 +32177,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/bridgebunks) -"gUN" = ( -/obj/structure/pipes/standard/simple/hidden/supply/no_boom{ - dir = 4 - }, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "cargo_arrow" - }, -/area/almayer/command/airoom) "gUS" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -36015,6 +32237,44 @@ }, /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{ + dir = 8; + icon_state = "red" + }, +/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{ + dir = 10; + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "gWu" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -36033,22 +32293,6 @@ }, /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" @@ -36089,9 +32333,6 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) -"gXZ" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/lower_hull/stern) "gYe" = ( /obj/structure/machinery/vending/sea, /turf/open/floor/almayer{ @@ -36099,6 +32340,34 @@ icon_state = "plating" }, /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{ + icon_state = "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 @@ -36111,6 +32380,17 @@ icon_state = "sterile_green_side" }, /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{ + dir = 10; + icon_state = "silver" + }, +/area/almayer/maint/upper/u_m_p) "gYt" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, @@ -36118,54 +32398,36 @@ icon_state = "redfull" }, /area/almayer/living/offices/flight) -"gYB" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "Saferoom Channel"; - pixel_x = 27 +"gYx" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, /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 + dir = 1; + icon_state = "red" }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = 12; - pixel_y = 13 +/area/almayer/shipboard/brig/starboard_hallway) +"gYI" = ( +/obj/structure/platform{ + dir = 4 }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 +/obj/effect/decal/cleanable/blood/oil/streak, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -16; - pixel_y = 13 +/area/almayer/maint/hull/upper/u_a_p) +"gYU" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, -/obj/structure/sign/safety/water{ - pixel_x = -17 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) +/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) @@ -36179,6 +32441,16 @@ icon_state = "test_floor4" }, /area/almayer/command/lifeboat) +"gZW" = ( +/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/lower/port_fore_hallway) "had" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -36199,15 +32471,6 @@ icon_state = "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{ @@ -36239,13 +32502,11 @@ icon_state = "orange" }, /area/almayer/engineering/lower) -"haM" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/structure/machinery/constructable_frame, +"haO" = ( /turf/open/floor/almayer{ - icon_state = "mono" + icon_state = "plate" }, -/area/almayer/lifeboat_pumps/south2) +/area/almayer/maint/hull/upper/s_stern) "haQ" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -36259,12 +32520,40 @@ icon_state = "plate" }, /area/almayer/living/offices) -"haT" = ( -/obj/structure/machinery/light, +"haR" = ( +/obj/structure/sign/safety/restrictedarea{ + pixel_x = -17 + }, /turf/open/floor/almayer{ - icon_state = "green" + icon_state = "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{ + icon_state = "redcorner" + }, +/area/almayer/shipboard/brig/starboard_hallway) +"hbl" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_m_s) +"hbp" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/p_stern) "hbs" = ( /obj/structure/surface/table/almayer, /obj/item/frame/fire_alarm, @@ -36281,7 +32570,27 @@ dir = 4; icon_state = "silver" }, -/area/almayer/living/auxiliary_officer_office) +/area/almayer/living/auxiliary_officer_office) +"hbA" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/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 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "hbI" = ( /obj/structure/sign/safety/ammunition{ pixel_x = 32; @@ -36323,15 +32632,6 @@ icon_state = "silver" }, /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, @@ -36355,34 +32655,21 @@ icon_state = "cargo" }, /area/almayer/squads/delta) -"hcZ" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/offices) -"hdb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"hcX" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 +/obj/structure/machinery/power/reactor, +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/engineering/lower/engine_core) "hdd" = ( /turf/open/floor/almayer{ dir = 9; icon_state = "red" }, /area/almayer/shipboard/starboard_missiles) -"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" @@ -36392,6 +32679,13 @@ icon_state = "cargo_arrow" }, /area/almayer/living/offices) +"hdy" = ( +/obj/item/storage/firstaid/fire, +/obj/structure/surface/rack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "hdE" = ( /obj/structure/filingcabinet, /obj/item/reagent_container/food/drinks/coffeecup/uscm{ @@ -36401,38 +32695,40 @@ icon_state = "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" +"hdP" = ( +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/hallways/upper/aft_hallway) +"hdQ" = ( +/obj/structure/closet/secure_closet{ + name = "\improper Execution Firearms" }, +/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{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) -"heb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/area/almayer/shipboard/brig/execution_storage) +"hdV" = ( +/obj/structure/sign/safety/escapepod{ + pixel_x = 8; + pixel_y = -32 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/almayer{ + dir = 8; + icon_state = "greencorner" }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/port_midship_hallway) "hec" = ( /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"hee" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "heo" = ( /obj/structure/machinery/power/apc/almayer{ cell_type = /obj/item/cell/hyper; @@ -36463,18 +32759,16 @@ icon_state = "test_floor4" }, /area/almayer/living/port_emb) +"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{ icon_state = "orange" }, /area/almayer/engineering/lower) -"heV" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "hfa" = ( /obj/structure/window/reinforced{ dir = 8 @@ -36505,16 +32799,35 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower/engine_core) -"hfk" = ( -/obj/item/trash/crushed_cup, +"hft" = ( +/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/upper/aft_hallway) +"hfv" = ( +/obj/structure/reagent_dispensers/fueltank, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) -"hfy" = ( -/obj/structure/machinery/light, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/lower/s_bow) +"hfO" = ( +/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/maint/hull/lower/l_a_s) "hfQ" = ( /obj/structure/window/framed/almayer, /turf/open/floor/almayer{ @@ -36530,21 +32843,12 @@ icon_state = "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{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/maint/hull/upper/u_m_s) "hgo" = ( /obj/structure/machinery/light{ dir = 8 @@ -36554,6 +32858,25 @@ icon_state = "orange" }, /area/almayer/engineering/lower) +"hgp" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) +"hgs" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "hgB" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/intel, @@ -36577,13 +32900,6 @@ icon_state = "cargo" }, /area/almayer/engineering/lower/workshop/hangar) -"hgH" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "hgL" = ( /obj/item/tool/warning_cone{ pixel_x = 4; @@ -36594,17 +32910,6 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"hgV" = ( -/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/lower/engine_core) "hgZ" = ( /obj/structure/machinery/door_control{ dir = 1; @@ -36617,17 +32922,31 @@ icon_state = "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 + }, +/obj/item/clothing/suit/storage/hazardvest{ + pixel_x = 1 }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"hhg" = ( +/obj/structure/surface/rack, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hallways/starboard_umbilical) +/area/almayer/maint/hull/lower/l_f_p) "hhn" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -36638,24 +32957,10 @@ icon_state = "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) -"hhW" = ( -/obj/structure/surface/rack, -/obj/item/storage/box/gloves{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/box/masks, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, -/area/almayer/shipboard/brig/surgery) "hif" = ( /obj/structure/machinery/floodlight/landing, /turf/open/floor/almayer{ @@ -36670,16 +32975,16 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"hit" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/bag/trash{ - pixel_x = -3 +"hiu" = ( +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice13"; + pixel_x = 16; + pixel_y = 16 }, -/obj/structure/machinery/power/apc/almayer{ - dir = 1 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/hull/lower/l_m_s) "hiy" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -36695,12 +33000,16 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) -"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{ + dir = 4; + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "hji" = ( /obj/structure/bed/chair{ dir = 4 @@ -36754,27 +33063,36 @@ icon_state = "redcorner" }, /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/machinery/light/small{ + dir = 1; + pixel_y = 20 + }, +/obj/structure/largecrate, +/turf/open/floor/almayer{ + icon_state = "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" }, /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) +/area/almayer/maint/hull/upper/p_stern) "hkB" = ( /obj/structure/sign/safety/rewire{ pixel_x = 8; @@ -36782,12 +33100,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 @@ -36841,21 +33159,21 @@ pixel_x = -1; pixel_y = 3 }, +/obj/item/reagent_container/spray/cleaner{ + layer = 3.04; + pixel_x = 5; + pixel_y = 22 + }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"hlw" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"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" + icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_a_s) +/area/almayer/hallways/upper/midship_hallway) "hlH" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -36867,11 +33185,26 @@ }, /area/almayer/engineering/lower) "hlI" = ( -/obj/structure/girder, +/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{ - icon_state = "plate" + dir = 9; + icon_state = "red" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/shipboard/brig/warden_office) "hlT" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out"; @@ -36910,20 +33243,6 @@ }, /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"; @@ -36946,6 +33265,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/upper/starboard) +"hmv" = ( +/obj/structure/machinery/power/reactor, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) "hmw" = ( /obj/structure/platform{ dir = 1 @@ -36967,6 +33292,9 @@ icon_state = "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; @@ -36991,26 +33319,36 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha_bravo_shared) -"hmG" = ( -/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{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/main_office) "hmS" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer{ icon_state = "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, @@ -37026,6 +33364,34 @@ icon_state = "sterile_green" }, /area/almayer/medical/hydroponics) +"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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) +"hnE" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/box/ids{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/item/device/flash, +/obj/structure/machinery/light{ + dir = 8; + invisibility = 101 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "hnI" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -37039,35 +33405,56 @@ icon_state = "test_floor4" }, /area/almayer/living/pilotbunks) -"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{ +"hnP" = ( +/obj/structure/barricade/handrail{ dir = 1; - icon_state = "green" + pixel_y = 2 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/sign/safety/fire_haz{ + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) +"hoc" = ( +/obj/structure/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" }, -/area/almayer/hallways/aft_hallway) -"hop" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/almayer{ + icon_state = "mono" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"hoX" = ( -/obj/structure/machinery/light/small, +/area/almayer/hallways/lower/vehiclehangar) +"hoK" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) +"hoT" = ( /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_p) +/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 + }, +/obj/item/storage/firstaid/adv, +/obj/item/device/defibrillator, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" + }, +/area/almayer/shipboard/brig/medical) "hpk" = ( /obj/structure/sign/safety/fire_haz{ pixel_x = 8; @@ -37103,6 +33490,10 @@ }, /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{ icon_state = "plate" @@ -37121,36 +33512,25 @@ /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 + dir = 4 }, /turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/lower_hull/l_f_s) -"hqJ" = ( -/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 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliaison) -"hqU" = ( -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 + icon_state = "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{ - dir = 5; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/maint/hull/upper/u_a_p) "hqW" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ name = "\improper Medical Bay"; @@ -37188,6 +33568,15 @@ icon_state = "test_floor4" }, /area/almayer/medical/medical_science) +"hro" = ( +/obj/structure/machinery/vending/coffee{ + density = 0; + pixel_y = 18 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_p) "hrF" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -37197,25 +33586,21 @@ icon_state = "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 +"hrI" = ( +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"hsc" = ( +/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 = "sterile_green_side" - }, -/area/almayer/medical/lower_medical_medbay) -"hrO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/lower/port_umbilical) "hsg" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -37226,6 +33611,21 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"hsh" = ( +/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/maint/hull/lower/l_m_s) "hsj" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -37243,9 +33643,19 @@ icon_state = "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"; @@ -37262,6 +33672,54 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/starboard) +"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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) +"htk" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_s) +"htq" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "htG" = ( /obj/item/tool/soap, /obj/structure/machinery/light/small{ @@ -37290,15 +33748,12 @@ icon_state = "greenfull" }, /area/almayer/living/offices) -"htP" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"huD" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/area/almayer/hull/lower_hull/stern) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "huK" = ( /turf/open/floor/almayer{ icon_state = "redcorner" @@ -37314,6 +33769,12 @@ icon_state = "silver" }, /area/almayer/command/computerlab) +"huP" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "huU" = ( /obj/structure/machinery/door/airlock/almayer/security{ access_modified = 1; @@ -37329,18 +33790,9 @@ icon_state = "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{ @@ -37364,29 +33816,41 @@ pixel_x = -7; pixel_y = 4 }, -/turf/open/floor/almayer, -/area/almayer/command/cic) -"hvw" = ( -/obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/plating, -/area/almayer/powered/agent) +/turf/open/floor/almayer, +/area/almayer/command/cic) +"hvw" = ( +/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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_f_p) +"hvz" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "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) -"hwd" = ( -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, +"hwB" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, /turf/open/floor/almayer{ - icon_state = "cargo" + dir = 1; + icon_state = "green" }, -/area/almayer/engineering/lower/engine_core) +/area/almayer/hallways/upper/fore_hallway) "hwC" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; @@ -37396,6 +33860,19 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) +"hwH" = ( +/obj/structure/stairs{ + 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/lower/starboard_fore_hallway) "hxe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -37442,26 +33919,17 @@ icon_state = "green" }, /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) -"hyk" = ( +"hyb" = ( +/obj/structure/largecrate/random/barrel/red, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/squads/charlie_delta_shared) -"hyt" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 2 - }, +/area/almayer/maint/hull/lower/l_a_s) +"hyk" = ( /turf/open/floor/almayer{ - dir = 6; - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/squads/charlie_delta_shared) "hyw" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -37489,6 +33957,37 @@ "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{ + dir = 4; + icon_state = "red" + }, +/area/almayer/shipboard/brig/interrogation) +"hza" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_aft_hallway) "hzb" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4; @@ -37520,36 +34019,19 @@ icon_state = "cargo" }, /area/almayer/squads/delta) -"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{ +"hzG" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/machinery/door/airlock/almayer/command/reinforced{ - name = "\improper Combat Information Center"; - closeOtherId = "ciclobby_s" - }, -/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{ +/obj/structure/pipes/standard/simple/hidden/supply{ 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, @@ -37558,6 +34040,16 @@ icon_state = "cargo" }, /area/almayer/squads/req) +"hAf" = ( +/obj/structure/machinery/iv_drip, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" + }, +/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 @@ -37566,6 +34058,19 @@ icon_state = "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{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_midship_hallway) "hAG" = ( /obj/structure/closet/crate/internals, /obj/item/handcuffs/cable/blue, @@ -37588,14 +34093,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"hAY" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/stern) "hAZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -37616,6 +34113,21 @@ icon_state = "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{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) "hBz" = ( /obj/item/mortar_kit, /turf/open/floor/almayer{ @@ -37623,43 +34135,54 @@ icon_state = "plating" }, /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) +"hBG" = ( +/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/lower/repair_bay) "hBL" = ( /obj/structure/closet/emcloset, /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/command/lifeboat) -"hBU" = ( -/obj/structure/largecrate/random/secure, -/obj/effect/decal/warning_stripes{ - icon_state = "E" - }, +"hBW" = ( /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_a_p) -"hCo" = ( -/obj/structure/surface/table/almayer, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22"; - pixel_y = 8 +/area/almayer/hallways/lower/port_fore_hallway) +"hCf" = ( +/obj/structure/sign/safety/manualopenclose{ + pixel_x = 15; + pixel_y = -32 + }, +/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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) +"hCq" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "hCt" = ( /obj/structure/sign/safety/terminal{ pixel_x = 15; @@ -37699,10 +34222,6 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/perma) -"hDv" = ( -/obj/effect/landmark/start/reporter, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) "hDw" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ @@ -37710,13 +34229,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{ @@ -37732,6 +34244,16 @@ icon_state = "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{ + dir = 6; + icon_state = "red" + }, +/area/almayer/hallways/lower/port_fore_hallway) "hDV" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/map_item, @@ -37754,30 +34276,48 @@ icon_state = "plate" }, /area/almayer/squads/bravo) +"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/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/port_fore_hallway) "hEl" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"hEt" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/glass/bucket/mopbucket{ - pixel_x = -8 - }, -/obj/item/reagent_container/glass/bucket/mopbucket{ - pixel_y = 12 +"hEm" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 2 }, -/obj/item/clothing/head/militia/bucket{ - pixel_x = 5; - pixel_y = -5 +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) +"hEr" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 18 }, -/obj/item/reagent_container/spray/cleaner{ +/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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "hEw" = ( /obj/structure/pipes/standard/simple/visible{ dir = 10 @@ -37816,16 +34356,15 @@ icon_state = "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) -"hGD" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +"hGb" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/aft_hallway) "hGG" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -37868,12 +34407,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"hGZ" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "hHe" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -37903,35 +34436,15 @@ icon_state = "red" }, /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 +"hIp" = ( +/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) +/area/almayer/maint/hull/lower/l_a_p) "hIs" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -37942,6 +34455,16 @@ icon_state = "dark_sterile" }, /area/almayer/command/corporateliaison) +"hIF" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/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; @@ -37956,12 +34479,12 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"hJb" = ( -/obj/item/tool/pen, +"hIX" = ( +/obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_a_s) +/area/almayer/maint/hull/upper/u_a_p) "hJg" = ( /obj/structure/pipes/trinary/mixer{ dir = 4; @@ -37981,60 +34504,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 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"hJz" = ( -/obj/structure/sign/safety/restrictedarea, -/obj/structure/sign/safety/security{ - pixel_x = 15 +"hJD" = ( +/obj/structure/bed/sofa/south/grey/right{ + pixel_y = 12 }, -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "hJI" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) -"hJJ" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ +"hKe" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"hJN" = ( -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = 7 - }, -/obj/structure/sign/safety/airlock{ - pixel_x = 32; - pixel_y = -8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/stern) -"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" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "hKl" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/warning_stripes{ @@ -38049,70 +34539,44 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) -"hKq" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 +"hKO" = ( +/obj/structure/largecrate/random/barrel/green, +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"hLB" = ( -/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 + icon_state = "plate" }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 +/area/almayer/maint/hull/lower/l_f_s) +"hLr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 +/obj/structure/machinery/door/airlock/almayer/research/reinforced{ + closeOtherId = "containment_s"; + dir = 8; + name = "\improper Containment Airlock" }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 +/obj/structure/machinery/door/poddoor/almayer/biohazard/white{ + dir = 4 }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 +/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/hull/upper_hull/u_m_s) +/area/almayer/maint/hull/lower/p_bow) "hLC" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer{ @@ -38136,54 +34600,52 @@ icon_state = "test_floor4" }, /area/almayer/living/briefing) -"hMc" = ( -/obj/structure/bed/chair/comfy/orange{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/chief_mp_office) "hMi" = ( /obj/structure/pipes/vents/scrubber, /turf/open/floor/almayer, /area/almayer/living/chapel) -"hMs" = ( -/obj/structure/bed/stool, +"hMk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/lower/starboard_fore_hallway) "hMG" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/engineering/lower) -"hMI" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/binoculars, -/obj/item/device/whistle{ - pixel_y = 5 - }, +"hMM" = ( +/obj/structure/largecrate/random/barrel/white, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/maint/hull/upper/s_bow) "hMN" = ( /obj/structure/machinery/power/apc/almayer, /turf/open/floor/almayer{ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_three) -"hNl" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21"; - pixel_y = 16 +"hNh" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) +"hNv" = ( +/obj/structure/sign/safety/escapepod{ + pixel_x = 8; + pixel_y = -32 }, -/obj/structure/surface/table/almayer, /turf/open/floor/almayer{ - dir = 9; - icon_state = "red" + icon_state = "green" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/lower/port_midship_hallway) "hNw" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -38191,6 +34653,17 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/squads/charlie) +"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" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/vehiclehangar) "hNM" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/stack/sheet/metal{ @@ -38217,15 +34690,37 @@ icon_state = "red" }, /area/almayer/shipboard/brig/chief_mp_office) -"hOR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"hOd" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/area/almayer/hallways/upper/fore_hallway) +"hOn" = ( +/turf/open/floor/almayer{ + dir = 9; + icon_state = "silver" }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/midship_hallway) +"hOu" = ( +/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/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, @@ -38238,14 +34733,6 @@ icon_state = "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{ @@ -38253,24 +34740,31 @@ icon_state = "silver" }, /area/almayer/living/auxiliary_officer_office) -"hPo" = ( -/obj/structure/surface/rack, -/obj/item/tool/wet_sign, -/obj/item/tool/wet_sign, +"hPu" = ( +/obj/structure/largecrate/supply, +/obj/item/tool/crowbar, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "cargo" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/maint/hull/upper/u_f_p) +"hPD" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/lower/starboard_umbilical) "hPI" = ( /turf/closed/wall/almayer/outer, /area/almayer/shipboard/brig/perma) -"hPK" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" +"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{ @@ -38283,12 +34777,16 @@ icon_state = "sterile_green_side" }, /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 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "hQc" = ( /obj/structure/window/reinforced{ dir = 4; @@ -38301,6 +34799,10 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/charlie_delta_shared) +"hQf" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "hQw" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -38308,6 +34810,10 @@ icon_state = "orange" }, /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{ @@ -38359,33 +34865,12 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) -"hRc" = ( -/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" - }, -/area/almayer/hallways/upper/port) "hRd" = ( /obj/structure/machinery/vending/coffee, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/squads/alpha) -"hRi" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "hRk" = ( /obj/structure/machinery/cm_vending/clothing/senior_officer{ density = 0; @@ -38395,6 +34880,20 @@ icon_state = "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/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "hRW" = ( /obj/effect/decal/warning_stripes{ icon_state = "S"; @@ -38418,10 +34917,14 @@ 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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "hSk" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) @@ -38434,14 +34937,18 @@ icon_state = "orange" }, /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 + }, +/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_a_s) +/area/almayer/maint/hull/upper/u_f_s) "hSw" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, @@ -38463,13 +34970,6 @@ icon_state = "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 @@ -38485,14 +34985,6 @@ icon_state = "green" }, /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; @@ -38501,9 +34993,7 @@ 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{ @@ -38514,10 +35004,6 @@ allow_construction = 0 }, /area/almayer/shipboard/brig/processing) -"hTu" = ( -/obj/structure/machinery/light, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "hTF" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm{ isopen = 1; @@ -38561,24 +35047,53 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"hUc" = ( -/obj/structure/machinery/light/small{ - dir = 8 +"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{ icon_state = "plate" }, -/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) +/area/almayer/maint/hull/lower/l_a_p) +"hUb" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_s) +"hUh" = ( +/obj/structure/machinery/medical_pod/bodyscanner{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/shipboard/brig/medical) "hUk" = ( /turf/open/floor/almayer{ dir = 10; icon_state = "orange" }, /area/almayer/engineering/lower/engine_core) +"hUu" = ( +/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/upper/midship_hallway) "hUz" = ( /obj/structure/largecrate/supply/supplies/mre{ desc = "A supply crate containing everything you need to stop a CLF uprising."; @@ -38596,6 +35111,28 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/execution_storage) "hUW" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -38624,20 +35161,21 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) -"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 - }, +"hVL" = ( +/obj/structure/largecrate/random/barrel/red, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/maint/hull/lower/l_f_p) +"hWa" = ( +/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/fore_hallway) "hWq" = ( /obj/structure/platform{ layer = 3.1 @@ -38686,6 +35224,27 @@ icon_state = "red" }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "hWJ" = ( /obj/structure/largecrate/random/case/small, /turf/open/floor/almayer{ @@ -38693,6 +35252,10 @@ icon_state = "red" }, /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{ @@ -38700,18 +35263,16 @@ icon_state = "blue" }, /area/almayer/command/cichallway) -"hWS" = ( -/obj/structure/machinery/light/small{ - dir = 4 +"hWP" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/platform_decoration{ + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) -"hWU" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/aicore/no_build{ + dir = 8; + icon_state = "ai_silver" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/command/airoom) "hXb" = ( /turf/open/floor/almayer{ dir = 1; @@ -38749,6 +35310,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) +"hXD" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) "hXG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -38761,22 +35328,6 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/upper_engineering/port) -"hXS" = ( -/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) -"hXV" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/lifeboat_pumps/south1) "hXX" = ( /obj/effect/projector{ name = "Almayer_Down4"; @@ -38794,22 +35345,18 @@ icon_state = "blue" }, /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 +"hYf" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer{ + icon_state = "plate" }, +/area/almayer/maint/hull/lower/l_a_s) +"hYj" = ( +/obj/structure/machinery/light/small, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/upper/u_a_p) "hYn" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -38822,6 +35369,14 @@ icon_state = "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 @@ -38846,10 +35401,14 @@ 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"; @@ -38882,18 +35441,10 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"hZU" = ( -/obj/structure/transmitter{ - name = "Brig Offices Telephone"; - phone_category = "MP Dept."; - 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{ @@ -38952,6 +35503,15 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) +"iaO" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "iaR" = ( /obj/structure/machinery/light{ dir = 4 @@ -38970,6 +35530,24 @@ icon_state = "plating_striped" }, /area/almayer/squads/req) +"ibf" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/almayer{ + icon_state = "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{ dir = 8; @@ -38996,6 +35574,18 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) +"icQ" = ( +/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/upper/fore_hallway) "icZ" = ( /obj/structure/closet/secure_closet/brig, /turf/open/floor/almayer{ @@ -39015,12 +35605,40 @@ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) +"idL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "idX" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/prison{ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) +"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 + }, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) "ieu" = ( /obj/structure/window/reinforced{ dir = 4; @@ -39077,27 +35695,6 @@ icon_state = "sterile_green_corner" }, /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{ @@ -39122,55 +35719,94 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north1) -"ifR" = ( -/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) -"igf" = ( -/obj/structure/largecrate/random/case{ - layer = 2.98 +"ifz" = ( +/obj/structure/machinery/keycard_auth{ + pixel_x = 25 }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "red" }, -/area/almayer/hull/upper_hull/u_a_s) +/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/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/glowing/no_build, /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{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) +"igw" = ( +/obj/structure/sign/poster/ad{ + pixel_x = 30 }, +/obj/structure/closet, +/obj/item/clothing/mask/cigarette/weed, /turf/open/floor/almayer{ - icon_state = "red" + icon_state = "plate" }, -/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 +/area/almayer/maint/hull/lower/l_m_s) +"igC" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) +"igS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" }, +/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) +/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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/lower/constr) "ihw" = ( -/obj/structure/machinery/cm_vending/sorted/medical, +/obj/structure/machinery/cm_vending/sorted/medical/blood, /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_corner" }, /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; @@ -39183,6 +35819,15 @@ icon_state = "plate" }, /area/almayer/squads/delta) +"ihW" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "ihX" = ( /obj/structure/machinery/status_display{ pixel_y = -30 @@ -39197,34 +35842,6 @@ icon_state = "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) -"iis" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - dir = 1; - name = "\improper Brig Prison Yard And Offices"; - closeOtherId = "brigcells" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/processing) "iit" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -39243,35 +35860,38 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) -"iiC" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 8; +"iiU" = ( +/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 = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"iiP" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 + dir = 8; + icon_state = "silver" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/hallways/upper/fore_hallway) "iiZ" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, /turf/open/floor/almayer{ icon_state = "bluefull" }, /area/almayer/command/cichallway) -"ije" = ( -/obj/item/tool/weldingtool, -/obj/structure/surface/rack, +"ijd" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - icon_state = "red" + icon_state = "mono" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/hallways/upper/midship_hallway) "ijf" = ( /obj/structure/surface/table/almayer, /obj/item/cell/crap, @@ -39281,14 +35901,6 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"ijp" = ( -/obj/structure/surface/rack, -/obj/item/storage/toolbox/mechanical, -/obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "ijr" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 @@ -39310,16 +35922,17 @@ }, /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) +"ikl" = ( +/turf/open/floor/almayer{ + icon_state = "cargo_arrow" + }, +/area/almayer/hallways/lower/vehiclehangar) "iks" = ( /obj/structure/pipes/binary/pump/high_power/on{ dir = 1 @@ -39340,6 +35953,12 @@ icon_state = "orange" }, /area/almayer/engineering/lower) +"ikA" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/s_bow) "ikQ" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/tool/stamp/hop{ @@ -39361,16 +35980,15 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) +"ikT" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "ilq" = ( /turf/open/floor/almayer{ dir = 4; icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"ils" = ( -/obj/structure/window/framed/almayer/hull, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_f_p) "ily" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, @@ -39396,12 +36014,12 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"ilZ" = ( -/obj/effect/spawner/random/toolbox, +"iml" = ( +/obj/structure/pipes/vents/pump, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_a_s) +/area/almayer/maint/upper/u_a_s) "imo" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -39415,33 +36033,46 @@ icon_state = "sterile_green_side" }, /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) -"imJ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 +"imS" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "ARES StairsUpper"; + name = "\improper ARES Core Shutters"; + plane = -7 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"ina" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/emails{ - dir = 4 +/obj/structure/machinery/door/poddoor/almayer/blended/open{ + id = "ARES Emergency"; + name = "ARES Emergency Lockdown"; + open_layer = 1.9; + 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 + }, +/turf/open/floor/almayer/no_build{ + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_m_s) +/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) @@ -39458,14 +36089,6 @@ }, /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) "inL" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -39476,12 +36099,16 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"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 + }, +/obj/item/tool/pen, +/turf/open/floor/almayer/no_build{ + icon_state = "plating" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/command/airoom) "iow" = ( /obj/structure/machinery/cm_vending/sorted/attachments/squad{ req_access = null; @@ -39502,6 +36129,9 @@ icon_state = "red" }, /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" @@ -39525,12 +36155,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/general_equipment) -"ioX" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "ipa" = ( /obj/effect/decal/cleanable/generic, /obj/effect/decal/warning_stripes{ @@ -39546,12 +36170,29 @@ }, /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{ + icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/p_bow) "ipE" = ( /obj/structure/bed/chair{ dir = 8 @@ -39586,11 +36227,6 @@ icon_state = "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 @@ -39601,7 +36237,6 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ dir = 10; icon_state = "green" @@ -39637,14 +36272,18 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/cryo) -"irn" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "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 @@ -39654,12 +36293,17 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south2) -"irF" = ( -/obj/structure/closet/emcloset/legacy, -/turf/open/floor/almayer{ - icon_state = "cargo" +"irJ" = ( +/obj/item/tool/wirecutters{ + pixel_y = -7 + }, +/obj/structure/sign/poster{ + desc = "You are becoming hysterical."; + icon_state = "poster11"; + pixel_y = 30 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "irS" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/cable/heavyduty{ @@ -39692,20 +36336,21 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop) -"isC" = ( -/obj/effect/projector{ - name = "Almayer_AresDown"; - vector_x = 97; - vector_y = -65 +"iso" = ( +/turf/open/floor/almayer{ + dir = 9; + icon_state = "orange" }, -/obj/structure/stairs{ - dir = 1; - icon_state = "ramptop" +/area/almayer/hallways/upper/midship_hallway) +"isq" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/area/almayer/command/airoom) +/area/almayer/maint/hull/upper/u_m_p) "isI" = ( /obj/structure/sign/nosmoking_2{ pixel_x = 32 @@ -39728,41 +36373,11 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/morgue) -"isW" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "bluecorner" - }, -/area/almayer/hallways/aft_hallway) -"itf" = ( -/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 - }, -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "silver" +"itg" = ( +/obj/structure/pipes/standard/simple/hidden/supply/no_boom{ + dir = 4 }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "ito" = ( /obj/effect/decal/warning_stripes{ @@ -39797,6 +36412,17 @@ icon_state = "red" }, /area/almayer/command/lifeboat) +"iuf" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_bow) "iun" = ( /obj/effect/spawner/random/tool, /turf/open/floor/plating/plating_catwalk, @@ -39815,25 +36441,6 @@ icon_state = "silvercorner" }, /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) "iuz" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/warhead, @@ -39841,10 +36448,6 @@ icon_state = "red" }, /area/almayer/shipboard/weapon_room) -"iuA" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) "iuE" = ( /obj/structure/machinery/vending/coffee, /obj/structure/machinery/light{ @@ -39860,6 +36463,12 @@ /obj/structure/machinery/computer/emails, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) +"iuI" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "ivf" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/camera, @@ -39880,18 +36489,22 @@ }, /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" }, /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" @@ -39913,14 +36526,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/lower) -"iwh" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "iwB" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/washing_machine{ @@ -39993,26 +36598,22 @@ icon_state = "sterile_green" }, /area/almayer/medical/lockerroom) -"ixv" = ( -/obj/structure/bed/chair/comfy/blue{ - dir = 4 +"ixu" = ( +/obj/structure/largecrate/random/case{ + layer = 2.98 }, /turf/open/floor/almayer{ icon_state = "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{ +/area/almayer/maint/hull/upper/u_a_s) +"ixv" = ( +/obj/structure/bed/chair/comfy/blue{ dir = 4 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/command/cic) "ixD" = ( /obj/structure/machinery/light, /obj/effect/decal/warning_stripes{ @@ -40032,19 +36633,34 @@ icon_state = "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"; pixel_x = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/squads/req) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/squads/req) +"ixT" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "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 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "iyF" = ( /obj/structure/pipes/standard/simple/visible{ dir = 9 @@ -40054,24 +36670,6 @@ icon_state = "orange" }, /area/almayer/engineering/lower) -"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 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) -"iyQ" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_f_s) "iyS" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -40084,6 +36682,14 @@ icon_state = "blue" }, /area/almayer/squads/delta) +"izf" = ( +/obj/structure/disposalpipe/down/almayer{ + dir = 4; + id = "ares_vault_in"; + name = "aicore" + }, +/turf/closed/wall/almayer/aicore/hull, +/area/almayer/command/airoom) "izk" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -40093,13 +36699,6 @@ icon_state = "plate" }, /area/almayer/living/offices) -"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, @@ -40115,10 +36714,6 @@ 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{ @@ -40126,6 +36721,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"iAg" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "redcorner" + }, +/area/almayer/shipboard/brig/mp_bunks) "iAw" = ( /obj/item/tool/warning_cone{ pixel_x = -12 @@ -40147,14 +36748,6 @@ icon_state = "sterile_green_side" }, /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) "iAE" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -40163,16 +36756,12 @@ icon_state = "plate" }, /area/almayer/engineering/lower/engine_core) -"iAT" = ( -/obj/structure/sign/safety/south{ - pixel_x = -17; - pixel_y = 8 - }, +"iAI" = ( +/obj/structure/machinery/portable_atmospherics/hydroponics, /turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/upper/u_a_s) "iBl" = ( /obj/structure/machinery/power/apc/almayer{ dir = 4 @@ -40183,26 +36772,17 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) -"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" - }, -/area/almayer/hull/lower_hull/l_f_s) -"iBG" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/reagent_dispensers/fueltank{ - anchored = 1 +"iBn" = ( +/turf/closed/wall/almayer/aicore/white/hull, +/area/space) +"iBu" = ( +/obj/structure/sign/safety/storage{ + pixel_x = -17 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/hull/lower/p_bow) "iBY" = ( /obj/structure/machinery/vending/snack, /turf/open/floor/almayer{ @@ -40210,6 +36790,12 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"iCg" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silvercorner" + }, +/area/almayer/hallways/upper/midship_hallway) "iCu" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; @@ -40230,14 +36816,14 @@ icon_state = "test_floor4" }, /area/almayer/command/cichallway) -"iCz" = ( -/obj/structure/machinery/light/small{ - dir = 4 +"iCD" = ( +/obj/structure/bed/chair/comfy/orange{ + dir = 8 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/maint/hull/upper/u_a_p) "iCF" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -40250,44 +36836,46 @@ icon_state = "green" }, /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/almayer, +/area/almayer/hallways/upper/midship_hallway) +"iDa" = ( +/obj/structure/largecrate/supply/supplies/tables_racks, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" }, -/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 +/area/almayer/maint/upper/u_a_p) +"iDk" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "plate" }, +/area/almayer/maint/hull/lower/l_m_p) +"iDs" = ( +/obj/structure/largecrate/random/barrel/red, /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 +/area/almayer/maint/hull/upper/u_a_s) +"iDK" = ( +/obj/structure/blocker/fuelpump, +/turf/open/floor/almayer{ + icon_state = "mono" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/area/almayer/lifeboat_pumps/north2) +"iEa" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_bow) "iEg" = ( /turf/open/floor/almayer{ dir = 9; @@ -40300,14 +36888,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/starboard) -"iEs" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_a_p) "iEw" = ( /obj/structure/machinery/light{ dir = 1 @@ -40339,28 +36919,49 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"iFc" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor/wood/ship, -/area/almayer/shipboard/brig/cells) -"iFm" = ( -/obj/structure/machinery/light{ - dir = 1 +"iEM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/disposaloutlet, -/obj/structure/disposalpipe/trunk{ +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" + icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/hallways/lower/starboard_midship_hallway) +"iFc" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/cells) "iFn" = ( /turf/open/floor/almayer{ icon_state = "bluefull" }, /area/almayer/living/pilotbunks) +"iFp" = ( +/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/lower/starboard_midship_hallway) +"iFA" = ( +/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" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_f_p) "iFC" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/map_item, @@ -40388,6 +36989,15 @@ }, /turf/open/floor/almayer, /area/almayer/living/offices) +"iFK" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "iFM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -40400,13 +37010,29 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/lower/cryo_cells) +"iGc" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) +"iGi" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "iGn" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/closet/secure_closet/surgical{ @@ -40417,14 +37043,6 @@ icon_state = "sterile_green_side" }, /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 @@ -40439,28 +37057,22 @@ "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 +"iHG" = ( +/obj/structure/machinery/cryopod{ + pixel_y = 6 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "cargo" }, -/area/almayer/hull/upper_hull/u_a_s) -"iHG" = ( +/area/almayer/shipboard/brig/cells) +"iIb" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 }, /turf/open/floor/almayer{ icon_state = "cargo" }, -/area/almayer/shipboard/brig/cells) +/area/almayer/maint/upper/u_m_p) "iIj" = ( /obj/structure/stairs/perspective{ dir = 8; @@ -40507,16 +37119,13 @@ }, /turf/open/floor/almayer, /area/almayer/squads/bravo) -"iIY" = ( -/obj/structure/closet/emcloset, +"iIU" = ( +/obj/structure/largecrate/random/barrel/red, +/obj/structure/machinery/light/small, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) -"iJf" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/maint/upper/u_a_s) "iJB" = ( /obj/structure/sign/safety/galley{ pixel_x = 8; @@ -40537,6 +37146,13 @@ icon_state = "blue" }, /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{ @@ -40566,6 +37182,12 @@ icon_state = "cargo" }, /area/almayer/squads/alpha) +"iKy" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) "iKD" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, @@ -40593,6 +37215,15 @@ icon_state = "mono" }, /area/almayer/engineering/port_atmos) +"iKV" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "iKZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -40625,17 +37256,15 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) -"iLo" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 +"iLm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/surface/table/almayer, -/obj/item/storage/donut_box, -/turf/open/floor/almayer{ - icon_state = "red" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "iLq" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -40668,6 +37297,12 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/shipboard/brig/processing) +"iLL" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) "iLO" = ( /turf/open/floor/almayer{ dir = 4; @@ -40692,16 +37327,63 @@ icon_state = "red" }, /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" }, +/obj/structure/machinery/cm_vending/sorted/medical, +/obj/structure/medical_supply_link, /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"iNh" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ + name = "\improper Brig Cells" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/starboard_hallway) +"iNk" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/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{ + dir = 4; + icon_state = "redcorner" + }, +/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_x = 32; @@ -40709,23 +37391,45 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"iNZ" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/bed/chair{ - dir = 16 +"iOo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_f_s) +/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{ + icon_state = "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{ + dir = 10; + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "iPv" = ( /obj/structure/bed/chair/comfy, /obj/structure/window/reinforced/ultra, @@ -40753,6 +37457,21 @@ icon_state = "red" }, /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{ + dir = 5; + icon_state = "orange" + }, +/area/almayer/maint/upper/mess) "iPS" = ( /obj/structure/machinery/cryopod/right, /turf/open/floor/almayer{ @@ -40822,12 +37541,6 @@ icon_state = "emerald" }, /area/almayer/living/port_emb) -"iQx" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "iQB" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/card{ @@ -40835,33 +37548,38 @@ layer = 3.2; pixel_y = 4 }, -/obj/structure/machinery/computer/secure_data{ - dir = 4; - pixel_y = 23 - }, /obj/structure/machinery/light{ dir = 8 }, +/obj/structure/machinery/computer/secure_data{ + dir = 4; + pixel_y = 23; + layer = 2.99 + }, /turf/open/floor/almayer{ dir = 8; icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"iRr" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" +"iQJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hallways/port_hallway) -"iRx" = ( -/obj/structure/machinery/light{ - dir = 1 +/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, @@ -40882,10 +37600,61 @@ dir = 4 }, /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{ @@ -40932,6 +37701,34 @@ icon_state = "dark_sterile" }, /area/almayer/living/port_emb) +"iSx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + icon_state = "silvercorner" + }, +/area/almayer/hallways/upper/midship_hallway) +"iSB" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_a_p) "iSZ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -40962,25 +37759,30 @@ icon_state = "red" }, /area/almayer/command/lifeboat) -"iTf" = ( -/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{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "iTl" = ( /turf/open/floor/almayer{ dir = 10; icon_state = "red" }, /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 + }, +/obj/structure/largecrate/random/mini/med{ + density = 1; + pixel_x = 3; + pixel_y = 11 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" + }, +/area/almayer/medical/lower_medical_medbay) "iTw" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -40989,18 +37791,6 @@ icon_state = "bluefull" }, /area/almayer/living/bridgebunks) -"iTz" = ( -/obj/structure/disposalpipe/segment{ - 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) "iTD" = ( /obj/effect/landmark/start/auxiliary_officer, /turf/open/floor/plating/plating_catwalk, @@ -41011,26 +37801,39 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) -"iTK" = ( +"iTQ" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "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 }, +/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{ - dir = 4; - icon_state = "silver" + icon_state = "test_floor4" }, -/area/almayer/hallways/aft_hallway) -"iTN" = ( -/obj/item/stool{ - pixel_x = -15; - pixel_y = 6 +/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 @@ -41072,6 +37875,19 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) +"iUG" = ( +/obj/structure/closet/secure_closet/surgical{ + pixel_x = -30 + }, +/obj/structure/machinery/power/apc/almayer, +/obj/structure/sign/safety/rewire{ + pixel_y = -38 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "sterile_green_corner" + }, +/area/almayer/shipboard/brig/medical) "iUW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -41082,48 +37898,66 @@ icon_state = "orange" }, /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 - }, -/obj/item/tool/stamp/approved{ - pixel_y = -11; - pixel_x = -3 +"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, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 18 + }, +/obj/item/device/taperecorder, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/shipboard/brig/interrogation) "iVy" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "silvercorner" }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) +"iVD" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + closeOtherId = "brigmaint_n"; + 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/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." +"iVG" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, +/obj/structure/closet/firecloset, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/hull/upper/p_bow) "iVP" = ( /obj/structure/sign/safety/restrictedarea{ pixel_x = -17; @@ -41135,6 +37969,13 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) +"iWa" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 + }, +/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{ @@ -41145,15 +37986,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" @@ -41164,19 +38000,38 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"iWL" = ( -/obj/structure/pipes/standard/simple/hidden/supply, +"iWB" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"iWH" = ( +/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{ - dir = 5; - icon_state = "plating" + icon_state = "plate" }, -/area/almayer/hallways/vehiclehangar) -"iWN" = ( +/area/almayer/maint/lower/s_bow) +"iWJ" = ( +/obj/structure/largecrate/random/barrel/red, /turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/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{ @@ -41191,12 +38046,28 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) +"iXm" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "InnerShutter"; + name = "\improper Saferoom Shutters" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/panic) "iXA" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) +"iXB" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) "iXT" = ( /obj/item/trash/uscm_mre, /turf/open/floor/almayer, @@ -41243,35 +38114,12 @@ icon_state = "cargo_arrow" }, /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 - }, +"iYm" = ( +/obj/structure/largecrate/random/case/small, /turf/open/floor/almayer{ - dir = 4; - icon_state = "green" + icon_state = "plate" }, -/area/almayer/living/starboard_garden) +/area/almayer/maint/hull/upper/s_stern) "iYt" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -41288,6 +38136,12 @@ icon_state = "plate" }, /area/almayer/living/gym) +"iZd" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "iZg" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -41297,23 +38151,6 @@ }, /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) "iZE" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, /obj/effect/decal/warning_stripes{ @@ -41327,15 +38164,6 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop/hangar) -"iZH" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emerald" - }, -/area/almayer/hallways/port_hallway) "iZP" = ( /obj/structure/platform{ dir = 8 @@ -41361,13 +38189,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"iZX" = ( -/obj/structure/surface/rack, -/obj/item/clothing/glasses/meson, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hull/upper_hull/u_a_p) "jac" = ( /obj/structure/disposalpipe/segment{ dir = 8 @@ -41392,36 +38213,58 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"jaj" = ( -/obj/item/ammo_box/magazine/misc/mre/empty{ - pixel_x = 8; - pixel_y = 8 +"jak" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/reagent_container/food/drinks/cans/aspen{ - pixel_x = 11; - pixel_y = -3 +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 }, -/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, +/area/almayer/hallways/lower/vehiclehangar) +"jao" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/item/tool/pen, -/turf/open/floor/almayer/no_build{ - icon_state = "plating" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/command/airoom) -"jaK" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) +"jas" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/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 + }, +/obj/item/tool/shovel/etool, +/obj/item/tool/wirecutters, +/turf/open/floor/almayer{ + icon_state = "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{ icon_state = "plate" }, -/area/almayer/hallways/vehiclehangar) +/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 @@ -41448,23 +38291,6 @@ icon_state = "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, @@ -41501,15 +38327,6 @@ /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"; @@ -41528,14 +38345,11 @@ pixel_x = 8; pixel_y = 26 }, +/obj/structure/machinery/computer/cameras/almayer/ares{ + dir = 4 + }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"jbO" = ( -/obj/structure/machinery/cm_vending/sorted/medical, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, -/area/almayer/medical/lower_medical_medbay) "jbX" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -41546,17 +38360,39 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/shipboard/brig/processing) +"jcu" = ( +/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/upper/fore_hallway) +"jcE" = ( +/obj/structure/machinery/vending/coffee{ + density = 0; + pixel_y = 18 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "jcP" = ( /turf/open/floor/almayer{ icon_state = "plating_striped" }, /area/almayer/engineering/upper_engineering/starboard) -"jdk" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 +"jdl" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/platform_decoration, +/turf/open/floor/almayer/aicore/no_build{ + dir = 4; + icon_state = "ai_silver" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_umbilical) +/area/almayer/command/airoom) "jdm" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -41571,6 +38407,21 @@ icon_state = "blue" }, /area/almayer/squads/delta) +"jdn" = ( +/obj/structure/surface/rack, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "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; @@ -41581,26 +38432,20 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "jeq" = ( /obj/structure/surface/rack, /obj/item/storage/box/pillbottles{ @@ -41616,6 +38461,27 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "jew" = ( /obj/structure/surface/table/reinforced/black, /turf/open/floor/almayer{ @@ -41653,29 +38519,15 @@ icon_state = "red" }, /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 +"jeR" = ( +/obj/structure/machinery/light{ + dir = 4 }, +/obj/structure/bed/chair/bolted, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/shipboard/brig/perma) "jfK" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; @@ -41686,6 +38538,13 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"jfS" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/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, @@ -41779,14 +38638,20 @@ }, /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 }, -/area/almayer/hull/upper_hull/u_a_p) +/obj/structure/stairs{ + dir = 1 + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "jgF" = ( /obj/structure/platform, /turf/open/floor/almayer{ @@ -41799,18 +38664,47 @@ icon_state = "blue" }, /area/almayer/command/cichallway) -"jgM" = ( -/obj/structure/surface/table/almayer, +"jgK" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_f_s) -"jgU" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 +/area/almayer/maint/hull/lower/l_m_s) +"jgR" = ( +/obj/structure/sign/safety/rewire{ + pixel_y = 32 }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/obj/item/bedsheet/brown{ + layer = 3.1 + }, +/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{ + dir = 5; + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) "jhb" = ( /obj/structure/sign/safety/cryo{ pixel_x = -6; @@ -41818,12 +38712,21 @@ }, /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{ dir = 1; icon_state = "sterile_green_side" }, /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; @@ -41847,14 +38750,9 @@ }, /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 @@ -41868,22 +38766,44 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/chief_mp_office) -"jhW" = ( -/obj/structure/machinery/cryopod/right, +"jhK" = ( +/obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "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, +/area/almayer/maint/hull/upper/u_f_s) +"jhS" = ( +/obj/structure/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing_aux" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) +"jhW" = ( +/obj/structure/machinery/cryopod/right, /turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" + icon_state = "cargo" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/living/bridgebunks) "jic" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -41896,14 +38816,17 @@ icon_state = "redcorner" }, /area/almayer/shipboard/brig/lobby) -"jiw" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"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; @@ -41923,49 +38846,13 @@ icon_state = "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) -"jjm" = ( -/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 = "plate" - }, -/area/almayer/shipboard/brig/execution) -"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) +/area/almayer/hallways/lower/vehiclehangar) "jjS" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -41979,42 +38866,6 @@ icon_state = "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) -"jjX" = ( -/obj/structure/sign/safety/bulkhead_door{ - pixel_x = -16 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"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{ @@ -42031,6 +38882,17 @@ icon_state = "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{ @@ -42087,9 +38949,46 @@ pixel_x = 29 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "plate" + }, +/area/almayer/living/briefing) +"jkN" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) +"jkT" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/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 + }, +/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/living/briefing) +/area/almayer/hallways/lower/repair_bay) "jlc" = ( /turf/open/floor/almayer{ dir = 1; @@ -42107,6 +39006,25 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/containment) +"jlD" = ( +/turf/open/floor/almayer{ + icon_state = "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{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) "jlG" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -42152,10 +39070,6 @@ icon_state = "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) "jmn" = ( /obj/structure/surface/table/almayer, /obj/item/prop/magazine/dirty{ @@ -42169,6 +39083,15 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "jmK" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -42190,48 +39113,64 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) -"jmR" = ( -/obj/structure/ladder/fragile_almayer{ - height = 2; - id = "kitchen" +"jmY" = ( +/turf/open/floor/almayer{ + icon_state = "blue" }, -/obj/structure/sign/safety/ladder{ - pixel_x = 8; - pixel_y = 24 +/area/almayer/command/cichallway) +"jnc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_p) -"jmY" = ( +/area/almayer/hallways/lower/port_midship_hallway) +"jne" = ( /turf/open/floor/almayer{ - icon_state = "blue" + icon_state = "cargo" + }, +/area/almayer/maint/hull/upper/u_f_p) +"jnh" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" }, -/area/almayer/command/cichallway) -"jnk" = ( -/obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) -"jnw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/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 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/item/ashtray/plastic{ + icon_state = "ashtray_full_bl"; + pixel_x = 5; + pixel_y = 1 }, -/obj/structure/sign/safety/bridge{ - pixel_y = 32 +/obj/item/trash/cigbutt{ + pixel_x = -10; + pixel_y = 13 }, -/obj/structure/sign/safety/reception{ - pixel_x = 15; - pixel_y = 32 +/obj/item/trash/cigbutt{ + pixel_x = -6; + pixel_y = -9 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "mono" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/engineering/upper_engineering/port) "jnD" = ( /turf/open/floor/almayer{ dir = 1; @@ -42270,12 +39209,29 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) -"joT" = ( -/obj/structure/largecrate/random/case, +"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 + }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/medical/medical_science) "jpn" = ( /obj/structure/stairs{ icon_state = "ramptop" @@ -42310,23 +39266,33 @@ }, /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/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 }, -/obj/item/storage/box/cups, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" + }, +/area/almayer/squads/req) +"jpW" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "jqP" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "ARES Interior"; @@ -42334,7 +39300,7 @@ plane = -7 }, /obj/effect/step_trigger/ares_alert/core, -/obj/structure/machinery/door/poddoor/almayer/blended/white/open{ +/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open{ closed_layer = 3.2; id = "ARES Emergency"; layer = 3.2; @@ -42347,15 +39313,18 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) -"jqT" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) "jqY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/execution) +"jrc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/midship_hallway) "jre" = ( /obj/structure/closet/secure_closet/cargotech, /obj/item/clothing/accessory/storage/webbing, @@ -42364,6 +39333,10 @@ icon_state = "green" }, /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"; @@ -42374,15 +39347,50 @@ icon_state = "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{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_umbilical) +"jrB" = ( +/obj/structure/bed/chair, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_stern) "jrC" = ( -/obj/structure/machinery/light{ +/obj/structure/machinery/vending/hydronutrients, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) +"jrH" = ( +/obj/structure/pipes/standard/manifold/hidden/supply/no_boom{ dir = 8 }, -/obj/structure/bed/chair/bolted, +/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{ icon_state = "plate" }, -/area/almayer/shipboard/brig/perma) +/area/almayer/maint/hull/upper/u_f_p) "jrM" = ( /obj/structure/machinery/camera/autoname/almayer/containment{ dir = 4 @@ -42392,6 +39400,30 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"jsa" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/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 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) "jss" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -42400,6 +39432,14 @@ icon_state = "bluefull" }, /area/almayer/living/captain_mess) +"jsu" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "jsx" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -42411,6 +39451,17 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"jsA" = ( +/turf/open/floor/almayer{ + icon_state = "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 @@ -42420,35 +39471,56 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"jtj" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 +"jsR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 2 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/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{ + icon_state = "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{ + icon_state = "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 }, /turf/open/floor/almayer{ dir = 4; - icon_state = "greencorner" + icon_state = "emerald" }, -/area/almayer/hallways/starboard_hallway) -"jup" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - layer = 2.5; - pixel_y = 1 +/area/almayer/hallways/lower/port_midship_hallway) +"juj" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "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 @@ -42456,12 +39528,17 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/living/port_emb) -"juF" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 +"juS" = ( +/obj/structure/machinery/gear{ + id = "vehicle_elevator_gears" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/lower/vehiclehangar) "juX" = ( /obj/structure/platform_decoration{ dir = 1 @@ -42482,6 +39559,12 @@ icon_state = "plate" }, /area/almayer/medical/lower_medical_medbay) +"jvc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/mp_bunks) "jvp" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -42507,18 +39590,35 @@ icon_state = "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{ - dir = 4 +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_plates" }, /area/almayer/command/airoom) -"jvI" = ( -/obj/structure/reagent_dispensers/fueltank, +"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{ - icon_state = "plate" + icon_state = "greencorner" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/hallways/lower/port_fore_hallway) "jvM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -42561,19 +39661,41 @@ "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" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/shipboard/panic) +"jwq" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) +"jwr" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "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{ @@ -42581,6 +39703,13 @@ icon_state = "red" }, /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{ @@ -42588,6 +39717,19 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"jxq" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/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 @@ -42603,13 +39745,15 @@ }, /turf/open/floor/plating, /area/almayer/living/bridgebunks) -"jxP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 +"jxX" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/vehiclehangar) +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "jyb" = ( /turf/open/floor/almayer{ dir = 6; @@ -42620,6 +39764,20 @@ /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" @@ -42628,6 +39786,27 @@ icon_state = "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{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/perma) "jzD" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ icon_state = "almayer_pdoor"; @@ -42646,6 +39825,13 @@ icon_state = "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{ @@ -42659,9 +39845,18 @@ icon_state = "plate" }, /area/almayer/command/corporateliaison) -"jAi" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/hallways/vehiclehangar) +"jAj" = ( +/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/lower/starboard_aft_hallway) "jAz" = ( /obj/structure/platform, /obj/structure/platform{ @@ -42703,15 +39898,6 @@ icon_state = "sterile_green_side" }, /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; @@ -42726,15 +39912,21 @@ 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" +/obj/item/tool/stamp/approved{ + pixel_x = -3; + pixel_y = -11 }, -/area/almayer/command/lifeboat) +/turf/open/floor/almayer, +/area/almayer/squads/req) "jCn" = ( /obj/structure/surface/table/almayer, /obj/item/tool/screwdriver, @@ -42746,6 +39938,18 @@ icon_state = "orange" }, /area/almayer/engineering/lower/engine_core) +"jCr" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/s_bow) +"jCx" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "bluecorner" + }, +/area/almayer/hallways/lower/port_midship_hallway) "jCK" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottomleft"; @@ -42756,6 +39960,10 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) +"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 @@ -42773,6 +39981,15 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop/hangar) +"jDz" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/barricade/handrail, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/hallways/lower/port_midship_hallway) "jDO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -42790,54 +40007,48 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) -"jDV" = ( -/obj/effect/projector{ - name = "Almayer_AresDown"; - vector_x = 97; - vector_y = -65 - }, -/obj/structure/platform{ +"jEA" = ( +/obj/structure/disposalpipe/segment{ 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/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 + pixel_y = 32 }, -/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_p) +"jEM" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "jES" = ( /obj/structure/bed/chair/comfy/black{ dir = 8 }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/chief_mp_office) -"jFe" = ( -/obj/structure/prop/holidays/string_lights{ - pixel_y = 27 +"jEV" = ( +/obj/structure/surface/table/almayer, +/obj/item/paper_bin{ + pixel_x = -7 }, -/obj/item/frame/rack, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/obj/item/tool/pen, +/obj/item/tool/pen{ + pixel_y = 3 + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) "jFf" = ( /obj/structure/machinery/shower{ pixel_y = 16 @@ -42852,24 +40063,14 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/medical_science) -"jFg" = ( -/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 = "mono" - }, -/area/almayer/hallways/stern_hallway) -"jFh" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "cargo" +"jFt" = ( +/obj/structure/machinery/light/small, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/hull/lower_hull/l_f_s) +/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{ @@ -42896,6 +40097,16 @@ icon_state = "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{ + dir = 8; + icon_state = "green" + }, +/area/almayer/squads/req) "jFE" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -42903,12 +40114,25 @@ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) -"jFX" = ( -/obj/structure/machinery/door/airlock/almayer/maint, +"jFI" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 4 + }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "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 + }, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/upper/u_m_s) "jFY" = ( /obj/structure/closet/firecloset, /turf/open/floor/almayer{ @@ -42932,16 +40156,18 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "jGR" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -42951,16 +40177,6 @@ icon_state = "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 @@ -42970,21 +40186,21 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) +"jHn" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/almayer{ + icon_state = "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" }, /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 @@ -43001,26 +40217,22 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/morgue) -"jIo" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 +"jIC" = ( +/obj/structure/machinery/computer/working_joe{ + dir = 4; + pixel_x = -17 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/chief_mp_office) -"jIH" = ( -/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{ +/turf/open/floor/almayer{ dir = 8; - name = "ship-grade camera" + icon_state = "orange" }, +/area/almayer/maint/upper/mess) +"jIJ" = ( +/obj/structure/largecrate/random/barrel/green, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/shipboard/brig/execution) +/area/almayer/maint/hull/lower/l_f_s) "jIT" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine/uscm/brig/chief, @@ -43035,18 +40247,6 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"jJe" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/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) "jJk" = ( /obj/structure/machinery/power/apc/almayer{ dir = 4 @@ -43056,18 +40256,6 @@ icon_state = "blue" }, /area/almayer/living/port_emb) -"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; @@ -43090,14 +40278,6 @@ icon_state = "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{ @@ -43123,15 +40303,12 @@ icon_state = "cargo" }, /area/almayer/engineering/port_atmos) -"jKK" = ( -/obj/structure/machinery/light{ - dir = 1 - }, +"jLg" = ( +/obj/structure/closet/emcloset, /turf/open/floor/almayer{ - dir = 5; - icon_state = "green" + icon_state = "cargo" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/port_aft_hallway) "jLj" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -43147,34 +40324,12 @@ icon_state = "kitchen" }, /area/almayer/living/captain_mess) -"jLv" = ( -/obj/structure/machinery/firealarm{ - dir = 1; - pixel_y = -28 - }, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) -"jLK" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "emerald" - }, -/area/almayer/hallways/port_hallway) -"jLM" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, +"jLH" = ( +/obj/structure/largecrate/supply/supplies/mre, /turf/open/floor/almayer{ - dir = 8; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/maint/hull/lower/l_m_p) "jLS" = ( /obj/structure/bed/chair/comfy/charlie, /obj/effect/decal/cleanable/dirt, @@ -43182,30 +40337,18 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"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 +"jMa" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/obj/item/trash/cigbutt/ucigbutt{ - layer = 3.7; - pixel_x = 5; - pixel_y = 8 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_a_s) +/area/almayer/hallways/lower/port_fore_hallway) "jMm" = ( /obj/structure/closet/secure_closet/personal/cabinet{ req_access = null @@ -43230,15 +40373,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"jMt" = ( -/obj/structure/sign/poster{ - pixel_y = -32 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "jMx" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" @@ -43267,15 +40401,6 @@ icon_state = "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, @@ -43328,22 +40453,33 @@ icon_state = "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, +/obj/item/tool/shovel/etool, +/obj/item/tool/wirecutters, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_p) -"jNt" = ( -/obj/structure/surface/rack, -/obj/item/stack/folding_barricade/three, +/area/almayer/maint/hull/lower/l_m_s) +"jNw" = ( +/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{ - icon_state = "plate" + dir = 8; + icon_state = "red" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/lower/port_fore_hallway) "jND" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -43351,17 +40487,14 @@ }, /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) -"jOc" = ( -/obj/structure/closet/secure_closet/personal/cabinet{ - req_access = null; - pixel_y = 17; - pixel_x = 1 - }, -/turf/open/floor/almayer, -/area/almayer/living/numbertwobunks) "jOi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -43409,6 +40542,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/gym) +"jOq" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer{ + icon_state = "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" @@ -43455,18 +40598,30 @@ icon_state = "orange" }, /area/almayer/engineering/lower/engine_core) -"jPf" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) "jPq" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) +"jPu" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "Saferoom Channel"; + pixel_x = 27 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/panic) +"jPx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "jPP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -43479,6 +40634,14 @@ }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "jQt" = ( /turf/open/floor/almayer/research/containment/floor2{ dir = 8 @@ -43493,6 +40656,13 @@ icon_state = "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; @@ -43596,13 +40766,6 @@ icon_state = "green" }, /area/almayer/living/offices) -"jTi" = ( -/obj/item/reagent_container/glass/bucket/janibucket{ - pixel_x = -1; - pixel_y = 13 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "jTj" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" @@ -43612,18 +40775,41 @@ icon_state = "plating" }, /area/almayer/medical/upper_medical) -"jTu" = ( -/obj/structure/sign/safety/nonpress_ag{ - pixel_x = 32 +"jTt" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/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/lower/starboard_midship_hallway) "jTB" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "orangecorner" }, /area/almayer/engineering/lower) +"jTH" = ( +/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/lower/vehiclehangar) "jTI" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ @@ -43631,6 +40817,11 @@ icon_state = "emerald" }, /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{ @@ -43648,6 +40839,10 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) +"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 = "E" @@ -43685,24 +40880,6 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"jUG" = ( -/obj/structure/pipes/standard/simple/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) "jUM" = ( /obj/structure/machinery/camera/autoname/almayer/containment{ dir = 8 @@ -43712,6 +40889,16 @@ icon_state = "dark_sterile" }, /area/almayer/medical/medical_science) +"jUV" = ( +/obj/structure/pipes/standard/simple/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) "jUY" = ( /turf/open/floor/almayer{ icon_state = "silver" @@ -43756,13 +40943,6 @@ icon_state = "test_floor5" }, /area/almayer/command/computerlab) -"jVP" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/execution) "jWb" = ( /obj/structure/machinery/firealarm{ dir = 8; @@ -43781,13 +40961,6 @@ }, /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"; @@ -43797,13 +40970,19 @@ icon_state = "plate" }, /area/almayer/living/offices) -"jWU" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/almayer{ - allow_construction = 0 +"jXc" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 + }, +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "jXd" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -43818,27 +40997,44 @@ name = "Lobby" }, /turf/open/floor/almayer{ - icon_state = "dark_sterile" + icon_state = "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" + icon_state = "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 + }, +/turf/open/floor/plating/almayer{ + allow_construction = 0 }, -/area/almayer/hallways/vehiclehangar) -"jXY" = ( -/obj/structure/largecrate/random/case/double, +/area/almayer/hallways/lower/starboard_fore_hallway) +"jYa" = ( +/obj/structure/machinery/vending/hydroseeds, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/upper/u_a_s) "jYc" = ( /obj/item/bedsheet/blue{ layer = 3.2 @@ -43881,30 +41077,36 @@ icon_state = "blue" }, /area/almayer/living/port_emb) -"jYd" = ( -/obj/structure/machinery/gear{ - id = "vehicle_elevator_gears" - }, +"jYm" = ( +/obj/item/reagent_container/food/snacks/wrapped/chunk, +/obj/structure/surface/rack, /turf/open/floor/almayer{ - icon_state = "mono" + icon_state = "plate" }, -/area/almayer/hallways/vehiclehangar) -"jYR" = ( +/area/almayer/maint/hull/upper/p_stern) +"jYH" = ( +/obj/structure/blocker/invisible_wall, /obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 + icon_state = "E"; + pixel_x = 1 }, -/obj/effect/decal/warning_stripes{ - icon_state = "S"; - layer = 3.3 +/mob/living/silicon/decoy/ship_ai{ + layer = 2.98; + pixel_y = -16 }, -/obj/structure/machinery/camera/autoname/almayer/containment/ares{ - dir = 4 +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"jYM" = ( +/obj/structure/ladder{ + height = 1; + id = "ForePortMaint" }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/command/airoom) +/turf/open/floor/plating/almayer, +/area/almayer/maint/hull/lower/p_bow) "jZd" = ( /obj/structure/pipes/vents/pump{ dir = 8; @@ -43914,6 +41116,22 @@ icon_state = "dark_sterile" }, /area/almayer/medical/operating_room_four) +"jZe" = ( +/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/port_fore_hallway) +"jZo" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_m_p) "jZs" = ( /obj/structure/machinery/light/containment{ dir = 4 @@ -43961,12 +41179,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"jZO" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "jZU" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -43979,29 +41191,26 @@ icon_state = "redfull" }, /area/almayer/medical/upper_medical) -"kag" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 16" - }, -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, +"kac" = ( +/obj/structure/surface/rack, +/obj/item/storage/toolbox/mechanical, +/obj/item/tool/hand_labeler, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/engineering/lower/engine_core) +/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 +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "green" }, +/area/almayer/hallways/upper/fore_hallway) +"kak" = ( +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "silver" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/upper/midship_hallway) "kam" = ( /obj/item/tool/screwdriver{ layer = 2.9; @@ -44015,24 +41224,17 @@ "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 +"kaq" = ( +/obj/effect/projector{ + name = "Almayer_Up2"; + vector_x = -1; + vector_y = 100 }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" + allow_construction = 0; + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/starboard_fore_hallway) "kaB" = ( /obj/structure/machinery/cm_vending/gear/tl{ density = 0; @@ -44044,17 +41246,16 @@ icon_state = "red" }, /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 +"kaE" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 +/turf/open/floor/almayer{ + dir = 8; + icon_state = "cargo_arrow" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/upper/midship_hallway) "kaI" = ( /obj/structure/bed/chair{ dir = 4 @@ -44063,12 +41264,25 @@ icon_state = "bluefull" }, /area/almayer/squads/charlie_delta_shared) -"kaN" = ( -/obj/structure/platform{ - dir = 1 +"kaO" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 8 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/almayer/hallways/upper/midship_hallway) +"kaQ" = ( +/obj/structure/disposalpipe/junction, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "kaS" = ( /obj/structure/bed/chair/office/dark{ dir = 8 @@ -44092,6 +41306,21 @@ icon_state = "test_floor4" }, /area/almayer/squads/bravo) +"kbl" = ( +/obj/structure/stairs{ + dir = 8; + icon_state = "ramptop" + }, +/obj/effect/projector{ + name = "Almayer_Down3"; + vector_x = 1; + vector_y = -102 + }, +/obj/structure/machinery/light, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/upper/fore_hallway) "kbv" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/upper/starboard) @@ -44117,22 +41346,6 @@ icon_state = "kitchen" }, /area/almayer/engineering/upper_engineering) -"kbH" = ( -/obj/effect/step_trigger/teleporter_vector{ - name = "Almayer_AresDown"; - vector_x = 97; - vector_y = -65 - }, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/stairs{ - dir = 1 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) "kbJ" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -44160,6 +41373,17 @@ /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{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_midship_hallway) "kcl" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -44170,6 +41394,27 @@ "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/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{ + closeOtherId = "ciclobby_n"; + name = "\improper Combat Information Center" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/command/cic) "kcA" = ( /obj/structure/machinery/light{ dir = 1 @@ -44179,6 +41424,12 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"kcG" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "kcH" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/living/synthcloset) @@ -44209,26 +41460,12 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"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" - }, +"kdo" = ( +/obj/structure/largecrate/random/barrel/red, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/hull/lower/l_f_s) "kdv" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -44244,44 +41481,38 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) -"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" +"keG" = ( +/obj/structure/machinery/door/airlock/almayer/security{ + dir = 2; + name = "\improper Interrogation Observation" }, -/area/almayer/hallways/stern_hallway) -"kfo" = ( /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 + dir = 1 }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/hallways/upper/port) -"kfv" = ( -/obj/structure/surface/table/almayer, -/obj/item/stack/nanopaste{ - pixel_x = -3; - pixel_y = 14 +/area/almayer/shipboard/brig/interrogation) +"keO" = ( +/obj/structure/largecrate/random/secure, +/obj/effect/decal/warning_stripes{ + icon_state = "E" }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/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) +"kfB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light{ + dir = 8 + }, +/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{ @@ -44300,33 +41531,9 @@ icon_state = "plate" }, /area/almayer/engineering/lower) -"kfP" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"kfR" = ( -/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/hull/upper_hull/u_f_s) "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) "kgp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -44346,14 +41553,6 @@ icon_state = "sterile_green_side" }, /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{ @@ -44366,17 +41565,56 @@ /obj/structure/machinery/door/poddoor/almayer/biohazard/white, /turf/open/floor/plating, /area/almayer/medical/medical_science) -"kgQ" = ( -/obj/structure/surface/rack, -/obj/item/storage/firstaid/adv{ - pixel_x = 6; - pixel_y = 6 +"kgt" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) +"kgD" = ( +/obj/structure/sign/safety/cryo{ + pixel_x = 35 }, -/obj/item/storage/firstaid/regular, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/shipboard/brig/execution) +/area/almayer/maint/hull/lower/l_m_s) +"kgS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "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 + }, +/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 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + layer = 3.3 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/upper/aft_hallway) "khd" = ( /obj/structure/bed/chair{ dir = 4 @@ -44409,45 +41647,31 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"khJ" = ( -/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 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, -/area/almayer/command/airoom) -"khS" = ( -/obj/structure/machinery/light/small{ - dir = 8 +"khI" = ( +/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) -"kif" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" +/area/almayer/maint/hull/lower/l_f_p) +"kil" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, -/area/almayer/hull/upper_hull/u_f_s) -"kij" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 +/obj/item/storage/belt/utility, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) +"kin" = ( +/obj/structure/machinery/light{ + dir = 8 }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "green" + dir = 4; + icon_state = "red" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/upper/port) "kio" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -44460,6 +41684,15 @@ icon_state = "plate" }, /area/almayer/living/port_emb) +"kiy" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "blue" + }, +/area/almayer/hallways/lower/port_midship_hallway) "kiG" = ( /obj/structure/machinery/power/smes/buildable, /obj/structure/machinery/status_display{ @@ -44483,6 +41716,14 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) +"kiR" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_a_s) "kiT" = ( /obj/structure/platform{ dir = 8 @@ -44528,6 +41769,22 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/cryo) +"kjw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) "kjD" = ( /obj/structure/machinery/computer/demo_sim{ dir = 4; @@ -44547,6 +41804,18 @@ icon_state = "orangecorner" }, /area/almayer/engineering/lower/engine_core) +"kjW" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/hallways/lower/port_midship_hallway) +"kjY" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "kkk" = ( /obj/structure/machinery/power/monitor{ name = "Core Power Monitoring" @@ -44586,14 +41855,13 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south2) -"kkE" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 2; - pixel_y = 3 +"kkN" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/manifold/fourway/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/lower/starboard_aft_hallway) "kkW" = ( /obj/structure/surface/table/almayer, /obj/item/book/manual/atmospipes, @@ -44611,6 +41879,10 @@ icon_state = "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 @@ -44620,12 +41892,6 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) -"kmk" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hallways/vehiclehangar) "kmp" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -44645,19 +41911,25 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/north2) -"kmK" = ( -/obj/structure/platform{ - dir = 1 +"kmT" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 }, -/obj/item/tool/mop, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"kmM" = ( -/obj/structure/sink{ - pixel_y = 24 +/turf/open/floor/almayer{ + dir = 10; + icon_state = "green" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/upper/fore_hallway) +"knb" = ( +/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/upper/fore_hallway) "kng" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -44666,6 +41938,19 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) +"knl" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/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{ @@ -44688,36 +41973,27 @@ icon_state = "cargo" }, /area/almayer/lifeboat_pumps/south2) -"knO" = ( -/obj/structure/bed/chair{ - dir = 4 - }, +"knU" = ( /turf/open/floor/almayer{ - dir = 1; + dir = 9; icon_state = "red" }, -/area/almayer/shipboard/brig/main_office) -"koc" = ( -/obj/structure/machinery/status_display{ - pixel_y = -30 +/area/almayer/hallways/upper/aft_hallway) +"kon" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 }, /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 - }, -/obj/item/storage/toolbox/emergency, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 +/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) "koB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -44738,10 +42014,6 @@ icon_state = "plate" }, /area/almayer/squads/bravo) -"kpc" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/almayer/command/airoom) "kph" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ @@ -44751,6 +42023,11 @@ icon_state = "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" @@ -44759,6 +42036,15 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south2) +"kpL" = ( +/obj/structure/sign/safety/life_support{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) "kpQ" = ( /obj/structure/machinery/door_control{ id = "engidorm"; @@ -44771,25 +42057,49 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"kpY" = ( -/obj/structure/surface/table/almayer, -/obj/item/clothing/head/hardhat{ - pixel_y = 15 +"kqa" = ( +/obj/structure/closet, +/obj/item/clothing/glasses/welding, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/item/clothing/head/hardhat/dblue{ - pixel_x = -7; - pixel_y = 10 +/area/almayer/maint/upper/u_a_s) +"kqb" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/obj/item/clothing/head/hardhat{ - pixel_x = 4; - pixel_y = 7 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/item/clothing/head/hardhat/orange{ - pixel_x = 7; - pixel_y = -5 +/area/almayer/maint/hull/lower/l_m_p) +"kqd" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer{ + icon_state = "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 = "E"; + pixel_x = 1 + }, +/obj/structure/machinery/cm_vending/sorted/medical/bolted, +/obj/structure/medical_supply_link/green, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "sterile_green_corner" + }, +/area/almayer/medical/medical_science) "kqt" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; @@ -44826,6 +42136,32 @@ icon_state = "silver" }, /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{ + icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) "kqK" = ( /obj/structure/machinery/conveyor{ dir = 8; @@ -44847,11 +42183,6 @@ icon_state = "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, @@ -44871,6 +42202,17 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/perma) +"krG" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "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" @@ -44880,6 +42222,14 @@ icon_state = "plating" }, /area/almayer/squads/req) +"krO" = ( +/obj/structure/machinery/cm_vending/sorted/medical, +/obj/structure/medical_supply_link, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" + }, +/area/almayer/shipboard/brig/medical) "krS" = ( /obj/structure/machinery/camera/autoname/almayer{ name = "ship-grade camera" @@ -44932,6 +42282,10 @@ }, /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 @@ -44940,48 +42294,58 @@ icon_state = "cargo" }, /area/almayer/squads/bravo) +"ksw" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_stern) "ksN" = ( /turf/open/floor/almayer/uscm/directional{ dir = 6 }, /area/almayer/living/briefing) -"ksP" = ( -/obj/structure/surface/table/almayer, -/obj/item/ashtray/bronze{ - pixel_x = 3; - pixel_y = 5 +"kti" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 2; + pixel_y = 3 }, -/obj/effect/decal/cleanable/ash, -/obj/item/trash/cigbutt/ucigbutt{ - pixel_x = 4; - pixel_y = 13 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) +"ktl" = ( +/obj/structure/machinery/firealarm{ + dir = 1; + pixel_y = -28 }, -/obj/item/trash/cigbutt/ucigbutt{ - pixel_x = -7; - pixel_y = 14 +/turf/open/floor/almayer{ + icon_state = "green" }, -/obj/item/trash/cigbutt/ucigbutt{ - pixel_x = -13; - pixel_y = 8 +/area/almayer/hallways/lower/starboard_midship_hallway) +"ktI" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/obj/item/trash/cigbutt/ucigbutt{ - pixel_x = -6; - pixel_y = 9 +/obj/structure/platform{ + dir = 4 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"ktB" = ( -/obj/structure/largecrate/random/barrel/white, /turf/open/floor/almayer{ - icon_state = "cargo" + dir = 4; + icon_state = "silver" }, -/area/almayer/hull/lower_hull/l_m_s) -"ktP" = ( -/obj/structure/curtain/red, +/area/almayer/hallways/lower/repair_bay) +"ktQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply/no_boom{ + dir = 4 + }, +/turf/open/floor/almayer/aicore/no_build{ + dir = 8; + icon_state = "ai_arrow" + }, +/area/almayer/command/airoom) +"ktR" = ( +/obj/item/trash/crushed_cup, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/maint/hull/lower/l_m_s) "ktX" = ( /turf/open/floor/almayer{ dir = 4; @@ -45025,6 +42389,14 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) +"kuK" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "kvf" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ dir = 2; @@ -45049,6 +42421,16 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) +"kvL" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/cameras/almayer_network{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/warden_office) "kvU" = ( /obj/structure/surface/table/almayer, /turf/open/floor/plating/plating_catwalk, @@ -45073,14 +42455,25 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering) +"kwg" = ( +/obj/structure/bookcase/manuals/medical, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "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 @@ -45089,15 +42482,6 @@ icon_state = "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 @@ -45109,15 +42493,6 @@ icon_state = "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"; @@ -45131,6 +42506,14 @@ icon_state = "dark_sterile" }, /area/almayer/living/port_emb) +"kxe" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/p_bow) "kxo" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/washing_machine{ @@ -45153,6 +42536,33 @@ icon_state = "test_floor4" }, /area/almayer/squads/req) +"kxP" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) +"kya" = ( +/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/maint/upper/u_m_p) "kyh" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -45172,6 +42582,9 @@ icon_state = "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{ @@ -45182,6 +42595,9 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) +"kyP" = ( +/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, @@ -45207,16 +42623,20 @@ icon_state = "red" }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_p) "kzk" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -45235,6 +42655,13 @@ icon_state = "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{ @@ -45293,25 +42720,6 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"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" - }, -/area/almayer/command/airoom) "kAh" = ( /obj/structure/sign/safety/restrictedarea{ pixel_x = -17 @@ -45321,20 +42729,24 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north1) +"kAj" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_aft_hallway) "kAm" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/almayer{ icon_state = "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{ @@ -45350,21 +42762,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south2) -"kBh" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/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 = "test_floor4" - }, -/area/almayer/shipboard/brig/execution) "kBo" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -45382,13 +42779,6 @@ icon_state = "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"; @@ -45405,6 +42795,14 @@ icon_state = "cargo" }, /area/almayer/living/tankerbunks) +"kCd" = ( +/obj/structure/machinery/gear{ + id = "vehicle_elevator_gears" + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/lower/vehiclehangar) "kCi" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/port_missiles) @@ -45414,6 +42812,36 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) "kCm" = ( /obj/structure/sign/safety/fire_haz{ pixel_x = 15; @@ -45426,6 +42854,12 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"kCu" = ( +/obj/structure/machinery/portable_atmospherics/powered/scrubber, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "kCE" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -45441,35 +42875,21 @@ icon_state = "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) -"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{ - pixel_x = 8; - pixel_y = 32 - }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "dark_sterile" }, -/area/almayer/hull/upper_hull/u_a_p) -"kDj" = ( -/obj/structure/bed, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" +/area/almayer/shipboard/brig/medical) +"kDd" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + 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"; @@ -45505,12 +42925,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"kEb" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "kEc" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -45564,15 +42978,25 @@ icon_state = "redfull" }, /area/almayer/living/briefing) -"kEU" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" +"kEA" = ( +/obj/effect/projector{ + name = "Almayer_Down3"; + vector_x = 1; + vector_y = -102 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + allow_construction = 0 }, -/area/almayer/hull/upper_hull/u_f_s) +/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{ @@ -45608,24 +43032,22 @@ icon_state = "plating" }, /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 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) +"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; @@ -45638,6 +43060,12 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/cryo) +"kGw" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_fore_hallway) "kGF" = ( /obj/structure/reagent_dispensers/water_cooler/stacks{ density = 0; @@ -45648,21 +43076,6 @@ icon_state = "emerald" }, /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 @@ -45671,9 +43084,11 @@ icon_state = "containment_corner_variant_2" }, /area/almayer/medical/containment/cell) -"kHa" = ( -/turf/closed/wall/almayer, -/area/almayer/shipboard/brig/surgery) +"kGS" = ( +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/aft_hallway) "kHd" = ( /obj/structure/machinery/computer/arcade, /obj/item/prop/helmetgarb/spacejam_tickets{ @@ -45685,14 +43100,22 @@ icon_state = "green" }, /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) +/obj/structure/surface/table/almayer, +/obj/item/device/camera_film{ + pixel_x = 4; + pixel_y = -2 + }, +/obj/item/device/camera_film, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "kHS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -45702,12 +43125,6 @@ icon_state = "orange" }, /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 @@ -45717,15 +43134,25 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"kIm" = ( -/obj/structure/pipes/vents/pump{ - dir = 4 +"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 = "lattice-simple"; + pixel_x = 16; + pixel_y = -16 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"kIl" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, -/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 @@ -45734,11 +43161,25 @@ icon_state = "cargo" }, /area/almayer/squads/charlie) -"kIV" = ( -/turf/open/floor/almayer{ - icon_state = "plate" +"kJc" = ( +/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/maint/hull/lower/s_bow) +"kJh" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "kJi" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -45751,30 +43192,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"kJn" = ( -/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/lower/engine_core) -"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) "kJH" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -45788,21 +43205,6 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop/hangar) -"kJL" = ( -/obj/structure/machinery/constructable_frame{ - icon_state = "box_2" - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/north1) -"kJV" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "kJW" = ( /obj/structure/machinery/door/window/westright, /obj/structure/machinery/shower{ @@ -45816,15 +43218,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/commandbunks) -"kKb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, +"kJZ" = ( +/obj/structure/largecrate/random/barrel/white, /turf/open/floor/almayer{ - dir = 4; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/maint/hull/lower/l_a_s) "kKk" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -45835,48 +43234,24 @@ icon_state = "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 - }, +"kKB" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_f_s) +/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, +"kKY" = ( /turf/open/floor/almayer{ dir = 4; - icon_state = "plating_striped" + icon_state = "orange" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/hallways/lower/starboard_aft_hallway) "kLc" = ( /obj/structure/machinery/door/airlock/almayer/maint{ req_one_access = null; @@ -45895,30 +43270,46 @@ icon_state = "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/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" }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "red" + icon_state = "test_floor4" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/starboard_fore_hallway) "kLP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/open/floor/almayer{ dir = 8; icon_state = "greencorner" }, /area/almayer/squads/req) +"kMa" = ( +/obj/structure/platform_decoration, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "kMp" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -45931,17 +43322,17 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"kMq" = ( -/obj/structure/sign/poster{ - desc = "It says DRUG."; - icon_state = "poster2"; - pixel_y = 30 +"kMr" = ( +/obj/item/trash/uscm_mre, +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice1"; + pixel_x = 16; + pixel_y = -16 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/maint/hull/lower/l_m_s) "kMH" = ( /obj/structure/machinery/door/window/brigdoor/southright{ id = "Cell 1"; @@ -45965,6 +43356,44 @@ icon_state = "outerhull_dir" }, /area/almayer/engineering/upper_engineering/port) +"kMR" = ( +/obj/effect/spawner/random/toolbox, +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) +"kMV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/starboard) +"kMW" = ( +/obj/structure/closet/secure_closet/personal/cabinet{ + req_access = null + }, +/obj/item/clothing/suit/chef/classic, +/obj/item/tool/kitchen/knife/butcher, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/s_bow) +"kNf" = ( +/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/shipboard/panic) "kNk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -45977,20 +43406,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 @@ -46027,19 +43445,6 @@ /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) -"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 @@ -46077,6 +43482,46 @@ icon_state = "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 = "S" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/p_bow) +"kOW" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/squads/req) +"kPa" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "greencorner" + }, +/area/almayer/hallways/upper/fore_hallway) "kPx" = ( /obj/structure/surface/table/almayer, /obj/item/device/mass_spectrometer, @@ -46155,6 +43600,14 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"kQr" = ( +/obj/structure/surface/table/almayer, +/obj/item/trash/pistachios, +/obj/item/tool/lighter/random{ + pixel_x = 13 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "kQu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -46166,19 +43619,6 @@ allow_construction = 0 }, /area/almayer/shipboard/brig/processing) -"kQz" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - dir = 1; - name = "\improper Brig Maintenance" - }, -/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) "kRd" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -46194,18 +43634,6 @@ icon_state = "cargo" }, /area/almayer/command/lifeboat) -"kRu" = ( -/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/hull/lower_hull/l_m_p) "kRD" = ( /obj/item/reagent_container/glass/bucket/janibucket, /obj/structure/machinery/light{ @@ -46232,14 +43660,54 @@ }, /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, +"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{ + icon_state = "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{ + icon_state = "cargo" + }, +/area/almayer/hallways/lower/repair_bay) +"kSi" = ( +/obj/structure/machinery/cm_vending/gear/intelligence_officer{ + density = 0; + pixel_x = -32 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/almayer/command/computerlab) +"kSn" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/hull/upper/p_bow) "kSv" = ( /obj/item/reagent_container/glass/bucket/janibucket, /turf/open/floor/almayer{ @@ -46258,10 +43726,26 @@ 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) +"kSA" = ( +/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/lower/port_fore_hallway) +"kSC" = ( +/obj/structure/machinery/cm_vending/sorted/medical/bolted, +/obj/structure/medical_supply_link/green, +/turf/open/floor/almayer{ + icon_state = "sterile_green_side" + }, +/area/almayer/medical/lower_medical_medbay) "kSH" = ( /obj/structure/sign/prop1{ pixel_y = 32 @@ -46274,23 +43758,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"kSJ" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, -/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{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "kSU" = ( /obj/structure/transmitter/no_dnd{ name = "Requisition Telephone"; @@ -46303,12 +43770,13 @@ icon_state = "plating" }, /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 @@ -46318,20 +43786,6 @@ icon_state = "tcomms" }, /area/almayer/command/telecomms) -"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{ @@ -46348,6 +43802,16 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) +"kUg" = ( +/obj/structure/machinery/firealarm{ + dir = 4; + pixel_x = 21 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/shipboard/brig/warden_office) "kUh" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{ @@ -46360,42 +43824,45 @@ icon_state = "test_floor4" }, /area/almayer/living/pilotbunks) -"kUt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/surface/rack, -/obj/item/frame/table, -/obj/item/frame/table, -/obj/item/frame/table, +"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{ + dir = 9; + icon_state = "green" }, -/obj/item/storage/bag/trash{ - pixel_x = -3; - pixel_y = -2 +/area/almayer/hallways/lower/starboard_midship_hallway) +"kUJ" = ( +/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 = "cargo" + icon_state = "plate" }, -/area/almayer/engineering/upper_engineering/port) -"kUQ" = ( -/obj/effect/decal/cleanable/blood/oil/streak, -/obj/structure/machinery/constructable_frame, +/area/almayer/maint/upper/u_f_s) +"kUL" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/emcloset, /turf/open/floor/almayer{ - icon_state = "mono" + icon_state = "plate" }, -/area/almayer/lifeboat_pumps/south1) +/area/almayer/maint/hull/upper/u_m_p) "kUR" = ( /turf/open/floor/almayer{ icon_state = "bluefull" @@ -46416,16 +43883,10 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"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" - }, -/area/almayer/hull/lower_hull/l_f_s) +"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"; @@ -46458,6 +43919,14 @@ icon_state = "silvercorner" }, /area/almayer/command/cichallway) +"kWI" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_f_s) "kWN" = ( /obj/structure/sign/poster{ desc = "It says DRUG."; @@ -46490,16 +43959,6 @@ icon_state = "blue" }, /area/almayer/living/pilotbunks) -"kWY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) "kXa" = ( /obj/structure/machinery/cm_vending/clothing/marine/bravo{ density = 0; @@ -46522,12 +43981,6 @@ icon_state = "silver" }, /area/almayer/command/computerlab) -"kXj" = ( -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" - }, -/area/almayer/command/airoom) "kXm" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -46541,6 +43994,15 @@ icon_state = "plating" }, /area/almayer/shipboard/stern_point_defense) +"kXt" = ( +/obj/structure/closet/fireaxecabinet{ + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "kXu" = ( /turf/open/floor/almayer{ dir = 8; @@ -46553,15 +44015,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"kXJ" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/secure_data{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"kXD" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "kXN" = ( /obj/item/clothing/glasses/sunglasses/aviator{ pixel_x = -1; @@ -46571,16 +44030,21 @@ icon_state = "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{ - icon_state = "test_floor4" + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/aft_hallway) +"kYl" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "kYt" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/storage/bible{ @@ -46605,6 +44069,14 @@ icon_state = "plate" }, /area/almayer/living/port_emb) +"kYF" = ( +/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_f_s) "kYL" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -46617,28 +44089,15 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"kYP" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "kYU" = ( -/obj/structure/sign/safety/escapepod{ - pixel_y = 32 - }, -/obj/structure/sign/safety/east{ - pixel_x = 15; - pixel_y = 32 +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, /turf/open/floor/almayer{ dir = 1; - icon_state = "green" + icon_state = "red" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/shipboard/brig/starboard_hallway) "kYV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -46651,18 +44110,12 @@ icon_state = "plate" }, /area/almayer/living/offices) -"kZA" = ( +"kZc" = ( +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/port_umbilical) -"kZH" = ( -/obj/structure/bed/chair{ - dir = 4 + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/maint/upper/u_a_s) "kZN" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ @@ -46700,13 +44153,25 @@ icon_state = "emerald" }, /area/almayer/living/gym) -"lau" = ( -/obj/structure/sign/safety/autoopenclose{ - pixel_x = 7; - pixel_y = 32 +"lat" = ( +/obj/structure/toilet{ + dir = 1 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) +/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 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "laM" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -46762,29 +44227,6 @@ }, /turf/open/floor/plating, /area/almayer/command/cic) -"laY" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/toolbox/mechanical{ - pixel_x = 4; - pixel_y = -3 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"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 @@ -46813,6 +44255,12 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"lbO" = ( +/obj/structure/surface/rack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_p) "lbX" = ( /obj/structure/bed/chair{ dir = 4 @@ -46856,9 +44304,23 @@ }, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/chief_mp_office) +"ldb" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "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 @@ -46877,26 +44339,22 @@ icon_state = "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" }, /area/almayer/living/captain_mess) -"ldN" = ( -/obj/structure/platform{ - dir = 1 - }, +"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{ - icon_state = "plate" + dir = 1; + icon_state = "green" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/hallways/lower/port_midship_hallway) "lea" = ( /obj/structure/sink{ dir = 4; @@ -46933,16 +44391,6 @@ icon_state = "emerald" }, /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, @@ -46953,6 +44401,12 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"leM" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_stern) "leY" = ( /obj/structure/bed/sofa/south/white/left, /turf/open/floor/almayer{ @@ -46968,6 +44422,13 @@ icon_state = "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 @@ -46977,6 +44438,22 @@ icon_state = "blue" }, /area/almayer/living/basketball) +"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 + }, +/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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) "lgt" = ( /obj/structure/sink{ dir = 4; @@ -47026,42 +44503,26 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"lgX" = ( -/obj/structure/sign/safety/storage{ - pixel_y = 32 +"lhj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/safety/bulkhead_door{ + pixel_y = -34 }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) -"lgY" = ( -/obj/structure/machinery/door/airlock/almayer/maint, +/area/almayer/maint/hull/upper/p_bow) +"lhs" = ( /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/lower/starboard_aft_hallway) "lht" = ( /turf/open/floor/almayer{ dir = 6; icon_state = "orange" }, /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"; @@ -47097,19 +44558,6 @@ icon_state = "orange" }, /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) -"lhW" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) "lhX" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -47117,6 +44565,24 @@ }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) +"lib" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) "lid" = ( /obj/structure/machinery/chem_master{ vial_maker = 1 @@ -47125,23 +44591,6 @@ icon_state = "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 @@ -47184,20 +44633,30 @@ icon_state = "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{ + icon_state = "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) -"ljt" = ( -/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) +"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, @@ -47241,6 +44700,16 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "lkd" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -47317,6 +44786,22 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"lla" = ( +/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/maint/upper/u_a_p) +"llo" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) "llK" = ( /obj/structure/platform_decoration{ dir = 4 @@ -47326,22 +44811,25 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"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/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{ + icon_state = "mono" + }, +/area/almayer/medical/upper_medical) "lml" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 1; @@ -47349,6 +44837,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{ @@ -47361,7 +44856,7 @@ /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) "lmA" = ( /obj/structure/flora/pottedplant{ @@ -47371,9 +44866,20 @@ icon_state = "plate" }, /area/almayer/living/numbertwobunks) -"lmK" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/command/securestorage) +"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{ + allow_construction = 0 + }, +/area/almayer/hallways/upper/fore_hallway) "lne" = ( /obj/structure/bed/chair, /turf/open/floor/almayer{ @@ -47432,8 +44938,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{ + icon_state = "ai_floor3" }, /area/almayer/command/airoom) "lok" = ( @@ -47496,13 +45002,9 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"loz" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 - }, +"loE" = ( /turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/upper/starboard) +/area/almayer/maint/hull/upper/u_f_s) "loK" = ( /obj/structure/closet/crate/medical, /obj/item/storage/firstaid/adv, @@ -47562,6 +45064,15 @@ icon_state = "cargo" }, /area/almayer/living/commandbunks) +"lpl" = ( +/obj/structure/machinery/door/airlock/almayer/security{ + dir = 2; + name = "\improper Security Checkpoint" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/panic) "lpt" = ( /turf/open/floor/almayer{ icon_state = "blue" @@ -47575,51 +45086,17 @@ icon_state = "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 - }, +"lql" = ( /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/hallways/lower/starboard_umbilical) "lqF" = ( /turf/open/floor/almayer{ dir = 9; icon_state = "sterile_green_side" }, /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{ @@ -47631,6 +45108,16 @@ icon_state = "emerald" }, /area/almayer/hallways/hangar) +"lqL" = ( +/obj/structure/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/aft_hallway) "lqN" = ( /obj/item/device/assembly/mousetrap/armed, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -47641,35 +45128,24 @@ icon_state = "orange" }, /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) +"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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "lrT" = ( /obj/structure/bed/chair, /turf/open/floor/almayer, @@ -47693,10 +45169,6 @@ }, /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{ @@ -47708,6 +45180,12 @@ icon_state = "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" @@ -47758,14 +45236,41 @@ "ltc" = ( /obj/effect/landmark/late_join/working_joe, /obj/effect/landmark/start/working_joe, -/turf/open/floor/plating/plating_catwalk, +/turf/open/floor/plating/plating_catwalk/aicore, /area/almayer/command/airoom) +"ltm" = ( +/obj/structure/bed/chair/comfy/orange, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "lto" = ( /obj/structure/machinery/iv_drip, /turf/open/floor/almayer{ icon_state = "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{ + icon_state = "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, @@ -47779,31 +45284,27 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"ltK" = ( -/obj/structure/window/framed/almayer, -/obj/structure/curtain/open/shower{ - name = "hypersleep curtain" - }, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_p) -"ltU" = ( -/obj/structure/bed/chair{ - dir = 8 +"ltO" = ( +/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 = "plate" }, -/area/almayer/command/combat_correspondent) -"luk" = ( -/obj/structure/machinery/light/small{ +/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) +/area/almayer/command/combat_correspondent) "lul" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/almayer/command/reinforced{ @@ -47815,28 +45316,12 @@ icon_state = "test_floor4" }, /area/almayer/living/commandbunks) -"luu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/storage{ - pixel_x = 8; +"luE" = ( +/obj/structure/sign/poster{ pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) -"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) +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "luS" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/cardboard{ @@ -47910,24 +45395,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"lwi" = ( -/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{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_a_p) -"lwm" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "lwp" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -47950,6 +45417,12 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"lwG" = ( +/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_umbilical) "lwJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -47958,12 +45431,20 @@ icon_state = "emeraldfull" }, /area/almayer/squads/charlie) -"lwK" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +"lwY" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Port Viewing Room" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_f_p) +"lxd" = ( +/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_umbilical) "lxo" = ( /obj/structure/sign/safety/hazard{ pixel_x = -17; @@ -47977,26 +45458,12 @@ icon_state = "plate" }, /area/almayer/living/auxiliary_officer_office) -"lxy" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/main_office) "lxE" = ( /obj/structure/machinery/cm_vending/clothing/commanding_officer, /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/living/commandbunks) -"lxT" = ( -/obj/structure/machinery/constructable_frame, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/south2) "lxW" = ( /obj/structure/sign/prop2{ pixel_y = 29 @@ -48005,14 +45472,23 @@ icon_state = "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 @@ -48022,12 +45498,37 @@ icon_state = "green" }, /area/almayer/squads/req) +"lym" = ( +/obj/structure/machinery/vending/cigarette, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_p) +"lyq" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "emerald" + }, +/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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "lyE" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer{ @@ -48035,6 +45536,15 @@ icon_state = "silvercorner" }, /area/almayer/command/computerlab) +"lyP" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer{ + icon_state = "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; @@ -48061,24 +45571,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"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 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "lzq" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -48086,6 +45578,21 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) +"lzt" = ( +/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" + }, +/area/almayer/maint/upper/u_m_s) "lzA" = ( /obj/structure/machinery/sleep_console{ dir = 8 @@ -48094,21 +45601,19 @@ icon_state = "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 +"lAa" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/lightreplacer{ + pixel_x = 4; + pixel_y = 4 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"lzY" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -25 +/obj/item/storage/toolbox/emergency, +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/chief_mp_office) +/area/almayer/maint/hull/lower/l_m_p) "lAl" = ( /turf/open/floor/almayer{ dir = 4; @@ -48133,28 +45638,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; @@ -48167,18 +45650,22 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"lAU" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/stern) +"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" }, /area/almayer/engineering/laundry) +"lBl" = ( +/obj/structure/sink{ + pixel_y = 24 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/lower/s_bow) "lBv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -48191,35 +45678,25 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"lBz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"lCg" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/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, -/obj/item/tool/pen, +/obj/effect/step_trigger/clone_cleaner, /turf/open/floor/almayer{ dir = 8; icon_state = "green" }, -/area/almayer/squads/req) -"lBR" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +/area/almayer/hallways/upper/fore_hallway) +"lCm" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"lCp" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/main_office) +/area/almayer/maint/hull/upper/s_bow) "lCr" = ( /turf/open/floor/almayer{ icon_state = "redfull" @@ -48248,20 +45725,28 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"lDg" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddernorthwest"; - name = "\improper North West Ladders Shutters" +"lDa" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29" }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"lDk" = ( +/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 }, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/step_trigger/clone_cleaner, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 1; + icon_state = "green" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/port_midship_hallway) "lDn" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -48269,15 +45754,17 @@ }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"lDJ" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" +"lDA" = ( +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"lDH" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "lDL" = ( /obj/structure/machinery/light{ dir = 4 @@ -48285,6 +45772,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ dir = 8; icon_state = "plating_striped" @@ -48308,6 +45796,15 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) +"lDT" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) "lDV" = ( /obj/effect/landmark/start/marine/medic/bravo, /obj/effect/landmark/late_join/bravo, @@ -48360,12 +45857,11 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) -"lFb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"lEV" = ( +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/hallways/lower/vehiclehangar) "lFe" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -48384,12 +45880,19 @@ icon_state = "blue" }, /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{ + dir = 4; + icon_state = "ai_silver" + }, +/area/almayer/command/airoom) "lFn" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" @@ -48402,6 +45905,16 @@ "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{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/maint/upper/mess) "lFt" = ( /obj/structure/machinery/portable_atmospherics/powered/pump, /obj/structure/sign/safety/maint{ @@ -48413,6 +45926,17 @@ icon_state = "cargo" }, /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, @@ -48424,50 +45948,25 @@ icon_state = "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) -"lFJ" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - name = "\improper Brig Prisoner Yard"; - closeOtherId = "brigcells" - }, -/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{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/processing) "lFK" = ( /obj/structure/machinery/light{ dir = 8 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south2) +"lFL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "lGg" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, /turf/open/floor/almayer{ @@ -48476,67 +45975,33 @@ }, /area/almayer/engineering/lower/workshop/hangar) "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 - }, -/obj/structure/filingcabinet{ - density = 0; - pixel_x = 8; - pixel_y = 18 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +/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" }, /area/almayer/living/grunt_rnr) +"lHB" = ( +/obj/structure/prop/almayer/computers/sensor_computer3, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "lHG" = ( /obj/structure/machinery/door/airlock/almayer/maint{ access_modified = 1; @@ -48551,21 +46016,9 @@ icon_state = "test_floor4" }, /area/almayer/living/grunt_rnr) -"lIh" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"lIl" = ( -/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) +"lIj" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/upper/mess) "lIp" = ( /obj/structure/bed/chair/comfy/beige{ dir = 1 @@ -48575,15 +46028,20 @@ }, /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 }, +/obj/structure/machinery/door/poddoor/almayer{ + dir = 4; + id = "hangarentrancenorth"; + name = "\improper North Hangar Podlock" + }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/hallways/lower/starboard_fore_hallway) "lII" = ( /obj/structure/bed/chair/office/dark{ dir = 1 @@ -48592,26 +46050,29 @@ icon_state = "mono" }, /area/almayer/engineering/port_atmos) +"lIQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) "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" +"lIY" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 }, -/area/almayer/hull/upper_hull/u_f_p) -"lJg" = ( -/obj/structure/largecrate/random/barrel/white, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "red" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/hallways/upper/starboard) "lJu" = ( /obj/structure/barricade/metal{ dir = 1 @@ -48675,6 +46136,12 @@ icon_state = "dark_sterile" }, /area/almayer/shipboard/brig/cells) +"lJM" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/s_bow) "lJO" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -48710,15 +46177,6 @@ icon_state = "test_floor4" }, /area/almayer/squads/alpha_bravo_shared) -"lKk" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "lKM" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer, @@ -48730,10 +46188,35 @@ }, /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{ + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/port_fore_hallway) +"lLt" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/midship_hallway) "lLC" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/squads/charlie) +"lLO" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) "lLS" = ( /obj/structure/sign/safety/galley{ pixel_x = 32 @@ -48743,10 +46226,6 @@ icon_state = "silver" }, /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{ dir = 5; @@ -48775,6 +46254,10 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, /turf/open/floor/almayer{ dir = 8; icon_state = "plating_striped" @@ -48786,6 +46269,40 @@ icon_state = "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 + }, +/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" + }, +/turf/open/floor/almayer{ + icon_state = "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; @@ -48795,12 +46312,12 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south2) -"lNl" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" +"lNk" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/area/almayer/hallways/stern_hallway) +/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, @@ -48816,26 +46333,30 @@ icon_state = "plate" }, /area/almayer/squads/charlie) -"lNy" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" +"lNL" = ( +/obj/item/tool/mop{ + pixel_x = -6; + pixel_y = 24 }, +/obj/item/reagent_container/glass/bucket, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) -"lNN" = ( -/obj/structure/closet/secure_closet/medical2, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, -/area/almayer/shipboard/brig/surgery) +/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 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/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, @@ -48855,16 +46376,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_two) -"lOI" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/pipes/vents/pump, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "lON" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -48928,6 +46439,12 @@ icon_state = "silver" }, /area/almayer/command/securestorage) +"lPY" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) "lQa" = ( /obj/structure/machinery/light{ dir = 8 @@ -48940,37 +46457,32 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"lQj" = ( -/obj/structure/machinery/door_control{ - 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 +"lQf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hull/lower_hull/l_f_s) -"lQu" = ( -/obj/structure/bed/stool, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/maint/hull/lower/l_f_p) "lQz" = ( /obj/structure/machinery/vending/coffee, /turf/open/floor/almayer{ icon_state = "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, @@ -48989,24 +46501,12 @@ icon_state = "sterile_green_corner" }, /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) -"lRe" = ( -/obj/structure/pipes/vents/pump, -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, +"lRh" = ( /turf/open/floor/almayer{ dir = 1; - icon_state = "sterile_green_side" + icon_state = "bluecorner" }, -/area/almayer/shipboard/brig/surgery) +/area/almayer/hallways/upper/midship_hallway) "lRs" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -49020,6 +46520,10 @@ icon_state = "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" @@ -49034,13 +46538,6 @@ /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, @@ -49073,12 +46570,38 @@ icon_state = "red" }, /area/almayer/shipboard/brig/cells) -"lSD" = ( -/obj/structure/closet/firecloset, +"lSJ" = ( +/obj/structure/machinery/light/small, +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_p) +/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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_f_p) +"lSX" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "lTt" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -49098,35 +46621,24 @@ }, /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) -"lUm" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ - name = "\improper Brig Cells"; - closeOtherId = "briglobby" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ +"lUA" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 5; + icon_state = "red" }, -/area/almayer/shipboard/brig/processing) -"lUz" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"lUA" = ( -/obj/structure/surface/table/almayer, -/obj/item/weapon/gun/rifle/l42a{ - pixel_y = 6 +/area/almayer/hallways/lower/port_fore_hallway) +"lUQ" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, -/obj/item/weapon/gun/rifle/l42a, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/maint/hull/upper/u_a_s) "lVl" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, /turf/open/floor/almayer, @@ -49135,6 +46647,17 @@ /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "lVS" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ dir = 4; @@ -49145,6 +46668,17 @@ icon_state = "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{ @@ -49166,12 +46700,12 @@ icon_state = "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{ @@ -49179,6 +46713,33 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"lWt" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_s) +"lWO" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/mess) +"lWS" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_s) +"lWY" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "lXb" = ( /obj/structure/disposalpipe/segment{ dir = 8 @@ -49198,15 +46759,12 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) -"lXF" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/sign/safety/cryo{ - pixel_x = 36 - }, +"lXl" = ( /turf/open/floor/almayer{ - icon_state = "plate" + dir = 1; + icon_state = "blue" }, -/area/almayer/hull/lower_hull) +/area/almayer/hallways/upper/midship_hallway) "lXO" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, @@ -49221,11 +46779,19 @@ icon_state = "green" }, /area/almayer/living/offices) -"lYi" = ( +"lXR" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/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; @@ -49235,17 +46801,14 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"lYu" = ( -/obj/item/tool/wet_sign, -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, +"lYt" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) -"lYA" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/maint/hull/upper/u_a_p) "lYL" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -49263,6 +46826,27 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"lYS" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/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{ @@ -49285,54 +46869,49 @@ icon_state = "plate" }, /area/almayer/command/cic) -"lZB" = ( -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 8; - pixel_y = 32 +"lZI" = ( +/obj/structure/prop/invuln/lattice_prop{ + dir = 1; + icon_state = "lattice-simple"; + pixel_x = -16; + pixel_y = 17 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_p) -"lZO" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" +/area/almayer/maint/hull/lower/l_m_p) +"lZJ" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/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/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/lower/cryo_cells) "lZZ" = ( /obj/structure/machinery/autolathe/medilathe/full, /turf/open/floor/almayer{ icon_state = "test_floor4" }, /area/almayer/medical/hydroponics) -"mai" = ( -/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{ - icon_state = "sterile_green_corner" - }, -/area/almayer/medical/lower_medical_medbay) -"maw" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 +"may" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21"; + pixel_y = 16 }, -/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/surface/table/almayer, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 9; + icon_state = "red" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/shipboard/brig/starboard_hallway) "maI" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -49341,6 +46920,10 @@ icon_state = "sterile_green_side" }, /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, @@ -49379,11 +46962,16 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"mce" = ( +"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{ - icon_state = "greencorner" + dir = 1; + icon_state = "redcorner" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/shipboard/brig/starboard_hallway) "mcL" = ( /obj/structure/machinery/vending/snack, /obj/structure/sign/safety/maint{ @@ -49393,13 +46981,6 @@ icon_state = "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, @@ -49408,12 +46989,31 @@ }, /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" }, /area/almayer/squads/alpha) +"mdC" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "emerald" + }, +/area/almayer/hallways/lower/port_midship_hallway) "mdW" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/effect/decal/warning_stripes{ @@ -49426,10 +47026,30 @@ }, /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{ + dir = 6; + icon_state = "red" + }, +/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 @@ -49444,63 +47064,46 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"meJ" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 +"meE" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 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" + icon_state = "plate" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/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" }, -/area/almayer/hull/lower_hull/l_f_p) -"meS" = ( -/obj/structure/sign/safety/water{ - pixel_x = -17 +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_a_s) +/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" + pixel_x = -17 }, -/obj/structure/sign/safety/ladder{ - pixel_x = 8; - pixel_y = -32 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/maint/upper/u_f_s) "mfM" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/map_item, @@ -49514,12 +47117,25 @@ icon_state = "silver" }, /area/almayer/living/briefing) +"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{ allow_construction = 0; icon_state = "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{ @@ -49565,6 +47181,14 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/charlie_delta_shared) +"mgX" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "mha" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -49582,16 +47206,6 @@ icon_state = "orange" }, /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" @@ -49635,6 +47249,20 @@ icon_state = "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{ + dir = 1; + icon_state = "sterile_green_corner" + }, +/area/almayer/shipboard/brig/medical) "miE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -49645,12 +47273,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; @@ -49665,22 +47287,29 @@ icon_state = "redfull" }, /area/almayer/command/cic) -"mji" = ( -/obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +"mjs" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + layer = 2.5 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_bow) "mjt" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer{ allow_construction = 0 }, /area/almayer/shipboard/brig/processing) -"mjR" = ( -/obj/structure/largecrate/random/secure, +"mjy" = ( +/obj/structure/machinery/conveyor_switch{ + id = "lower_garbage" + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/hull/lower/l_a_p) "mjS" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -49765,16 +47394,30 @@ icon_state = "test_floor4" }, /area/almayer/engineering/lower/workshop/hangar) -"mko" = ( -/obj/item/tool/weldpack{ - pixel_y = 15 +"mkw" = ( +/obj/structure/sign/safety/security{ + pixel_y = -32 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 15; + pixel_y = -32 }, -/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) +/area/almayer/hallways/lower/starboard_fore_hallway) +"mkx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) +"mkF" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_bow) "mkG" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -49840,27 +47483,13 @@ 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" }, /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 @@ -49892,12 +47521,21 @@ icon_state = "test_floor4" }, /area/almayer/command/corporateliaison) -"mmC" = ( -/obj/structure/closet/secure_closet/engineering_welding{ - req_one_access_txt = "7;23;27" +"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{ + dir = 8; + icon_state = "silver" + }, +/area/almayer/command/computerlab) "mmN" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 @@ -49910,48 +47548,36 @@ /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 + dir = 5 }, -/obj/structure/disposalpipe/segment{ - dir = 8 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_umbilical) +"mnf" = ( +/turf/open/floor/almayer{ + dir = 6; + icon_state = "silver" }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/plating, -/area/almayer/squads/req) +/area/almayer/hallways/upper/midship_hallway) "mng" = ( /turf/open/floor/almayer{ icon_state = "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 - }, +"mnB" = ( +/obj/structure/surface/rack, +/obj/item/clothing/glasses/meson, /turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" + icon_state = "red" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/maint/upper/u_a_p) "mnI" = ( /turf/open/floor/almayer{ icon_state = "blue" @@ -49982,10 +47608,12 @@ icon_state = "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{ + icon_state = "cargo" + }, +/area/almayer/maint/hull/upper/u_f_p) "mor" = ( /obj/structure/machinery/light{ dir = 8 @@ -50005,19 +47633,33 @@ "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{ + icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "moM" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ @@ -50029,10 +47671,18 @@ icon_state = "silver" }, /area/almayer/living/briefing) -"moY" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/almayer, -/area/almayer/squads/req) +"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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) "mpn" = ( /obj/structure/pipes/vents/pump, /obj/structure/surface/table/almayer, @@ -50046,6 +47696,15 @@ icon_state = "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{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_umbilical) "mqb" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -50065,15 +47724,28 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"mqo" = ( -/obj/structure/bed/chair/bolted{ - dir = 1 +"mqh" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/machinery/cm_vending/sorted/medical/marinemed, +/obj/structure/medical_supply_link, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/command/cic) +"mqt" = ( +/turf/open/floor/almayer{ + icon_state = "bluecorner" }, +/area/almayer/hallways/lower/port_midship_hallway) +"mqB" = ( +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ dir = 8; - icon_state = "red" + icon_state = "orange" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/lower/port_umbilical) "mqK" = ( /obj/structure/machinery/cm_vending/gear/spec, /obj/structure/sign/safety/hazard{ @@ -50096,33 +47768,12 @@ icon_state = "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 @@ -50147,6 +47798,19 @@ icon_state = "green" }, /area/almayer/squads/req) +"mrO" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "orange" + }, +/area/almayer/hallways/upper/midship_hallway) "msg" = ( /obj/structure/machinery/light, /obj/structure/sign/safety/waterhazard{ @@ -50195,16 +47859,28 @@ icon_state = "orange" }, /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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_m_s) "msP" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ icon_state = "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{ + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/north2) "msZ" = ( /obj/structure/barricade/handrail{ dir = 8 @@ -50237,17 +47913,6 @@ icon_state = "orange" }, /area/almayer/squads/bravo) -"mts" = ( -/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) "mtD" = ( /obj/structure/machinery/status_display{ pixel_x = 16; @@ -50258,19 +47923,6 @@ icon_state = "red" }, /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{ @@ -50286,6 +47938,12 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) +"mua" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) "mub" = ( /obj/structure/barricade/handrail{ dir = 4 @@ -50340,6 +47998,24 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) +"muW" = ( +/turf/open/floor/almayer{ + icon_state = "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." + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "mvl" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -50353,36 +48029,6 @@ icon_state = "bluecorner" }, /area/almayer/squads/delta) -"mvE" = ( -/obj/item/bedsheet/brown{ - pixel_y = 13 - }, -/obj/structure/window/reinforced{ - dir = 8; - layer = 3.3; - pixel_y = 4 - }, -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = -2; - pixel_y = 4 - }, -/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{ - dir = 9; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "mvI" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -50396,15 +48042,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"mvR" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" +"mww" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/shipboard/brig/surgery) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) "mwA" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -50426,6 +48069,11 @@ icon_state = "test_floor4" }, /area/almayer/medical/lower_medical_medbay) +"mwP" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_stern) "mwQ" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 @@ -50446,26 +48094,18 @@ /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 - }, -/obj/structure/sign/safety/autoopenclose{ - pixel_y = 32 +"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 }, -/obj/structure/sign/safety/water{ - pixel_x = 15; - pixel_y = 32 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/upper/midship_hallway) "mxT" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, @@ -50473,6 +48113,13 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) +"mxV" = ( +/obj/structure/sign/safety/autoopenclose{ + pixel_x = 7; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) "myl" = ( /obj/structure/machinery/power/apc/almayer/hardened{ cell_type = /obj/item/cell/hyper; @@ -50486,13 +48133,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) -"myn" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/power/apc/almayer, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "myo" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/head/soft/purple, @@ -50501,14 +48141,6 @@ icon_state = "orange" }, /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 @@ -50533,7 +48165,7 @@ "mza" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 2; - id = "firearm_storage_armory"; + id = "bot_armory"; name = "\improper Armory Shutters" }, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -50557,29 +48189,17 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/armory) -"mzb" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/bed/chair{ - 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_f_s) "mzg" = ( /turf/open/floor/almayer{ icon_state = "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{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/fore_hallway) "mzq" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -50604,6 +48224,10 @@ }, /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, @@ -50612,13 +48236,26 @@ /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) -"mzR" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = -32 +"mzI" = ( +/obj/structure/largecrate/random/barrel/white, +/obj/structure/sign/safety/storage{ + pixel_x = -17 }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) +"mzP" = ( +/obj/structure/stairs{ + dir = 1 + }, +/obj/effect/step_trigger/teleporter_vector{ + name = "Almayer_AresDown2"; + vector_x = 102; + vector_y = -61 + }, +/turf/open/floor/plating, +/area/almayer/command/airoom) "mzS" = ( /turf/open/floor/almayer{ dir = 9; @@ -50631,11 +48268,29 @@ icon_state = "blue" }, /area/almayer/living/port_emb) +"mAe" = ( +/obj/structure/window/framed/almayer/aicore/hull/black/hijack_bustable, +/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) +"mAs" = ( +/obj/effect/step_trigger/teleporter_vector{ + name = "Almayer_AresDown"; + vector_x = 96; + vector_y = -65 + }, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/stairs{ + dir = 1 + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "mAF" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -50656,18 +48311,24 @@ icon_state = "cargo" }, /area/almayer/squads/delta) -"mBb" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" +"mAY" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) +"mBa" = ( +/obj/structure/machinery/light{ + dir = 4 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 4; + icon_state = "red" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/lower/starboard_midship_hallway) "mBc" = ( /obj/structure/bed/chair{ dir = 8 @@ -50689,30 +48350,37 @@ }, /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"; - closeOtherId = "astroladder_n" +/obj/item/tool/surgery/bonegel/empty{ + pixel_x = -8; + pixel_y = 13 + }, +/obj/item/tool/surgery/bonegel/empty{ + layer = 3.01; + pixel_x = -5; + pixel_y = 19 + }, +/obj/item/storage/box/gloves{ + layer = 3.2; + pixel_x = -5; + pixel_y = 2 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 1; + icon_state = "sterile_green_corner" }, -/area/almayer/shipboard/navigation) +/area/almayer/medical/lower_medical_medbay) "mBx" = ( /obj/structure/machinery/firealarm{ dir = 4; @@ -50723,19 +48391,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"mBA" = ( -/obj/structure/surface/table/almayer, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21"; - pixel_y = 11 - }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "mBJ" = ( /obj/structure/stairs{ icon_state = "ramptop" @@ -50752,6 +48407,11 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) +"mCg" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_p) "mCo" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -50759,6 +48419,36 @@ }, /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{ + icon_state = "test_floor4" + }, +/area/almayer/command/airoom) +"mCE" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/almayer{ + icon_state = "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; @@ -50830,22 +48520,40 @@ icon_state = "test_floor4" }, /area/almayer/living/commandbunks) -"mEb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +"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{ + dir = 4; + icon_state = "ai_silver" + }, +/area/almayer/command/airoom) "mEE" = ( /obj/structure/platform{ dir = 4; @@ -50882,6 +48590,16 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"mFL" = ( +/obj/effect/projector{ + name = "Almayer_Up1"; + vector_x = -19; + vector_y = 98 + }, +/turf/open/floor/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "mFN" = ( /obj/effect/step_trigger/ares_alert/mainframe, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -50889,7 +48607,7 @@ name = "\improper ARES Mainframe Shutters"; plane = -7 }, -/obj/structure/machinery/door/poddoor/almayer/blended/white/open{ +/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open{ closed_layer = 3.2; id = "ARES Emergency"; layer = 3.2; @@ -50927,6 +48645,14 @@ icon_state = "orange" }, /area/almayer/engineering/lower) +"mFQ" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/maint/hull/lower/s_bow) +"mGb" = ( +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/fore_hallway) "mGe" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, @@ -50939,9 +48665,10 @@ /area/almayer/command/securestorage) "mGL" = ( /turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "orange" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/upper/midship_hallway) "mGT" = ( /obj/structure/machinery/status_display{ pixel_y = 30 @@ -50966,16 +48693,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"mHm" = ( -/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/port_hallway) "mHo" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/washing_machine{ @@ -51007,19 +48724,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/chief_mp_office) -"mHA" = ( -/obj/structure/closet/secure_closet/surgical{ - pixel_x = -30 - }, -/obj/structure/machinery/power/apc/almayer, -/obj/structure/sign/safety/rewire{ - pixel_y = -38 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" - }, -/area/almayer/shipboard/brig/surgery) "mHD" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -51032,12 +48736,17 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "mHO" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, @@ -51045,13 +48754,45 @@ icon_state = "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{ + dir = 8; + icon_state = "orange" + }, +/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{ + icon_state = "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; @@ -51075,26 +48816,12 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"mIB" = ( -/obj/structure/machinery/cm_vending/sorted/medical/marinemed, -/obj/structure/sign/safety/medical{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "mIJ" = ( -/obj/structure/sign/safety/ladder{ - pixel_x = -16 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 +/obj/structure/pipes/standard/simple/hidden/supply/no_boom{ + dir = 6 }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "mIP" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/warning_stripes{ @@ -51105,13 +48832,16 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/upper_engineering/port) -"mIW" = ( -/obj/structure/machinery/light, +"mIR" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 + }, /turf/open/floor/almayer{ - dir = 6; + dir = 1; icon_state = "blue" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/upper/midship_hallway) "mJa" = ( /obj/structure/closet/crate/trashcart, /obj/item/trash/boonie, @@ -51165,6 +48895,9 @@ icon_state = "blue" }, /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; @@ -51191,10 +48924,6 @@ icon_state = "red" }, /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) "mKi" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -51210,6 +48939,17 @@ "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "mKw" = ( /obj/structure/disposalpipe/junction{ dir = 1 @@ -51275,14 +49015,10 @@ icon_state = "plate" }, /area/almayer/living/port_emb) -"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) +/area/almayer/living/pilotbunks) "mLe" = ( /obj/structure/pipes/vents/pump{ dir = 8 @@ -51296,14 +49032,9 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"mLu" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/port_umbilical) +"mLg" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_umbilical) "mLz" = ( /obj/structure/machinery/door_control{ id = "pobunk1"; @@ -51314,9 +49045,6 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) -"mLE" = ( -/turf/open/floor/plating, -/area/almayer/command/airoom) "mLF" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -51330,12 +49058,17 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) -"mLJ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +"mLN" = ( +/obj/structure/machinery/light/small, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) +/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_p) "mLR" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -51345,12 +49078,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, @@ -51366,26 +49093,31 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"mMZ" = ( -/obj/structure/disposalpipe/junction, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"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{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "mNI" = ( /obj/structure/machinery/door/window/westleft{ dir = 2 @@ -51403,41 +49135,12 @@ icon_state = "red" }, /area/almayer/shipboard/brig/perma) -"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) "mNX" = ( /turf/open/floor/almayer_hull{ dir = 4; icon_state = "outerhull_dir" }, /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; @@ -51461,22 +49164,27 @@ "mOi" = ( /turf/closed/wall/almayer/outer, /area/almayer/command/airoom) -"mOL" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = 32 +"mOE" = ( +/obj/structure/sign/safety/water{ + pixel_x = -17 }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) -"mOU" = ( -/obj/structure/machinery/light/small{ - dir = 4 +/area/almayer/maint/hull/upper/u_a_s) +"mOZ" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/hallways/upper/midship_hallway) +"mPc" = ( +/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_p) +/area/almayer/maint/hull/lower/l_a_p) "mPf" = ( /turf/open/floor/almayer/uscm/directional{ dir = 6 @@ -51509,6 +49217,15 @@ }, /turf/open/floor/almayer, /area/almayer/command/cic) +"mPw" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"mPM" = ( +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_midship_hallway) "mPR" = ( /obj/structure/machinery/light{ dir = 8 @@ -51518,11 +49235,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"mPX" = ( -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "mQc" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -51532,6 +49244,14 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"mQd" = ( +/obj/structure/surface/rack, +/obj/item/device/radio, +/obj/item/tool/weldpack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "mQn" = ( /obj/structure/sign/safety/rad_shield{ pixel_x = 32 @@ -51541,37 +49261,29 @@ icon_state = "orange" }, /area/almayer/engineering/lower/engine_core) +"mQx" = ( +/obj/effect/projector{ + name = "Almayer_Up3"; + vector_x = -1; + vector_y = 102 + }, +/turf/open/floor/almayer{ + allow_construction = 0 + }, +/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" - }, +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - dir = 4; - icon_state = "green" + icon_state = "test_floor4" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/hull/lower/l_m_s) "mRn" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "ARES Interior"; @@ -51579,7 +49291,7 @@ plane = -7 }, /obj/effect/step_trigger/ares_alert/core, -/obj/structure/machinery/door/poddoor/almayer/blended/white/open{ +/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open{ closed_layer = 3.2; id = "ARES Emergency"; layer = 3.2; @@ -51600,17 +49312,6 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) -"mRp" = ( -/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/hull/upper_hull/u_f_s) "mRq" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, @@ -51630,6 +49331,32 @@ icon_state = "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{ + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) +"mRI" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_a_s) +"mRJ" = ( +/turf/open/floor/almayer{ + dir = 9; + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) "mRQ" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" @@ -51646,16 +49373,9 @@ icon_state = "red" }, /area/almayer/command/lifeboat) -"mRS" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/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) +"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) @@ -51665,6 +49385,25 @@ }, /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{ + icon_state = "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 @@ -51691,36 +49430,19 @@ icon_state = "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" }, /area/almayer/squads/charlie_delta_shared) -"mTb" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "mTc" = ( /obj/structure/surface/table/woodentable/fancy, /obj/structure/machinery/computer/emails{ @@ -51748,12 +49470,6 @@ icon_state = "red" }, /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; @@ -51768,27 +49484,39 @@ icon_state = "cargo_arrow" }, /area/almayer/medical/hydroponics) -"mTN" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) -"mUa" = ( -/obj/structure/disposalpipe/junction{ +"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/machinery/camera/autoname/almayer/containment/ares{ + dir = 8; + pixel_y = 2; + c_tag = "AI - Main Corridor"; + autoname = 0 + }, +/turf/open/floor/almayer/aicore/no_build{ dir = 4; - icon_state = "pipe-j2" + icon_state = "ai_silver" }, -/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" +/area/almayer/command/airoom) +"mTL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/obj/effect/landmark/yautja_teleport, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) +/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"; @@ -51804,33 +49532,27 @@ icon_state = "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 +"mUE" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/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{ + icon_state = "cargo" }, -/area/almayer/command/airoom) -"mUQ" = ( -/obj/structure/largecrate/random/barrel/red, +/area/almayer/maint/hull/lower/l_m_s) +"mVh" = ( /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/maint/hull/lower/p_bow) "mVr" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -51841,6 +49563,17 @@ icon_state = "plating" }, /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 = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "mVE" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -51863,6 +49596,21 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"mVF" = ( +/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" + }, +/area/almayer/maint/upper/mess) "mWs" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -51874,14 +49622,6 @@ icon_state = "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{ @@ -51900,6 +49640,20 @@ icon_state = "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{ + allow_construction = 0 + }, +/area/almayer/hallways/upper/fore_hallway) "mWQ" = ( /obj/structure/flora/pottedplant{ desc = "It is made of Fiberbush(tm). It contains asbestos."; @@ -51933,12 +49687,19 @@ "mXj" = ( /turf/closed/wall/almayer, /area/almayer/living/commandbunks) -"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; @@ -51947,29 +49708,12 @@ }, /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 - }, +"mYA" = ( +/obj/structure/machinery/light, /turf/open/floor/almayer{ - dir = 8; icon_state = "blue" }, -/area/almayer/hallways/port_hallway) -"mYY" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) +/area/almayer/hallways/upper/fore_hallway) "mZb" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; @@ -51984,6 +49728,24 @@ icon_state = "blue" }, /area/almayer/command/cichallway) +"mZc" = ( +/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" + }, +/area/almayer/maint/hull/lower/l_m_s) "mZf" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, @@ -52037,6 +49799,18 @@ icon_state = "red" }, /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{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "mZQ" = ( /obj/structure/machinery/vending/security, /obj/structure/machinery/light, @@ -52048,6 +49822,15 @@ icon_state = "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; @@ -52058,12 +49841,32 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"naf" = ( -/obj/structure/closet/firecloset, +"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{ - icon_state = "plate" + dir = 6; + icon_state = "red" + }, +/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 @@ -52128,14 +49931,21 @@ icon_state = "test_floor4" }, /area/almayer/living/gym) -"nbv" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 3" +"nbu" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/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/engineering/lower/engine_core) +/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; @@ -52148,6 +49958,9 @@ icon_state = "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{ icon_state = "red" @@ -52162,6 +49975,16 @@ icon_state = "orange" }, /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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_a_s) "ncE" = ( /obj/structure/machinery/light{ dir = 8 @@ -52189,49 +50012,24 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"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 - }, -/turf/open/floor/almayer{ +"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 + icon_state = "pipe-c" }, /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 +/area/almayer/maint/hull/lower/l_m_p) +"ndm" = ( +/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/l_m_p) +/area/almayer/maint/lower/cryo_cells) "ndZ" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/flashlight/lamp, @@ -52252,6 +50050,21 @@ icon_state = "test_floor4" }, /area/almayer/powered) +"nef" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) +"ner" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/south2) "new" = ( /obj/item/reagent_container/glass/bucket/janibucket, /obj/item/reagent_container/glass/bucket/janibucket{ @@ -52283,6 +50096,12 @@ icon_state = "red" }, /area/almayer/command/lifeboat) +"neH" = ( +/obj/item/trash/cigbutt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "neO" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -52301,12 +50120,28 @@ "neT" = ( /obj/structure/transmitter/rotary{ name = "CL Office Telephone"; - phone_category = "Almayer"; + 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{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "nff" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -52317,24 +50152,13 @@ icon_state = "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 @@ -52380,12 +50204,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/lobby) -"ngs" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) "ngw" = ( /obj/structure/surface/rack, /obj/item/mortar_shell/frag, @@ -52420,20 +50238,26 @@ icon_state = "plate" }, /area/almayer/squads/bravo) -"ngE" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/upper/starboard) "ngI" = ( /turf/open/floor/almayer{ dir = 8; icon_state = "redcorner" }, /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{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/repair_bay) "ngU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -52470,12 +50294,6 @@ icon_state = "silver" }, /area/almayer/living/briefing) -"nho" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "nhr" = ( /obj/structure/ladder{ height = 1; @@ -52486,6 +50304,10 @@ icon_state = "plating" }, /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{ @@ -52502,6 +50324,16 @@ }, /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/item/newspaper{ name = "character sheet" @@ -52529,11 +50361,35 @@ /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) +"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{ + icon_state = "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{ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"nii" = ( +/obj/structure/machinery/status_display{ + pixel_y = -30 + }, +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/aft_hallway) "nik" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -52576,6 +50432,15 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) +"niF" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/medical/medical_science) "niL" = ( /obj/structure/machinery/light{ dir = 1 @@ -52633,12 +50498,9 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"njy" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +"njn" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/upper/u_m_s) "njD" = ( /obj/structure/closet/emcloset, /turf/open/floor/almayer{ @@ -52658,35 +50520,35 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"njL" = ( +"njO" = ( +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, /turf/open/floor/almayer{ - dir = 8; - icon_state = "emerald" - }, -/area/almayer/hallways/port_hallway) -"njT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 + icon_state = "redfull" }, -/obj/structure/sign/safety/distribution_pipes{ +/area/almayer/shipboard/panic) +"njS" = ( +/obj/structure/sign/safety/rad_haz{ 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" + pixel_y = -32 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/structure/machinery/power/reactor, +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, +/area/almayer/engineering/lower/engine_core) +"nkc" = ( +/obj/structure/largecrate/random/barrel/red, /turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) +"nkj" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hallways/vehiclehangar) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "nkn" = ( /obj/structure/pipes/vents/pump{ dir = 8 @@ -52727,22 +50589,42 @@ icon_state = "red" }, /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{ + icon_state = "ai_floor3"; + light_range = 3 + }, +/area/almayer/command/airoom) "nkX" = ( /obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/almayer_network{ - dir = 4; - layer = 2.8; - pixel_y = 5 - }, /obj/structure/sign/safety/terminal{ pixel_x = 8; pixel_y = 32 }, +/obj/structure/machinery/computer/cameras/almayer/ares{ + dir = 4; + pixel_y = 5 + }, /turf/open/floor/almayer{ dir = 9; icon_state = "red" }, /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; @@ -52756,6 +50638,14 @@ icon_state = "cargo_arrow" }, /area/almayer/living/briefing) +"nlI" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_s) "nlW" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/largecrate/random/barrel/green, @@ -52782,26 +50672,28 @@ icon_state = "silver" }, /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{ + icon_state = "plate" }, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 +/area/almayer/maint/hull/lower/l_f_s) +"nmH" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) "nmK" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -52823,12 +50715,6 @@ "nmY" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/engineering/lower/workshop/hangar) -"nnc" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "nne" = ( /obj/structure/ladder{ height = 2; @@ -52839,22 +50725,17 @@ }, /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/machinery/light{ + dir = 4 }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "orangecorner" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/hallways/lower/port_aft_hallway) "nny" = ( /obj/structure/sign/safety/rewire{ pixel_x = -17; @@ -52873,10 +50754,6 @@ icon_state = "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) "nnL" = ( /obj/structure/toilet{ dir = 8 @@ -52889,6 +50766,12 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) +"noe" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/upper/aft_hallway) "noj" = ( /obj/structure/largecrate, /obj/structure/prop/server_equipment/laptop{ @@ -52899,6 +50782,19 @@ icon_state = "test_floor4" }, /area/almayer/squads/req) +"noo" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/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{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/navigation) "nop" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber, /turf/open/floor/almayer{ @@ -52924,6 +50820,34 @@ icon_state = "orange" }, /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/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 @@ -52934,13 +50858,6 @@ icon_state = "orange" }, /area/almayer/engineering/lower) -"noV" = ( -/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) "nph" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -52948,17 +50865,14 @@ }, /turf/open/floor/plating, /area/almayer/engineering/starboard_atmos) -"npn" = ( -/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" +"npq" = ( +/obj/structure/disposalpipe/up/almayer{ + dir = 8; + id = "ares_vault_out"; + name = "aicore" }, -/area/almayer/engineering/lower/engine_core) +/turf/closed/wall/almayer/aicore/hull, +/area/almayer/command/airoom) "npt" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -52974,6 +50888,12 @@ icon_state = "dark_sterile" }, /area/almayer/medical/containment) +"npw" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "npA" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -53008,32 +50928,12 @@ /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) "nqO" = ( /obj/structure/closet/secure_closet/fridge/fish/stock, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"nqU" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) "nqV" = ( /obj/structure/stairs/perspective{ dir = 1; @@ -53052,6 +50952,17 @@ icon_state = "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/plating/plating_catwalk, +/area/almayer/living/synthcloset) "nri" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/working_joe{ @@ -53061,22 +50972,6 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"nrt" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) "nrw" = ( /obj/structure/bed/chair{ dir = 4 @@ -53086,14 +50981,6 @@ icon_state = "emeraldcorner" }, /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{ @@ -53115,20 +51002,35 @@ }, /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{ - icon_state = "test_floor4" + dir = 1; + icon_state = "green" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/upper/fore_hallway) +"nsH" = ( +/turf/open/floor/almayer{ + dir = 10; + icon_state = "orange" + }, +/area/almayer/hallways/upper/midship_hallway) "nsQ" = ( /obj/structure/sink{ dir = 4; @@ -53175,17 +51077,6 @@ "ntj" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/command/computerlab) -"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) "ntx" = ( /obj/structure/machinery/door/airlock/almayer/generic{ id = "Alpha_2"; @@ -53198,41 +51089,12 @@ icon_state = "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" - }, -/area/almayer/hull/lower_hull/l_f_s) "nux" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -53271,12 +51133,33 @@ /obj/effect/landmark/late_join/alpha, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) -"nuY" = ( -/obj/structure/closet, +"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{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) +"nve" = ( +/obj/structure/janitorialcart, +/obj/item/tool/mop, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/maint/hull/upper/u_m_p) +"nvz" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/south2) "nvG" = ( /obj/structure/machinery/light{ dir = 8 @@ -53295,6 +51178,14 @@ icon_state = "dark_sterile" }, /area/almayer/living/numbertwobunks) +"nvI" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "nvM" = ( /obj/structure/window/framed/almayer/white, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -53314,6 +51205,18 @@ icon_state = "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 @@ -53331,17 +51234,6 @@ dir = 4 }, /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) "nwx" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ @@ -53358,6 +51250,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ dir = 8; icon_state = "plating_striped" @@ -53407,44 +51300,28 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop) -"nxc" = ( -/obj/structure/machinery/light/small{ - dir = 4 +"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" }, -/obj/structure/closet/firecloset, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/maint/hull/upper/u_a_p) "nxx" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ icon_state = "orange" }, /area/almayer/engineering/lower) -"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" - }, -/area/almayer/hallways/aft_hallway) -"nxZ" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 10" - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower/engine_core) "nyj" = ( /obj/effect/decal/medical_decals{ icon_state = "docdecal2" @@ -53467,23 +51344,11 @@ icon_state = "test_floor4" }, /area/almayer/living/briefing) -"nyz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/machinery/light/small{ - dir = 1 - }, +"nyK" = ( /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" + icon_state = "greencorner" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/upper/fore_hallway) "nyQ" = ( /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) @@ -53494,6 +51359,12 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) +"nzt" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) "nzv" = ( /obj/structure/filingcabinet/filingcabinet, /obj/item/clipboard, @@ -53505,15 +51376,6 @@ icon_state = "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) "nzD" = ( /obj/effect/step_trigger/clone_cleaner, /turf/open/floor/almayer, @@ -53529,12 +51391,35 @@ }, /turf/open/floor/almayer, /area/almayer/squads/req) +"nzT" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ + closeOtherId = "brignorth"; + name = "\improper Brig Lobby" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/starboard_hallway) "nAd" = ( /obj/structure/machinery/power/apc/almayer{ dir = 4 }, /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 + }, +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/north1) "nAY" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -53557,12 +51442,6 @@ icon_state = "plate" }, /area/almayer/squads/alpha_bravo_shared) -"nBc" = ( -/obj/structure/largecrate/random, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "nBi" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp{ @@ -53591,21 +51470,36 @@ icon_state = "mono" }, /area/almayer/living/pilotbunks) +"nBF" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer{ + icon_state = "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{ dir = 8; icon_state = "red" }, /area/almayer/lifeboat_pumps/north2) -"nBW" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 +"nBV" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/firstaid/o2, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_umbilical) +"nCe" = ( +/obj/structure/machinery/prop/almayer/computer{ + pixel_y = 20 }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/repair_bay) "nCf" = ( /obj/effect/landmark/start/marine/tl/charlie, /obj/effect/landmark/late_join/charlie, @@ -53652,8 +51546,23 @@ 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{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) +"nCM" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_s) "nCR" = ( /obj/structure/sink{ dir = 4; @@ -53689,19 +51598,13 @@ icon_state = "tcomms" }, /area/almayer/engineering/lower/engine_core) -"nDd" = ( -/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_m39_submachinegun, -/turf/open/floor/almayer{ - icon_state = "redfull" +"nDb" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_umbilical) "nDo" = ( /obj/structure/closet/l3closet/general, /obj/structure/window/reinforced{ @@ -53714,24 +51617,43 @@ }, /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" + }, +/turf/open/floor/almayer/no_build{ + icon_state = "plating" + }, +/area/almayer/command/airoom) +"nDH" = ( +/obj/structure/machinery/light/small{ + dir = 1; + pixel_y = 20 }, -/obj/item/stack/sheet/wood/large_stack, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "plate" }, -/area/almayer/engineering/upper_engineering/port) +/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) +"nEc" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer{ + icon_state = "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{ @@ -53740,29 +51662,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"; @@ -53770,13 +51669,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{ @@ -53800,6 +51692,16 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) +"nEO" = ( +/mob/living/simple_animal/mouse/brown, +/turf/open/floor/almayer{ + icon_state = "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, @@ -53807,12 +51709,6 @@ icon_state = "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 @@ -53862,24 +51758,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) -"nFM" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 18" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower/engine_core) -"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; @@ -53893,12 +51771,6 @@ icon_state = "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; @@ -53918,15 +51790,42 @@ icon_state = "plate" }, /area/almayer/shipboard/port_point_defense) +"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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "nGY" = ( /obj/structure/closet/emcloset, /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/lifeboat_pumps/north2) -"nHF" = ( -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_m_s) +"nHu" = ( +/obj/structure/largecrate/random/barrel/yellow, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"nHG" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "nHJ" = ( /obj/structure/machinery/light{ dir = 8 @@ -53950,6 +51849,16 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) +"nHX" = ( +/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/l_f_s) "nIj" = ( /turf/open/floor/almayer{ icon_state = "green" @@ -54004,6 +51913,9 @@ icon_state = "silver" }, /area/almayer/command/securestorage) +"nIN" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/upper/u_m_p) "nIS" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -54028,20 +51940,6 @@ /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) -"nJz" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) "nJH" = ( /obj/structure/machinery/computer/cameras/almayer{ dir = 8; @@ -54060,6 +51958,19 @@ icon_state = "red" }, /area/almayer/command/lifeboat) +"nKO" = ( +/obj/structure/machinery/disposal/delivery{ + density = 0; + desc = "A pneumatic delivery unit."; + icon_state = "delivery_engi"; + name = "Returns"; + pixel_y = 28 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "nKP" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -54071,30 +51982,6 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"nLa" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/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" - }, -/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{ - allow_construction = 0; - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "nLk" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/power/apc/almayer{ @@ -54105,6 +51992,9 @@ icon_state = "orange" }, /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; @@ -54135,31 +52025,6 @@ icon_state = "plating" }, /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" @@ -54179,14 +52044,6 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) -"nMz" = ( -/obj/structure/sign/safety/cryo{ - pixel_x = 35 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "nMV" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 @@ -54232,27 +52089,16 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"nNA" = ( -/obj/structure/machinery/cryopod{ - pixel_y = 6 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/upper_hull/u_m_p) -"nNC" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) "nNH" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "emeraldcorner" }, /area/almayer/living/briefing) +"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; @@ -54299,15 +52145,31 @@ icon_state = "plate" }, /area/almayer/command/corporateliaison) +"nOp" = ( +/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/upper/midship_hallway) +"nOx" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) "nOC" = ( /turf/open/floor/almayer, /area/almayer/shipboard/brig/execution) -"nOG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"nOX" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/secure_data{ + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/panic) "nPa" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 @@ -54383,6 +52245,13 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) +"nPO" = ( +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "orange" + }, +/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."; @@ -54406,12 +52275,18 @@ icon_state = "red" }, /area/almayer/command/lifeboat) -"nQg" = ( -/obj/structure/sink{ - pixel_y = 24 +"nQn" = ( +/obj/structure/surface/rack, +/obj/item/storage/toolbox/mechanical, +/obj/effect/spawner/random/tool, +/turf/open/floor/almayer{ + icon_state = "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 @@ -54421,20 +52296,25 @@ icon_state = "plating_striped" }, /area/almayer/squads/req) -"nQx" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "nQA" = ( /turf/open/floor/carpet, /area/almayer/command/corporateliaison) -"nRq" = ( -/obj/effect/decal/cleanable/blood/oil/streak, +"nRA" = ( +/obj/effect/projector{ + name = "Almayer_Up4"; + vector_x = -19; + vector_y = 104 + }, +/turf/open/floor/almayer{ + allow_construction = 0 + }, +/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 @@ -54443,6 +52323,12 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"nRN" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "nRR" = ( /turf/open/floor/almayer{ dir = 1; @@ -54453,6 +52339,29 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering) +"nSk" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/obj/item/stack/tile/carpet{ + amount = 20 + }, +/turf/open/floor/almayer{ + icon_state = "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"; @@ -54461,6 +52370,13 @@ /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{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/aft_hallway) "nSG" = ( /obj/structure/machinery/door_control{ id = "tcomms"; @@ -54473,41 +52389,35 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/telecomms) -"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) -"nTi" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/stern) "nTl" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "red" }, /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{ + icon_state = "sterile_green" + }, +/area/almayer/medical/lockerroom) "nTs" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -54585,6 +52495,16 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "nUn" = ( /obj/structure/surface/table/almayer, /obj/structure/flora/pottedplant{ @@ -54601,30 +52521,45 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) -"nUy" = ( -/obj/structure/sign/poster{ - pixel_y = -32 - }, -/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 - }, -/obj/structure/sign/safety/west{ - pixel_y = 32 +"nUT" = ( +/obj/structure/platform{ + dir = 8 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/hull/upper/u_a_s) "nVi" = ( /turf/open/floor/almayer{ icon_state = "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/ammunition{ + pixel_y = 32 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) +"nVn" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 2 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "nVq" = ( /obj/structure/sign/safety/security{ pixel_x = -17; @@ -54639,17 +52574,15 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"nVu" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "nVB" = ( /turf/open/floor/almayer, /area/almayer/command/securestorage) +"nVE" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "nVF" = ( /obj/structure/disposalpipe/junction{ dir = 8 @@ -54658,20 +52591,20 @@ icon_state = "cargo_arrow" }, /area/almayer/living/offices) +"nVQ" = ( +/obj/structure/machinery/light, +/obj/structure/sign/safety/security{ + pixel_y = -32 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "nVR" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/brig/perma) -"nVS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "nVX" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/blastdoor{ id_tag = "Boat2-D1"; @@ -54682,27 +52615,44 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/starboard) -"nWc" = ( -/obj/structure/machinery/door/airlock/almayer/generic/glass{ - name = "\improper Passenger Cryogenics Bay" +"nWf" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 4; + icon_state = "orangecorner" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/hallways/upper/aft_hallway) "nWN" = ( /obj/structure/surface/table/almayer, /turf/open/floor/wood/ship, /area/almayer/engineering/ce_room) -"nXF" = ( -/obj/structure/bed/sofa/south/white/right{ - pixel_y = 16 +"nWS" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" + icon_state = "dark_sterile" + }, +/area/almayer/shipboard/brig/medical) +"nXo" = ( +/obj/item/storage/box/donkpockets, +/obj/structure/surface/rack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) +"nXG" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/lifeboat_pumps/south2) "nXO" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/storage/fancy/cigar{ @@ -54724,9 +52674,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"nXP" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/lower_hull/l_f_s) "nXU" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions{ dir = 1; @@ -54743,6 +52690,15 @@ icon_state = "test_floor4" }, /area/almayer/squads/req) +"nXV" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/aft_hallway) "nYc" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -54762,18 +52718,12 @@ }, /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, +"nYi" = ( +/obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/hull/upper/p_bow) "nYn" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -54792,20 +52742,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"nYv" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) -"nYC" = ( -/obj/structure/sign/safety/autoopenclose{ - pixel_x = 7; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) "nYD" = ( /obj/structure/closet/secure_closet/medical2, /turf/open/floor/almayer{ @@ -54817,6 +52753,37 @@ dir = 8 }, /area/almayer/command/lifeboat) +"nYR" = ( +/obj/structure/sign/safety/cryo{ + pixel_y = 26 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) +"nZf" = ( +/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/upper/midship_hallway) +"nZm" = ( +/obj/structure/machinery/door_control{ + id = "OTStore"; + name = "Shutters"; + pixel_y = 24; + access_modified = 1; + req_one_access_txt = "35" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "nZy" = ( /obj/structure/surface/table/almayer, /obj/structure/disposalpipe/segment{ @@ -54825,11 +52792,35 @@ /obj/item/facepaint/black, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) -"nZF" = ( +"nZG" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) +"nZK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"nZR" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 8 + }, /turf/open/floor/almayer{ - icon_state = "orange" + dir = 5; + icon_state = "plating" + }, +/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 }, -/area/almayer/hull/upper_hull/u_a_s) +/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{ @@ -54837,22 +52828,40 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) -"oas" = ( -/obj/structure/surface/table/almayer, -/obj/item/stack/rods/plasteel{ - amount = 36 - }, -/obj/item/stack/catwalk{ - amount = 60; - pixel_x = 5; - pixel_y = 4 +"oaw" = ( +/obj/structure/closet/firecloset, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/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{ + dir = 4; + icon_state = "plating_striped" + }, +/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{ @@ -54891,32 +52900,12 @@ icon_state = "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 }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) -"occ" = ( -/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{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "ocf" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 @@ -54963,35 +52952,47 @@ /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 +"ocL" = ( +/obj/structure/machinery/cryopod/right{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_cargo" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/command/airoom) "odb" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ icon_state = "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{ + icon_state = "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{ + icon_state = "cargo" + }, +/area/almayer/hallways/lower/vehiclehangar) "odu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -55020,6 +53021,22 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "odN" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -55039,11 +53056,6 @@ icon_state = "red" }, /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!"; @@ -55062,15 +53074,17 @@ icon_state = "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) +"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, @@ -55084,30 +53098,23 @@ icon_state = "redcorner" }, /area/almayer/shipboard/brig/processing) -"oeL" = ( -/obj/structure/machinery/vending/coffee{ - density = 0; - pixel_y = 18 +"oeH" = ( +/obj/structure/bed/chair{ + dir = 8 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/maint/hull/upper/u_m_s) "oeM" = ( /obj/structure/surface/rack, /turf/open/floor/almayer{ icon_state = "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 @@ -55139,12 +53146,19 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"ofZ" = ( -/obj/structure/bed/sofa/south/grey, -/turf/open/floor/almayer{ - icon_state = "plate" +"ofY" = ( +/obj/structure/surface/table/reinforced/almayer_B{ + indestructible = 1; + unacidable = 1; + unslashable = 1 }, -/area/almayer/hull/upper_hull/u_f_p) +/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."; @@ -55159,12 +53173,38 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) +"ogT" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"ohi" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/south2) "ohj" = ( /obj/structure/machinery/cryopod, /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/squads/charlie) +"ohu" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + dir = 1; + name = "\improper Brig Maintenance" + }, +/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/maint/hull/upper/p_bow) "ohA" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -55202,6 +53242,19 @@ icon_state = "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, @@ -55224,6 +53277,10 @@ icon_state = "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" @@ -55253,6 +53310,16 @@ icon_state = "orange" }, /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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_m_p) "oir" = ( /obj/structure/pipes/vents/pump{ dir = 8 @@ -55271,6 +53338,29 @@ icon_state = "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{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/warden_office) "oiL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -55289,6 +53379,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"; @@ -55340,22 +53434,9 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"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 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) +"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, @@ -55369,14 +53450,15 @@ }, /area/almayer/squads/charlie) "okd" = ( -/obj/structure/platform_decoration, -/obj/structure/machinery/power/apc/almayer{ - dir = 4 +/obj/structure/machinery/door/poddoor/almayer{ + id = "n_umbilical"; + name = "\improper Umbillical Airlock"; + unacidable = 1 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/hallways/lower/starboard_umbilical) "okg" = ( /obj/structure/sign/safety/reception{ pixel_x = 8; @@ -55386,13 +53468,6 @@ icon_state = "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) "okD" = ( /obj/structure/prop/almayer/name_stencil{ icon_state = "almayer6" @@ -55401,14 +53476,23 @@ icon_state = "outerhull_dir" }, /area/space) -"okQ" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 12" +"okO" = ( +/obj/structure/machinery/cm_vending/clothing/senior_officer, +/turf/open/floor/almayer{ + icon_state = "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{ - icon_state = "test_floor4" + icon_state = "cargo" }, -/area/almayer/engineering/lower/engine_core) +/area/almayer/hallways/upper/midship_hallway) "olM" = ( /obj/structure/bed/chair{ can_buckle = 0; @@ -55445,6 +53529,12 @@ }, /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{ @@ -55452,6 +53542,12 @@ icon_state = "blue" }, /area/almayer/command/cichallway) +"olW" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/lower/s_bow) "omb" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -55461,6 +53557,12 @@ icon_state = "silvercorner" }, /area/almayer/command/cichallway) +"ome" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_bow) "omo" = ( /obj/structure/window/framed/almayer/white, /turf/open/floor/plating, @@ -55470,6 +53572,20 @@ /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{ + icon_state = "cargo" + }, +/area/almayer/maint/hull/lower/l_f_s) "omy" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -55488,21 +53604,24 @@ icon_state = "orange" }, /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 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"ond" = ( -/obj/structure/machinery/sleep_console{ - dir = 8 +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/shipboard/brig/surgery) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "onN" = ( /obj/structure/surface/table/almayer, /obj/structure/disposalpipe/segment{ @@ -55524,6 +53643,20 @@ icon_state = "sterile_green_side" }, /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, @@ -55548,17 +53681,6 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"ooo" = ( -/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) "oos" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) @@ -55577,20 +53699,25 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"opc" = ( -/obj/structure/largecrate/supply/medicine/medivend{ - pixel_x = 3 +"ooA" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, -/obj/structure/largecrate/random/mini/med{ - pixel_x = 3; - pixel_y = 11; - density = 1 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"opd" = ( +/obj/structure/barricade/handrail, +/turf/open/floor/almayer{ + icon_state = "test_floor5" }, +/area/almayer/hallways/lower/port_midship_hallway) +"opu" = ( /turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" + dir = 6; + icon_state = "red" }, -/area/almayer/medical/lower_medical_medbay) +/area/almayer/lifeboat_pumps/north2) "opC" = ( /obj/structure/machinery/door/airlock/almayer/command/reinforced{ name = "\improper Combat Information Center" @@ -55618,27 +53745,33 @@ icon_state = "plate" }, /area/almayer/engineering/lower/engine_core) -"opI" = ( -/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) "opJ" = ( /obj/docking_port/stationary/emergency_response/external/port4, /turf/open/space/basic, /area/space) +"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{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) +"oqc" = ( +/obj/structure/surface/rack, +/obj/item/storage/firstaid/toxin, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "oqt" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -55677,22 +53810,10 @@ icon_state = "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) +"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 @@ -55753,20 +53874,19 @@ icon_state = "silver" }, /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" + }, +/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_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) +/area/almayer/maint/upper/u_a_s) "orH" = ( /turf/open/floor/almayer/uscm/directional{ dir = 10 @@ -55789,6 +53909,15 @@ }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_p) "osx" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -55801,17 +53930,6 @@ icon_state = "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{ @@ -55850,14 +53968,13 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop) -"osM" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 8" - }, +"osQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/engineering/lower/engine_core) +/area/almayer/hallways/lower/starboard_midship_hallway) "osT" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/prop/ice_colony/hula_girl{ @@ -55876,9 +53993,52 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"osX" = ( +/obj/structure/sign/safety/north{ + pixel_x = -17; + pixel_y = -8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) +"otp" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/turf/open/floor/almayer{ + icon_state = "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) +"otC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/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 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "ouf" = ( /obj/structure/stairs{ dir = 1; @@ -55905,25 +54065,13 @@ icon_state = "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{ @@ -55947,6 +54095,18 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"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 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "ouW" = ( /obj/structure/sign/safety/storage{ pixel_x = 8; @@ -55961,6 +54121,10 @@ icon_state = "silvercorner" }, /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; @@ -55978,15 +54142,6 @@ icon_state = "silver" }, /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"; @@ -56000,28 +54155,26 @@ dir = 4 }, /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) +/obj/structure/sign/safety/maint{ + pixel_x = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) "owg" = ( /turf/open/floor/almayer{ icon_state = "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 @@ -56045,47 +54198,75 @@ /obj/item/bedsheet/orange, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) +"oxe" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) "oxi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, /turf/open/floor/almayer, /area/almayer/living/cafeteria_officer) -"oxp" = ( -/obj/structure/largecrate/random/case, +"oxl" = ( +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/obj/structure/machinery/light{ + dir = 4 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/hull/lower/l_a_p) +"oxn" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + icon_state = "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" = ( +"oyB" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = -17 + }, /turf/open/floor/almayer{ dir = 8; - icon_state = "orangecorner" + icon_state = "green" }, -/area/almayer/hull/upper_hull/u_a_s) -"oyw" = ( -/obj/structure/platform_decoration{ - dir = 8 +/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{ @@ -56098,18 +54279,25 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/port_atmos) -"oyG" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" +"oyO" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/structure/sign/safety/water{ + pixel_x = -17 }, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) "oyR" = ( /obj/structure/closet/firecloset, /turf/open/floor/almayer{ icon_state = "orange" }, /area/almayer/engineering/lower) +"oyX" = ( +/obj/structure/bookcase/manuals/engineering, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_s) "ozq" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ @@ -56119,21 +54307,6 @@ icon_state = "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, @@ -56141,6 +54314,18 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/p_bow) "ozN" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/blastdoor{ id_tag = "Boat2-D2"; @@ -56169,6 +54354,15 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) +"oAa" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_umbilical) "oAB" = ( /obj/structure/platform{ dir = 8; @@ -56178,12 +54372,32 @@ dir = 10 }, /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" }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "oBq" = ( /obj/structure/bed, /obj/structure/machinery/flasher{ @@ -56195,6 +54409,9 @@ icon_state = "red" }, /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; @@ -56209,6 +54426,40 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"oBD" = ( +/obj/structure/pipes/vents/pump/no_boom/gas{ + vent_tag = "Access Hall"; + dir = 8 + }, +/turf/open/floor/almayer/aicore/no_build{ + dir = 4; + icon_state = "ai_silver" + }, +/area/almayer/command/airoom) +"oCa" = ( +/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/lower/port_umbilical) +"oCb" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_midship_hallway) "oCf" = ( /obj/structure/machinery/light{ unacidable = 1; @@ -56236,18 +54487,19 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) -"oCL" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, +"oCK" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"oDa" = ( +/obj/effect/landmark/yautja_teleport, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) -"oDf" = ( +/area/almayer/maint/upper/u_a_s) +"oDh" = ( /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/hull/upper/p_bow) "oDi" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -56262,6 +54514,13 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"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{ dir = 9; @@ -56300,6 +54559,23 @@ icon_state = "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{ + dir = 8; + icon_state = "sterile_green_corner" + }, +/area/almayer/medical/lower_medical_medbay) "oDL" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -56320,6 +54596,15 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/medical_science) +"oDU" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/obj/structure/barricade/handrail, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/hallways/lower/port_midship_hallway) "oDY" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, @@ -56342,6 +54627,18 @@ icon_state = "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{ + dir = 8; + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) "oEo" = ( /obj/effect/landmark/start/marine/medic/delta, /obj/effect/landmark/late_join/delta, @@ -56371,6 +54668,17 @@ }, /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; @@ -56388,15 +54696,6 @@ icon_state = "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 @@ -56413,18 +54712,25 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop) -"oFG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"oFn" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/wirecutters/clippers, +/obj/item/handcuffs/zip, +/turf/open/floor/almayer{ + icon_state = "plate" }, +/area/almayer/maint/hull/lower/l_f_p) +"oFr" = ( +/obj/item/storage/firstaid/regular, +/obj/structure/surface/rack, /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) +/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; @@ -56435,6 +54741,40 @@ "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{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/lower/port_aft_hallway) +"oGi" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + icon_state = "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{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/lower/starboard_umbilical) "oGx" = ( /obj/structure/closet/secure_closet/surgical{ pixel_x = 30 @@ -56460,29 +54800,35 @@ /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) "oGF" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 +/obj/structure/platform{ + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "oGI" = ( -/obj/structure/bookcase{ - icon_state = "book-5"; - name = "medical manuals bookcase"; - opacity = 0 +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/obj/item/book/manual/surgery, -/obj/item/book/manual/medical_diagnostics_manual, -/obj/structure/machinery/light{ - dir = 4 +/turf/open/floor/almayer{ + icon_state = "blue" }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) +/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 = "plate" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "oGP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -56491,6 +54837,14 @@ icon_state = "orange" }, /area/almayer/living/port_emb) +"oGW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/fore_hallway) "oGY" = ( /obj/item/device/flashlight/lamp/green{ pixel_x = 5; @@ -56532,6 +54886,21 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/charlie) +"oHf" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_bow) +"oHg" = ( +/obj/structure/largecrate/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_stern) "oHl" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/electrical, @@ -56540,6 +54909,23 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"oHs" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "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 @@ -56567,37 +54953,18 @@ }, /area/almayer/shipboard/brig/processing) "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" = ( -/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{ - dir = 8; - name = "\improper Containment Airlock"; - closeOtherId = "containment_n" - }, -/obj/structure/machinery/door/poddoor/almayer/biohazard/white{ +/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 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/medical/medical_science) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/fore_hallway) "oIt" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -56607,9 +54974,30 @@ "oIB" = ( /turf/closed/wall/almayer, /area/almayer/command/combat_correspondent) +"oIY" = ( +/obj/structure/largecrate/random/barrel, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_p) +"oJj" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/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{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "oJp" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -56621,29 +55009,30 @@ }, /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{ + icon_state = "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" + id = "hangarentrancesouth"; + name = "South Hangar Shutters"; + pixel_y = 30; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/turf/open/floor/almayer{ + icon_state = "plate" }, -/area/almayer/command/airoom) +/area/almayer/hallways/lower/port_fore_hallway) "oKb" = ( /obj/structure/machinery/status_display{ pixel_y = 30 @@ -56668,49 +55057,31 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) -"oLd" = ( -/obj/structure/platform{ - dir = 4 +"oLf" = ( +/obj/structure/sign/safety/security{ + pixel_x = 15; + pixel_y = 32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_bow) "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; - pixel_y = 32 +"oLj" = ( +/obj/effect/projector{ + name = "Almayer_Up2"; + vector_x = -1; + vector_y = 100 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"oLw" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 +/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{ @@ -56742,15 +55113,6 @@ icon_state = "plating" }, /area/almayer/shipboard/stern_point_defense) -"oLT" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "oLU" = ( /turf/open/floor/almayer{ dir = 1; @@ -56807,14 +55169,6 @@ icon_state = "mono" }, /area/almayer/engineering/ce_room) -"oNf" = ( -/obj/item/stack/folding_barricade/three, -/obj/item/stack/folding_barricade/three, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hull/lower_hull/l_f_s) "oNj" = ( /obj/structure/sign/prop1{ pixel_x = -32; @@ -56841,6 +55195,18 @@ icon_state = "plating" }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "oNP" = ( /obj/structure/machinery/vending/cola{ density = 0; @@ -56851,6 +55217,23 @@ icon_state = "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{ + dir = 8; + icon_state = "green" + }, +/area/almayer/squads/req) "oNY" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_18"; @@ -56861,6 +55244,13 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) +"oOp" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/wirecutters, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "oOw" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -56891,42 +55281,21 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"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 +"oOZ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer{ dir = 8; icon_state = "red" }, -/area/almayer/shipboard/brig/main_office) -"oPp" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21" - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" +/area/almayer/hallways/upper/aft_hallway) +"oPf" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/command/lifeboat) "oPy" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; @@ -56965,34 +55334,20 @@ icon_state = "red" }, /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 +"oPF" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) -"oQo" = ( -/obj/item/stool, -/obj/effect/landmark/yautja_teleport, +/area/almayer/maint/hull/lower/l_a_s) +"oQn" = ( /turf/open/floor/almayer{ - icon_state = "plate" + dir = 1; + icon_state = "greencorner" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/hallways/lower/port_midship_hallway) "oQs" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/book/manual/surgery{ @@ -57002,11 +55357,35 @@ icon_state = "plate" }, /area/almayer/command/cichallway) +"oQw" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orangecorner" + }, +/area/almayer/hallways/lower/port_umbilical) "oQH" = ( /turf/open/floor/almayer{ icon_state = "cargo_arrow" }, /area/almayer/living/briefing) +"oQI" = ( +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "oQM" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -57030,23 +55409,31 @@ icon_state = "silver" }, /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" }, /area/almayer/shipboard/brig/processing) +"oRm" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Port Viewing Room" + }, +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "sterile_green_side" + }, +/area/almayer/medical/lower_medical_medbay) "oRJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -57078,9 +55465,7 @@ 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) "oRW" = ( /obj/structure/surface/table/almayer, @@ -57127,6 +55512,14 @@ }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_s) "oSL" = ( /obj/structure/window/reinforced{ dir = 8 @@ -57150,6 +55543,20 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "oTe" = ( /obj/item/prop/almayer/box, /obj/item/prop{ @@ -57179,12 +55586,6 @@ icon_state = "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{ @@ -57194,6 +55595,15 @@ icon_state = "cargo" }, /area/almayer/squads/alpha) +"oTH" = ( +/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/lower/port_umbilical) "oTO" = ( /obj/structure/stairs/perspective{ dir = 1; @@ -57207,6 +55617,35 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) +"oUi" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/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{ + icon_state = "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{ + dir = 1; + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "oUG" = ( /obj/structure/machinery/light{ dir = 8 @@ -57216,6 +55655,15 @@ icon_state = "silver" }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "oVf" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/evidence{ @@ -57233,12 +55681,33 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/general_equipment) -"oVP" = ( -/obj/structure/bed/chair{ +"oVk" = ( +/obj/structure/stairs{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) +/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/lower/port_fore_hallway) +"oVo" = ( +/turf/open/floor/almayer{ + icon_state = "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, @@ -57267,6 +55736,10 @@ icon_state = "silver" }, /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"; @@ -57283,35 +55756,54 @@ icon_state = "plate" }, /area/almayer/living/starboard_garden) +"oWE" = ( +/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/lower/starboard_midship_hallway) +"oWF" = ( +/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/lower/starboard_fore_hallway) +"oWK" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) +"oWN" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "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) -"oXt" = ( -/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/upper/starboard) "oXJ" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm, /turf/open/floor/almayer{ @@ -57326,6 +55818,17 @@ icon_state = "orange" }, /area/almayer/engineering/lower) +"oXP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/midship_hallway) "oXY" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; @@ -57336,25 +55839,12 @@ icon_state = "sterile_green_side" }, /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 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/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) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "oYp" = ( /obj/structure/bed/chair/office/dark{ dir = 8 @@ -57364,16 +55854,49 @@ icon_state = "red" }, /area/almayer/living/offices/flight) -"oZd" = ( -/obj/structure/closet/secure_closet/personal/cabinet{ - req_access = null +"oYr" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_a_p) +"oYs" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/obj/item/clothing/suit/chef/classic, -/obj/item/tool/kitchen/knife/butcher, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/hull/upper/u_a_s) +"oYA" = ( +/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/lower/repair_bay) "oZp" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/light, @@ -57390,6 +55913,17 @@ icon_state = "red" }, /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{ + icon_state = "test_floor4" + }, +/area/almayer/command/airoom) "oZy" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -57425,6 +55959,15 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"oZI" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/north2) "oZV" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/roller, @@ -57465,6 +56008,17 @@ icon_state = "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 + }, +/turf/open/floor/almayer/aicore/glowing/no_build{ + icon_state = "ai_floor3"; + light_range = 3 + }, +/area/almayer/command/airoom) "paI" = ( /obj/structure/sign/safety/debark_lounge{ pixel_x = 15; @@ -57474,15 +56028,56 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) +"paJ" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_bow) "paL" = ( /turf/open/floor/almayer/uscm/directional{ dir = 1 }, /area/almayer/command/cic) -"pbb" = ( -/obj/effect/landmark/start/doctor, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/offices) +"pbm" = ( +/obj/item/bedsheet/brown{ + pixel_y = 13 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 3.3; + pixel_y = 4 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = -2; + pixel_y = 4 + }, +/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{ + dir = 9; + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) +"pbo" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_stern) "pbp" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ @@ -57510,13 +56105,22 @@ icon_state = "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{ + icon_state = "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; @@ -57532,6 +56136,11 @@ icon_state = "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 @@ -57541,22 +56150,6 @@ icon_state = "orange" }, /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; @@ -57587,33 +56180,27 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"pda" = ( -/obj/structure/largecrate/random/case/double, +"pcY" = ( +/obj/structure/disposalpipe/segment, /obj/structure/sign/safety/distribution_pipes{ + pixel_x = -17 + }, +/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 = "plate" + dir = 6; + icon_state = "red" }, -/area/almayer/hull/lower_hull/l_f_s) -"pdk" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, +/area/almayer/lifeboat_pumps/north2) +"pdp" = ( /turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_p) -"pdy" = ( -/obj/structure/machinery/door_control{ - id = "OTStore"; - name = "Shutters"; - pixel_y = 24 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 + icon_state = "plate" }, -/turf/open/floor/almayer, -/area/almayer/engineering/lower/workshop/hangar) +/area/almayer/maint/hull/upper/p_bow) "pdK" = ( /obj/structure/stairs/perspective{ dir = 8; @@ -57627,6 +56214,28 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) +"pdT" = ( +/obj/structure/pipes/vents/pump, +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" + }, +/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{ + icon_state = "cargo" + }, +/area/almayer/maint/hull/upper/u_f_s) "peO" = ( /obj/structure/sign/safety/medical{ pixel_x = -17; @@ -57659,6 +56268,17 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/starboard) +"pfd" = ( +/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/starboard_hallway) "pfp" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Up4"; @@ -57669,12 +56289,27 @@ allow_construction = 0 }, /area/almayer/stair_clone) +"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" }, /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 @@ -57690,13 +56325,15 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) -"pgt" = ( -/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, +"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{ - dir = 5; - icon_state = "orange" + icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/maint/upper/u_m_p) "pgw" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -57709,23 +56346,13 @@ "pgD" = ( /turf/closed/wall/almayer, /area/almayer/lifeboat_pumps/south1) -"pgH" = ( -/obj/effect/projector{ - name = "Almayer_AresDown"; - 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{ - icon_state = "ai_floors" +"pgJ" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/command/airoom) +/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; @@ -57776,14 +56403,23 @@ }, /area/almayer/living/briefing) "phj" = ( -/obj/structure/machinery/photocopier, /obj/structure/machinery/light/small{ dir = 1 }, +/obj/structure/machinery/photocopier/wyphotocopier, /turf/open/floor/almayer{ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/shipboard/panic) "phN" = ( /obj/structure/disposalpipe/junction{ dir = 4; @@ -57794,6 +56430,19 @@ }, /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{ @@ -57803,24 +56452,26 @@ }, /turf/open/floor/plating, /area/almayer/shipboard/brig/perma) -"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) +"piQ" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/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) +"pjh" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/panic) "pjj" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -57836,6 +56487,9 @@ icon_state = "sterile_green_side" }, /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, @@ -57855,18 +56509,12 @@ icon_state = "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" +"pjP" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) "pjR" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -57877,13 +56525,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"pky" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "pkz" = ( /turf/open/floor/almayer{ icon_state = "redfull" @@ -57899,22 +56540,44 @@ icon_state = "orange" }, /area/almayer/engineering/lower) -"plI" = ( -/obj/structure/machinery/cm_vending/sorted/medical/blood, -/turf/open/floor/almayer{ +"pkS" = ( +/obj/structure/stairs{ dir = 1; - icon_state = "sterile_green_side" + icon_state = "ramptop" }, -/area/almayer/shipboard/brig/surgery) -"pmk" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 +/obj/effect/projector{ + name = "Almayer_AresUp2"; + vector_x = -102; + vector_y = 61 + }, +/turf/open/floor/almayer/aicore/glowing/no_build{ + icon_state = "ai_floor3" + }, +/area/almayer/command/airoom) +"pld" = ( +/obj/item/book/manual/medical_diagnostics_manual, +/obj/structure/surface/rack, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/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 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/hallways/lower/port_aft_hallway) "pmq" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -57945,34 +56608,26 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"pmI" = ( -/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) "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, +/obj/structure/machinery/computer/tech_control{ + pixel_y = 16; + density = 0 + }, /turf/open/floor/almayer/no_build{ icon_state = "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) +/obj/structure/sign/safety/ladder{ + pixel_x = -17 + }, +/turf/open/floor/plating/almayer, +/area/almayer/maint/hull/upper/p_bow) "pns" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -57984,7 +56639,7 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) "pnC" = ( -/obj/structure/machinery/cm_vending/sorted/medical/blood, +/obj/structure/machinery/cm_vending/sorted/medical/blood/bolted, /turf/open/floor/almayer{ icon_state = "sterile_green_side" }, @@ -58006,13 +56661,21 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"poq" = ( -/obj/item/pipe{ - dir = 4; - layer = 3.5 +"pok" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 18 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 18 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_p) "poA" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/glass/bucket/mopbucket, @@ -58023,22 +56686,15 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop/hangar) -"poR" = ( -/obj/structure/machinery/light/small{ +"poD" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"ppc" = ( -/obj/structure/largecrate/supply/generator, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +/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 @@ -58067,6 +56723,21 @@ /obj/item/device/camera, /turf/open/floor/almayer, /area/almayer/command/corporateliaison) +"ppG" = ( +/obj/structure/bed/sofa/south/grey, +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "pqc" = ( /turf/open/floor/almayer{ icon_state = "mono" @@ -58091,6 +56762,12 @@ /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, @@ -58114,6 +56791,16 @@ icon_state = "cargo" }, /area/almayer/squads/bravo) +"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{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/repair_bay) "pqP" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, /obj/structure/machinery/light{ @@ -58123,27 +56810,43 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"pqQ" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) "pqX" = ( /obj/structure/bed/chair{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/living/gym) -"pre" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" +"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{ - icon_state = "test_floor4" + dir = 5; + icon_state = "plating" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/lower/vehiclehangar) "prx" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -58168,6 +56871,13 @@ }, /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, @@ -58183,18 +56893,15 @@ icon_state = "bluefull" }, /area/almayer/living/bridgebunks) -"psm" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_a_s) -"psy" = ( -/obj/structure/machinery/door/airlock/almayer/security{ - dir = 2; - name = "\improper Security Checkpoint" +"psk" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 1; + icon_state = "blue" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/upper/midship_hallway) "psK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -58282,6 +56989,14 @@ "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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/s_stern) "ptZ" = ( /obj/structure/platform{ dir = 4; @@ -58295,6 +57010,25 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) +"pub" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "green" + }, +/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, @@ -58308,60 +57042,36 @@ icon_state = "silver" }, /area/almayer/living/cryo_cells) -"puv" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 - }, -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"puE" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/recharger, -/obj/structure/sign/safety/terminal{ - pixel_y = 32 - }, -/obj/structure/transmitter/rotary{ - name = "Brig Wardens's Office Telephone"; - phone_category = "MP Dept."; - phone_id = "Brig Warden's Office"; - pixel_x = 15 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/shipboard/brig/chief_mp_office) "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, +"puP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "orange" }, -/area/almayer/hull/lower_hull/l_f_p) +/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{ @@ -58371,22 +57081,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 +"pvi" = ( +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" +/area/almayer/hallways/upper/aft_hallway) +"pvI" = ( +/obj/structure/sign/safety/rad_haz{ + pixel_x = 8; + pixel_y = 32 }, +/obj/structure/machinery/power/reactor, /turf/open/floor/almayer{ - icon_state = "green" + icon_state = "test_floor4" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/engineering/lower/engine_core) "pvJ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -58426,19 +57136,34 @@ icon_state = "redcorner" }, /area/almayer/shipboard/starboard_missiles) +"pwl" = ( +/obj/structure/sign/safety/bridge{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/sign/safety/west{ + pixel_y = -32 + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "blue" + }, +/area/almayer/hallways/upper/fore_hallway) +"pwx" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/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) -"pwK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "pxj" = ( /obj/structure/bed, /obj/item/bedsheet/brown, @@ -58578,6 +57303,15 @@ icon_state = "red" }, /area/almayer/shipboard/weapon_room) +"pzc" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) "pzd" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -58588,6 +57322,26 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) +"pzj" = ( +/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/lower/starboard_midship_hallway) +"pzw" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) "pzG" = ( /obj/docking_port/stationary/emergency_response/port1, /turf/open/floor/almayer{ @@ -58607,63 +57361,28 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"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) "pzV" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "bluecorner" }, /area/almayer/living/briefing) -"pzZ" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) +"pzW" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/hallways/lower/vehiclehangar) "pAm" = ( /turf/open/floor/almayer, /area/almayer/engineering/lower/engine_core) -"pAR" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/starboard_umbilical) -"pBn" = ( -/obj/structure/sign/safety/escapepod{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "greencorner" +"pAV" = ( +/obj/structure/platform{ + dir = 1 }, -/area/almayer/hallways/port_hallway) +/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) -"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) "pCq" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -58681,18 +57400,6 @@ icon_state = "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" @@ -58711,15 +57418,6 @@ icon_state = "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" @@ -58798,10 +57496,6 @@ icon_state = "green" }, /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 @@ -58835,24 +57529,62 @@ icon_state = "test_floor4" }, /area/almayer/lifeboat_pumps/south1) -"pFe" = ( -/obj/structure/machinery/gel_refiller, +"pFq" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/binoculars, +/obj/item/device/whistle{ + pixel_y = 5 + }, /turf/open/floor/almayer{ - icon_state = "sterile_green_side" + icon_state = "plate" }, -/area/almayer/medical/lower_medical_medbay) -"pFM" = ( -/obj/structure/machinery/light/small{ - dir = 8 +/area/almayer/maint/hull/upper/u_f_s) +"pFr" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) +"pGh" = ( +/obj/effect/decal/cleanable/cobweb{ + pixel_x = -9; + pixel_y = 19 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) -"pFP" = ( -/obj/effect/landmark/yautja_teleport, +/area/almayer/maint/hull/upper/u_m_p) +"pGj" = ( +/obj/structure/largecrate/random/barrel/blue, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/maint/hull/lower/l_a_s) +"pGE" = ( +/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 + }, +/obj/item/device/megaphone, +/obj/item/book/manual/medical_diagnostics_manual, +/turf/open/floor/almayer{ + icon_state = "sterile_green_side" + }, +/area/almayer/medical/lower_medical_medbay) +"pGG" = ( +/obj/effect/landmark/start/doctor, +/obj/structure/sign/safety/maint{ + pixel_y = 26 + }, +/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 @@ -58864,21 +57596,6 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) -"pGM" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"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, @@ -58889,6 +57606,20 @@ icon_state = "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{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "pHp" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/perma) @@ -58898,6 +57629,23 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) +"pHD" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "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 @@ -58916,17 +57664,25 @@ /obj/structure/surface/table/almayer, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/armory) -"pIk" = ( -/obj/structure/ladder{ - height = 1; - id = "AftStarboardMaint" +"pIo" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, -/obj/structure/sign/safety/ladder{ - pixel_x = 8; - pixel_y = 32 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/lower_hull/l_a_s) +/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" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/lower/constr) "pIU" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -58950,6 +57706,16 @@ icon_state = "test_floor4" }, /area/almayer/lifeboat_pumps/north1) +"pJq" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) "pJr" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -58958,31 +57724,6 @@ icon_state = "plate" }, /area/almayer/engineering/lower/engine_core) -"pJt" = ( -/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/stern) -"pJv" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) "pJD" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -59002,38 +57743,72 @@ icon_state = "dark_sterile" }, /area/almayer/living/port_emb) -"pJJ" = ( +"pJS" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) +"pKh" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/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{ - dir = 1; - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) -"pJR" = ( -/obj/effect/step_trigger/teleporter_vector{ - name = "Almayer_AresUp"; - vector_x = -97; - vector_y = 65 +/area/almayer/maint/hull/upper/s_stern) +"pKH" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 }, -/obj/structure/stairs{ +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/aft_hallway) +"pKL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light/small{ dir = 1 }, -/turf/open/floor/almayer/no_build{ +/obj/structure/largecrate/random/secure{ + pixel_x = -5 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) +"pKU" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/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" +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/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" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "DeployWorkR"; + name = "\improper Workshop Shutters" }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/lower/repair_bay) "pKZ" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -59066,6 +57841,15 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) +"pLE" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) "pLO" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; @@ -59086,10 +57870,6 @@ icon_state = "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{ @@ -59120,6 +57900,13 @@ icon_state = "red" }, /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 @@ -59147,41 +57934,6 @@ icon_state = "test_floor4" }, /area/almayer/command/cichallway) -"pNk" = ( -/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{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/execution) -"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) "pNM" = ( /obj/structure/platform{ dir = 4 @@ -59208,20 +57960,16 @@ /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 +"pOp" = ( +/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/lower_hull/l_m_s) +/area/almayer/maint/hull/upper/s_bow) "pOD" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment{ @@ -59232,11 +57980,27 @@ icon_state = "mono" }, /area/almayer/living/pilotbunks) +"pOH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/panic) "pON" = ( /turf/open/floor/almayer/uscm/directional{ dir = 8 }, /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{ @@ -59247,6 +58011,16 @@ icon_state = "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{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/panic) "pPv" = ( /obj/structure/closet/cabinet, /obj/item/reagent_container/food/drinks/bottle/wine, @@ -59271,12 +58045,14 @@ icon_state = "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) +/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."; @@ -59293,6 +58069,15 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"pPG" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "pPM" = ( /obj/structure/surface/rack, /turf/open/floor/almayer{ @@ -59307,6 +58092,15 @@ icon_state = "red" }, /area/almayer/shipboard/port_missiles) +"pPQ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) "pQr" = ( /obj/structure/bed, /turf/open/floor/almayer{ @@ -59330,13 +58124,16 @@ icon_state = "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{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) "pQN" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/franks, @@ -59379,19 +58176,15 @@ icon_state = "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 }, /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 @@ -59423,13 +58216,6 @@ icon_state = "test_floor5" }, /area/almayer/medical/hydroponics) -"pRY" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) "pRZ" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -59437,15 +58223,17 @@ }, /turf/open/floor/plating, /area/almayer/engineering/lower/workshop) -"pSL" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 +"pSF" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/starboard_fore_hallway) "pSQ" = ( /obj/structure/reagent_dispensers/fueltank{ anchored = 1 @@ -59461,13 +58249,6 @@ icon_state = "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 @@ -59476,24 +58257,46 @@ icon_state = "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{ + icon_state = "plate" }, -/area/almayer/command/airoom) -"pTT" = ( -/obj/structure/platform{ - dir = 4 +/area/almayer/maint/upper/u_a_s) +"pTS" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "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 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/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 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/maint/upper/u_a_s) "pUd" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer{ @@ -59515,14 +58318,16 @@ icon_state = "bluecorner" }, /area/almayer/squads/delta) -"pUi" = ( -/obj/effect/decal/cleanable/blood/drip, -/obj/item/tool/crowbar{ - pixel_x = 6; - pixel_y = 1 +"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" }, -/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) "pUj" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/almayer, @@ -59570,34 +58375,23 @@ icon_state = "redfull" }, /area/almayer/shipboard/brig/processing) -"pUJ" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"pUY" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 +"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{ @@ -59635,14 +58429,27 @@ icon_state = "silver" }, /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) +"pWd" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_s) "pWr" = ( /obj/structure/surface/rack, /obj/item/tool/minihoe{ @@ -59670,17 +58477,16 @@ icon_state = "green" }, /area/almayer/shipboard/brig/cells) -"pWA" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk, -/obj/structure/machinery/light{ - dir = 8 +"pWw" = ( +/obj/structure/bed/chair, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "green" + icon_state = "plate" }, -/area/almayer/squads/req) +/area/almayer/maint/hull/upper/u_a_s) "pWN" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -59699,20 +58505,6 @@ icon_state = "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" @@ -59721,15 +58513,6 @@ icon_state = "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; @@ -59745,18 +58528,24 @@ /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{ +/obj/structure/sign/safety/ammunition{ + pixel_x = 32; + pixel_y = 7 + }, +/turf/open/floor/almayer{ dir = 4; - icon_state = "silver" + icon_state = "red" }, -/area/almayer/command/airoom) +/area/almayer/hallways/lower/starboard_midship_hallway) "pYo" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -59776,6 +58565,24 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"pYN" = ( +/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/lower/port_fore_hallway) +"pYQ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "pYS" = ( /obj/structure/pipes/binary/pump/on{ dir = 4 @@ -59791,12 +58598,6 @@ icon_state = "silvercorner" }, /area/almayer/shipboard/brig/cic_hallway) -"pZo" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_umbilical) "pZH" = ( /obj/structure/machinery/shower{ dir = 8 @@ -59838,12 +58639,28 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"qaD" = ( +"qan" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) +"qas" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, -/area/almayer/hull/lower_hull/l_a_s) +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/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/hallways/lower/vehiclehangar) "qaV" = ( /turf/open/floor/almayer{ dir = 10; @@ -59858,23 +58675,9 @@ icon_state = "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) +"qbw" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) "qbx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -59909,6 +58712,22 @@ icon_state = "blue" }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) +"qbU" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) "qbZ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass{ dir = 1; @@ -59918,12 +58737,6 @@ icon_state = "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{ @@ -59931,12 +58744,6 @@ }, /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; @@ -60013,12 +58820,27 @@ icon_state = "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) +"qdV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "qec" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -60029,14 +58851,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"qee" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_s) "qej" = ( /obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/almayer{ @@ -60115,6 +58929,12 @@ icon_state = "plate" }, /area/almayer/squads/alpha_bravo_shared) +"qfq" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/lower/port_umbilical) "qfy" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -60150,6 +58970,21 @@ }, /turf/open/floor/carpet, /area/almayer/living/commandbunks) +"qfI" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) +"qfQ" = ( +/obj/structure/surface/rack, +/obj/item/stack/folding_barricade/three, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/panic) "qga" = ( /obj/structure/machinery/door/airlock/almayer/maint/reinforced{ dir = 1 @@ -60158,6 +58993,13 @@ icon_state = "test_floor4" }, /area/almayer/living/starboard_garden) +"qgn" = ( +/obj/item/stool, +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_s) "qgr" = ( /obj/item/trash/plate{ pixel_x = 9; @@ -60175,34 +59017,15 @@ }, /turf/open/floor/carpet, /area/almayer/living/commandbunks) -"qgG" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/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 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) "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, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, /area/almayer/command/combat_correspondent) "qgN" = ( /obj/structure/bed/chair{ @@ -60233,12 +59056,12 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"qhc" = ( -/obj/structure/pipes/standard/simple/hidden/supply, +"qhg" = ( +/obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/maint/upper/u_f_s) "qhx" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" @@ -60256,14 +59079,6 @@ icon_state = "sterile_green_side" }, /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" - }, -/area/almayer/hull/upper_hull/u_a_s) "qhD" = ( /obj/structure/closet{ name = "backpack storage" @@ -60276,6 +59091,36 @@ icon_state = "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 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"qhT" = ( +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/aft_hallway) "qhU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -60291,15 +59136,22 @@ icon_state = "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 }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"qig" = ( +/obj/effect/landmark/yautja_teleport, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/lower_hull) +/area/almayer/maint/hull/lower/l_f_s) "qih" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; @@ -60321,14 +59173,9 @@ /area/almayer/medical/lower_medical_lobby) "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{ @@ -60336,12 +59183,6 @@ }, /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, @@ -60358,6 +59199,19 @@ icon_state = "silvercorner" }, /area/almayer/command/computerlab) +"qjK" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) +"qjL" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "qjN" = ( /turf/open/floor/almayer{ icon_state = "dark_sterile" @@ -60371,33 +59225,35 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"qjZ" = ( -/turf/closed/wall/almayer, -/area/almayer/shipboard/stern_point_defense) -"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/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 }, -/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_f_p) +/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) -"qkn" = ( -/obj/structure/machinery/power/apc/almayer{ - cell_type = /obj/item/cell/hyper; - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "qkP" = ( /obj/item/frame/light_fixture{ anchored = 1; @@ -60434,13 +59290,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"qld" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_umbilical) "qlm" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/warning_stripes{ @@ -60458,6 +59307,12 @@ }, /turf/open/floor/carpet, /area/almayer/living/commandbunks) +"qlu" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "qlz" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -60475,21 +59330,16 @@ /obj/structure/disposalpipe/trunk, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"qlS" = ( -/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 - }, +"qlL" = ( +/obj/item/reagent_container/food/drinks/cans/souto, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + icon_state = "cargo_arrow" }, -/area/almayer/shipboard/brig/main_office) +/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{ @@ -60504,6 +59354,27 @@ icon_state = "bluecorner" }, /area/almayer/squads/delta) +"qmq" = ( +/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/maint/hull/upper/u_a_s) "qmy" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/door_control{ @@ -60539,21 +59410,6 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/medical_science) -"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"; - closeOtherId = "brigmaint_n" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/main_office) "qmD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -60566,12 +59422,28 @@ icon_state = "dark_sterile" }, /area/almayer/medical/medical_science) -"qmL" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +"qmK" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/hallways/upper/fore_hallway) +"qmM" = ( +/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/shipboard/panic) "qmP" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine/uscm, @@ -60596,6 +59468,12 @@ /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{ + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) "qmY" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -60633,6 +59511,14 @@ icon_state = "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{ @@ -60648,18 +59534,18 @@ icon_state = "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 +"qnH" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "orange" }, +/area/almayer/hallways/upper/midship_hallway) +"qnX" = ( +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "red" }, -/area/almayer/hull/lower_hull/l_a_s) +/area/almayer/lifeboat_pumps/south2) "qom" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/chem_dispenser/soda{ @@ -60705,6 +59591,19 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop/hangar) +"qoM" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_p) +"qoN" = ( +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_f_p) "qoR" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" @@ -60738,6 +59637,36 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/chemistry) +"qpV" = ( +/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/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{ + icon_state = "ai_cargo" + }, +/area/almayer/command/airoom) +"qqa" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/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"; @@ -60760,40 +59689,6 @@ icon_state = "redcorner" }, /area/almayer/command/lifeboat) -"qqC" = ( -/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/main_office) -"qqJ" = ( -/obj/structure/surface/table/almayer, -/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/lower/workshop) "qqK" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ @@ -60818,16 +59713,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"qqV" = ( -/obj/structure/machinery/cm_vending/clothing/military_police_warden, -/turf/open/floor/wood/ship, -/area/almayer/shipboard/brig/chief_mp_office) -"qqW" = ( -/obj/structure/closet/firecloset, +"qqS" = ( +/obj/structure/machinery/light/small, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/stern) +/area/almayer/maint/hull/upper/s_stern) "qra" = ( /obj/structure/reagent_dispensers/fueltank/custom, /turf/open/floor/almayer{ @@ -60852,12 +59743,10 @@ icon_state = "silver" }, /area/almayer/command/computerlab) -"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, @@ -60870,40 +59759,12 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/engineering/ce_room) -"qtj" = ( -/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" - }, -/area/almayer/hallways/upper/port) -"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" }, /area/almayer/living/gym) -"qtS" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "quj" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -60931,39 +59792,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/cryo_tubes) -"quy" = ( -/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) -"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" - }, -/area/almayer/hallways/port_hallway) "quJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -61002,12 +59830,52 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"qvh" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silvercorner" + }, +/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{ + icon_state = "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{ + icon_state = "dark_sterile" + }, +/area/almayer/maint/upper/u_a_s) "qvI" = ( /obj/structure/sign/safety/maint{ pixel_x = -17 @@ -61063,18 +59931,38 @@ }, /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{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) +"qwY" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_s) "qxe" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1 @@ -61129,12 +60017,6 @@ icon_state = "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"; @@ -61161,6 +60043,15 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) +"qxI" = ( +/turf/open/floor/almayer{ + icon_state = "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{ @@ -61180,6 +60071,13 @@ dir = 4 }, /area/almayer/medical/containment/cell) +"qxS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_f_s) "qyi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -61204,6 +60102,16 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"qyA" = ( +/obj/structure/machinery/cm_vending/clothing/intelligence_officer{ + density = 0; + pixel_x = -32 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/almayer/command/computerlab) "qyD" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, @@ -61211,21 +60119,13 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"qyF" = ( -/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{ - dir = 5; - icon_state = "plating" +"qyG" = ( +/obj/structure/sign/safety/hazard{ + desc = "A sign that warns of a hazardous environment nearby"; + name = "\improper Warning: Hazardous Environment" }, -/area/almayer/hallways/vehiclehangar) +/turf/closed/wall/almayer, +/area/almayer/maint/hull/lower/l_f_p) "qyK" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -61233,6 +60133,21 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) +"qyP" = ( +/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/lower/port_fore_hallway) "qyW" = ( /obj/structure/bed/chair{ dir = 4 @@ -61241,6 +60156,13 @@ icon_state = "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, @@ -61264,6 +60186,12 @@ icon_state = "plating" }, /area/almayer/shipboard/port_point_defense) +"qzA" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/p_bow) "qAs" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -61273,6 +60201,16 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop) +"qAy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) "qAA" = ( /obj/structure/machinery/power/monitor{ name = "Main Power Grid Monitoring" @@ -61293,8 +60231,34 @@ icon_state = "orange" }, /area/almayer/engineering/lower) +"qAG" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "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 @@ -61308,13 +60272,16 @@ pixel_x = -16; pixel_y = 5 }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, /turf/open/floor/almayer{ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"qBl" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "qBq" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; @@ -61338,6 +60305,18 @@ icon_state = "green" }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) "qCc" = ( /obj/structure/sign/safety/security{ pixel_x = 15; @@ -61348,12 +60327,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"qCi" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "qCo" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -61364,6 +60337,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"; @@ -61371,6 +60354,16 @@ }, /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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_m_s) "qCU" = ( /obj/structure/machinery/light{ dir = 4 @@ -61405,29 +60398,12 @@ icon_state = "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, +"qDB" = ( +/obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/almayer{ - icon_state = "redfull" + icon_state = "test_floor4" }, -/area/almayer/command/cic) +/area/almayer/maint/hull/upper/u_a_p) "qDP" = ( /obj/structure/machinery/light{ dir = 4 @@ -61437,6 +60413,15 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_four) +"qDS" = ( +/obj/item/stack/tile/carpet{ + amount = 20 + }, +/obj/structure/surface/rack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "qEk" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -61450,6 +60435,15 @@ icon_state = "plating" }, /area/almayer/command/cic) +"qEl" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) "qEn" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -61471,6 +60465,25 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/processing) +"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/sign/safety/stairs{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/sign/safety/west{ + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_fore_hallway) "qEA" = ( /obj/structure/bed, /obj/structure/machinery/flasher{ @@ -61495,33 +60508,22 @@ icon_state = "plate" }, /area/almayer/engineering/lower) -"qEW" = ( -/obj/structure/sign/poster/ad{ - pixel_x = 30 - }, -/obj/structure/closet, -/obj/item/clothing/mask/cigarette/weed, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"qFb" = ( -/obj/structure/sign/safety/storage{ - pixel_y = -32 +"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{ - icon_state = "green" + icon_state = "test_floor4" }, -/area/almayer/hallways/starboard_hallway) +/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) -"qFl" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/hull/upper_hull/u_f_p) "qFu" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -61559,15 +60561,19 @@ icon_state = "bluefull" }, /area/almayer/squads/delta) -"qFW" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = 32 +"qFS" = ( +/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/upper_hull/u_a_p) +/area/almayer/maint/hull/lower/l_a_s) +"qFX" = ( +/turf/closed/wall/almayer, +/area/almayer/shipboard/brig/mp_bunks) "qGc" = ( /turf/open/floor/almayer{ dir = 1; @@ -61591,6 +60597,12 @@ icon_state = "cargo" }, /area/almayer/engineering/lower/workshop/hangar) +"qGC" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "qGF" = ( /obj/structure/machinery/optable, /turf/open/floor/almayer{ @@ -61603,38 +60615,12 @@ icon_state = "cargo" }, /area/almayer/lifeboat_pumps/south2) -"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) "qHg" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "cargo_arrow" }, /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; @@ -61645,6 +60631,21 @@ icon_state = "test_floor4" }, /area/almayer/powered) +"qHD" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) +"qHG" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_stern) "qHM" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -61655,6 +60656,30 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) +"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{ + icon_state = "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; @@ -61666,6 +60691,16 @@ icon_state = "test_floor4" }, /area/almayer/command/corporateliaison) +"qIF" = ( +/obj/structure/sign/safety/rewire{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/fore_hallway) "qIL" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/camera/autoname/almayer{ @@ -61735,21 +60770,6 @@ icon_state = "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; @@ -61793,6 +60813,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" @@ -61805,16 +60838,15 @@ icon_state = "plating" }, /area/almayer/engineering/upper_engineering) -"qKt" = ( -/obj/structure/closet/emcloset, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" +"qKl" = ( +/obj/structure/sign/safety/intercom{ + pixel_x = 32; + pixel_y = 7 }, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/shipboard/panic) "qKz" = ( /obj/structure/machinery/light/small, /turf/open/floor/almayer{ @@ -61822,27 +60854,15 @@ icon_state = "silver" }, /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" - }, -/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 +"qKK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/step_trigger/clone_cleaner, +/obj/structure/largecrate/random/barrel/blue, /turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/hull/lower/l_a_p) "qKY" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -61853,6 +60873,19 @@ icon_state = "orange" }, /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 + }, +/turf/open/floor/almayer/aicore/glowing/no_build{ + icon_state = "ai_floor3" + }, +/area/almayer/command/airoom) "qLg" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ @@ -61875,23 +60908,15 @@ icon_state = "dark_sterile" }, /area/almayer/medical/containment) -"qLj" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" +"qLk" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer{ - icon_state = "blue" + icon_state = "test_floor4" }, -/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) +/area/almayer/maint/upper/u_a_p) "qLs" = ( /obj/effect/landmark/start/maint, /turf/open/floor/plating/plating_catwalk, @@ -61925,20 +60950,10 @@ }, /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{ + icon_state = "ai_floor3" }, /area/almayer/command/airoom) "qLV" = ( @@ -61949,15 +60964,13 @@ icon_state = "silver" }, /area/almayer/command/computerlab) -"qMf" = ( -/obj/structure/bed/chair, -/turf/open/floor/almayer{ - icon_state = "plate" +"qLY" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 }, -/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/maint/hull/lower/l_m_s) "qMD" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/flashbangs, @@ -61990,6 +61003,20 @@ }, /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{ + dir = 4; + icon_state = "ai_silver" + }, +/area/almayer/command/airoom) "qNd" = ( /obj/structure/machinery/cryopod, /obj/structure/machinery/light{ @@ -61999,22 +61026,6 @@ icon_state = "cargo" }, /area/almayer/squads/delta) -"qNy" = ( -/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/autoopenclose{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "qNI" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -62024,6 +61035,20 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/upper/port) +"qNK" = ( +/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/maint/hull/lower/l_f_s) "qNR" = ( /obj/structure/disposalpipe/junction, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -62058,19 +61083,44 @@ /obj/structure/disposalpipe/junction, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/gym) -"qOU" = ( -/obj/structure/machinery/door/airlock/almayer/maint, +"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 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) +"qOY" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_f_p) -"qPg" = ( -/obj/item/tool/warning_cone{ - pixel_x = -12; - pixel_y = 16 +/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{ + dir = 1; + icon_state = "sterile_green_side" }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_a_s) "qPD" = ( /turf/open/floor/almayer, /area/almayer/shipboard/brig/perma) @@ -62087,9 +61137,6 @@ icon_state = "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{ @@ -62099,6 +61146,10 @@ icon_state = "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{ @@ -62125,6 +61176,9 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) +"qQu" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/upper/fore_hallway) "qQy" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -62132,31 +61186,35 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/lower) -"qQP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/nonpress_ag{ +"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) -"qQS" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S"; - layer = 3.3 +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" }, -/obj/structure/machinery/light{ - dir = 8 +/area/almayer/hallways/upper/midship_hallway) +"qQS" = ( +/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/no_build{ - icon_state = "tcomms" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/area/almayer/command/airoom) +/area/almayer/hallways/lower/starboard_aft_hallway) "qRj" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -62186,12 +61244,29 @@ icon_state = "test_floor4" }, /area/almayer/command/corporateliaison) +"qRX" = ( +/obj/structure/pipes/standard/simple/hidden/supply/no_boom{ + dir = 4 + }, +/turf/open/floor/almayer/aicore/glowing/no_build{ + icon_state = "ai_floor3" + }, +/area/almayer/command/airoom) "qSm" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/shipboard/port_point_defense) +"qSp" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/aft_hallway) "qSE" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/cholula, @@ -62199,6 +61274,14 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) +"qSI" = ( +/obj/structure/surface/table/almayer, +/obj/item/tank/oxygen/red, +/obj/item/tool/screwdriver, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_umbilical) "qSK" = ( /obj/item/stack/sheet/metal{ layer = 2.9; @@ -62220,6 +61303,28 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"qTi" = ( +/obj/structure/closet/crate, +/obj/item/ammo_box/magazine/l42a, +/obj/item/ammo_box/magazine/l42a, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) +"qTu" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_umbilical) +"qTA" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_p) "qTQ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -62228,16 +61333,17 @@ icon_state = "red" }, /area/almayer/shipboard/brig/chief_mp_office) +"qTS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 + }, +/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) -"qTZ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_umbilical) "qUh" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = -17 @@ -62246,12 +61352,6 @@ icon_state = "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{ @@ -62271,6 +61371,12 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/charlie_delta_shared) +"qUu" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/hallways/upper/fore_hallway) "qUx" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out"; @@ -62291,18 +61397,11 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"qUE" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"qUH" = ( -/obj/structure/surface/rack, +"qUK" = ( /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "blue" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/upper/fore_hallway) "qUL" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 4 @@ -62314,6 +61413,11 @@ icon_state = "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{ @@ -62336,14 +61440,17 @@ icon_state = "plate" }, /area/almayer/living/captain_mess) +"qVE" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "qVF" = ( /turf/open/floor/almayer{ icon_state = "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; @@ -62357,17 +61464,6 @@ icon_state = "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; @@ -62387,12 +61483,34 @@ icon_state = "plate" }, /area/almayer/squads/delta) +"qWx" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "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{ + dir = 8; + icon_state = "emerald" + }, +/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 @@ -62407,12 +61525,18 @@ dir = 4 }, /area/almayer/medical/containment/cell/cl) -"qWT" = ( -/obj/effect/landmark/yautja_teleport, +"qXh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 6; + icon_state = "orange" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/hallways/upper/midship_hallway) "qXk" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -62444,14 +61568,6 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/perma) -"qXM" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "qXO" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/snacks/mre_pack/xmas3{ @@ -62470,9 +61586,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"qXR" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/stern) "qXS" = ( /obj/structure/stairs{ icon_state = "ramptop" @@ -62502,14 +61615,12 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"qYo" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 6" - }, +"qYd" = ( /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 6; + icon_state = "red" }, -/area/almayer/engineering/lower/engine_core) +/area/almayer/lifeboat_pumps/south2) "qYq" = ( /turf/open/floor/almayer{ dir = 5; @@ -62532,21 +61643,20 @@ allow_construction = 0 }, /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" }, /area/almayer/command/lifeboat) +"qYz" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) "qYC" = ( /obj/structure/disposalpipe/down/almayer{ dir = 4; @@ -62561,9 +61671,6 @@ /area/almayer/command/lifeboat) "qYN" = ( /obj/structure/surface/table/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, /obj/structure/machinery/light{ dir = 1 }, @@ -62586,10 +61693,6 @@ icon_state = "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 @@ -62600,6 +61703,20 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "qZA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -62637,6 +61754,21 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "qZX" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -62651,18 +61783,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/lower/engine_core) -"rav" = ( -/obj/structure/platform{ - dir = 4 - }, -/obj/item/reagent_container/glass/rag, -/obj/structure/machinery/light/small{ - dir = 4 - }, +"raE" = ( +/obj/structure/machinery/light, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/hallways/lower/port_fore_hallway) "raK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -62675,30 +61801,31 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"rbi" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/box/ids{ - pixel_x = -6; - pixel_y = 8 +"raO" = ( +/obj/structure/bed/sofa/south/grey/right, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/item/device/flash, -/obj/structure/machinery/light{ - dir = 8; - invisibility = 101 +/area/almayer/maint/hull/upper/u_f_p) +"rbd" = ( +/obj/structure/barricade/handrail{ + dir = 8 + }, +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "red" + icon_state = "test_floor5" }, -/area/almayer/shipboard/brig/main_office) -"rbv" = ( -/obj/structure/machinery/light/small{ +/area/almayer/hallways/lower/starboard_midship_hallway) +"rbp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/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"; @@ -62707,9 +61834,7 @@ 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{ @@ -62749,16 +61874,6 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/execution) -"rbX" = ( -/obj/structure/sign/safety/manualopenclose{ - pixel_x = 15; - pixel_y = -32 - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_y = -32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "rbY" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -62783,14 +61898,13 @@ icon_state = "sterile_green_side" }, /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 @@ -62811,19 +61925,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" @@ -62833,6 +61934,25 @@ }, /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{ + icon_state = "test_floor4" + }, +/area/almayer/command/cic) "rdA" = ( /obj/structure/sign/safety/maint{ pixel_x = -17; @@ -62851,9 +61971,6 @@ icon_state = "orange" }, /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{ @@ -62866,6 +61983,12 @@ icon_state = "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 @@ -62880,15 +62003,15 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"rdY" = ( -/obj/structure/machinery/light{ - dir = 8 - }, +"rdT" = ( +/obj/structure/machinery/power/apc/almayer, /turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/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 @@ -62909,6 +62032,21 @@ icon_state = "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{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/squads/req) "reL" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/snacks/sliceable/bread{ @@ -62922,6 +62060,24 @@ icon_state = "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{ + icon_state = "orange" + }, +/area/almayer/maint/upper/mess) +"reN" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/lower/cryo_cells) "rfa" = ( /obj/effect/landmark/start/marine/medic/alpha, /obj/effect/landmark/late_join/alpha, @@ -62935,17 +62091,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) +"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 @@ -62988,18 +62138,23 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/cryo) +"rgk" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "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) "rgK" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 @@ -63019,22 +62174,40 @@ icon_state = "silver" }, /area/almayer/living/auxiliary_officer_office) +"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{ icon_state = "emeraldcorner" }, /area/almayer/living/briefing) -"rhl" = ( -/obj/structure/disposalpipe/segment{ +"rhm" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/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{ + dir = 1; + icon_state = "orange" }, +/area/almayer/hallways/upper/midship_hallway) +"rht" = ( +/obj/structure/machinery/vending/cola, /turf/open/floor/almayer{ - icon_state = "redcorner" + icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/maint/hull/upper/s_stern) "rhy" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp{ @@ -63049,6 +62222,12 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) +"rhD" = ( +/obj/structure/surface/rack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "rhO" = ( /obj/structure/machinery/vending/cola/research{ pixel_x = 4 @@ -63073,21 +62252,41 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/perma) -"ril" = ( -/obj/structure/prop/invuln/lattice_prop{ - dir = 1; - icon_state = "lattice-simple"; - pixel_x = -16; - pixel_y = 17 +"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" + icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_m_p) -"rix" = ( -/obj/structure/prop/invuln/joey, +/area/almayer/maint/hull/upper/s_bow) +"riB" = ( +/obj/structure/largecrate/random/case/small, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/maint/hull/lower/l_a_s) +"riC" = ( +/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/shipboard/panic) "riE" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -63106,13 +62305,6 @@ icon_state = "orange" }, /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{ @@ -63138,6 +62330,22 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"rjr" = ( +/turf/open/floor/almayer{ + icon_state = "silvercorner" + }, +/area/almayer/hallways/upper/midship_hallway) +"rjF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "rjG" = ( /obj/structure/pipes/standard/tank/oxygen, /turf/open/floor/almayer{ @@ -63156,7 +62364,7 @@ /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; @@ -63192,6 +62400,15 @@ icon_state = "blue" }, /area/almayer/living/port_emb) +"rjX" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/north2) "rka" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, @@ -63204,24 +62421,27 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) -"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) +"rkV" = ( +/obj/structure/window/framed/almayer/hull/hijack_bustable, +/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/plating, +/area/almayer/shipboard/brig/warden_office) "rlc" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, @@ -63258,21 +62478,15 @@ icon_state = "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 +"rlD" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "silver" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/lower/repair_bay) "rlQ" = ( /turf/open/floor/almayer{ dir = 1; @@ -63304,18 +62518,27 @@ icon_state = "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{ + dir = 1; + icon_state = "red" + }, +/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" + icon_state = "mono" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/lifeboat_pumps/south2) "rmx" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, @@ -63324,6 +62547,13 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/general_equipment) +"rmz" = ( +/obj/structure/sign/safety/conference_room{ + pixel_x = 14; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "rmD" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -63341,12 +62571,15 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/upper_engineering/port) -"rmN" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +"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) "rnF" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ @@ -63370,16 +62603,17 @@ 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, +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 1; + icon_state = "blue" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/upper/midship_hallway) "rnN" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/sign/nosmoking_2{ @@ -63394,15 +62628,12 @@ /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 - }, +"roj" = ( +/obj/structure/largecrate/random/barrel/green, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/hull/lower/p_bow) "rou" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -63443,36 +62674,18 @@ }, /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) -"rpF" = ( -/obj/structure/machinery/body_scanconsole{ - dir = 8 +"rpG" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" + icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/surgery) +/area/almayer/maint/hull/upper/u_m_s) "rpK" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -63482,18 +62695,15 @@ icon_state = "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 +"rpV" = ( +/obj/structure/machinery/light{ + dir = 8 }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "silver" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/upper/midship_hallway) "rqb" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = 32 @@ -63510,15 +62720,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 }, -/area/almayer/hallways/port_hallway) +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -14; + pixel_y = 13 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/mess) "rqE" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -63530,6 +62763,13 @@ icon_state = "plate" }, /area/almayer/squads/delta) +"rqQ" = ( +/obj/structure/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing_aux" + }, +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "rqS" = ( /obj/structure/surface/table/almayer, /obj/item/folder/red{ @@ -63545,13 +62785,15 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/evidence_storage) -"rri" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/lower/constr) "rrq" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -63607,35 +62849,25 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/offices) -"rrV" = ( -/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/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" +"rrU" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, -/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{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_aft_hallway) "rsM" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -63649,14 +62881,48 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer, /area/almayer/command/computerlab) -"rsY" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 +"rsP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/safety/autoopenclose{ + pixel_x = 8; + pixel_y = -32 + }, +/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{ + icon_state = "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 + }, +/obj/item/device/camera_film{ + pixel_x = -5 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/command/combat_correspondent) "rtd" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -63669,7 +62935,7 @@ "rtj" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, /area/almayer/squads/req) "rtA" = ( @@ -63766,18 +63032,37 @@ "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) "rvT" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer{ icon_state = "emerald" }, /area/almayer/squads/charlie) -"rwb" = ( -/obj/structure/largecrate/random/barrel/white, +"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{ - icon_state = "plate" + dir = 4; + icon_state = "orange" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/hallways/lower/starboard_midship_hallway) "rwq" = ( /obj/structure/sign/safety/cryo{ pixel_x = 7; @@ -63802,11 +63087,6 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower) -"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) "rwY" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -63818,43 +63098,62 @@ }, /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{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) -"rxG" = ( -/obj/structure/sign/safety/medical{ - pixel_x = 8; - pixel_y = -32 +/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 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/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/aicore/no_build, +/area/almayer/command/airoom) +"rxq" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, /turf/open/floor/almayer{ - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/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{ @@ -63867,6 +63166,14 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) +"ryJ" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_a_p) "ryR" = ( /obj/structure/machinery/cm_vending/clothing/staff_officer_armory, /turf/open/floor/almayer{ @@ -63881,38 +63188,52 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/upper/port) -"rzN" = ( -/turf/open/floor/almayer{ - icon_state = "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 +"rzk" = ( +/obj/item/tool/screwdriver, +/obj/structure/platform_decoration{ + dir = 8 }, -/obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_a_s) -"rzY" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 + icon_state = "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{ - dir = 1; - icon_state = "red" + icon_state = "dark_sterile" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/medical/containment) "rAb" = ( /turf/open/floor/almayer{ icon_state = "bluecorner" }, /area/almayer/living/briefing) +"rAo" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/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 @@ -63955,20 +63276,10 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"rAX" = ( -/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{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) +"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{ @@ -63992,16 +63303,6 @@ /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{ @@ -64019,29 +63320,28 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) -"rBH" = ( -/obj/structure/machinery/constructable_frame{ - icon_state = "box_2" - }, +"rBD" = ( +/obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/almayer{ - icon_state = "mono" + icon_state = "test_floor4" }, -/area/almayer/lifeboat_pumps/south1) -"rBV" = ( -/obj/structure/bed/chair/bolted, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" +/area/almayer/maint/upper/u_m_p) +"rBY" = ( +/obj/structure/machinery/shower{ + pixel_y = 16 }, -/area/almayer/shipboard/brig/main_office) -"rCi" = ( -/obj/structure/machinery/camera/autoname/almayer/containment/ares{ - dir = 8 +/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{ + icon_state = "plate" }, -/area/almayer/command/airoom) +/area/almayer/maint/hull/lower/l_m_p) "rCl" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -64052,31 +63352,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"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 - }, -/obj/structure/stairs{ - dir = 1 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) "rCD" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -64099,22 +63374,10 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/briefing) -"rCU" = ( -/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{ - dir = 1; - name = "\improper Warden's Office"; - closeOtherId = "brigwarden" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/chief_mp_office) +"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 @@ -64147,12 +63410,10 @@ icon_state = "green" }, /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{ @@ -64189,57 +63450,52 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"rDB" = ( -/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/lower/engine_core) -"rDI" = ( -/obj/structure/largecrate/supply, -/obj/structure/sign/safety/bulkhead_door{ - pixel_y = 32 +"rDH" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"rDO" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 }, -/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/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) "rDQ" = ( /turf/open/floor/almayer{ icon_state = "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) -"rDY" = ( -/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" +"rEd" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "laddersouthwest"; + name = "\improper South West Ladders Shutters" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/chief_mp_office) -"rEb" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/step_trigger/clone_cleaner, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/stern) +/area/almayer/hallways/lower/port_fore_hallway) "rEf" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -64256,17 +63512,6 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower) -"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" - }, -/area/almayer/hull/upper_hull/u_f_p) "rEr" = ( /obj/structure/prop/almayer/name_stencil{ icon_state = "almayer3" @@ -64275,12 +63520,12 @@ icon_state = "outerhull_dir" }, /area/space) -"rEu" = ( -/obj/structure/largecrate/random/case/double, +"rEt" = ( +/obj/structure/largecrate/random/secure, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "cargo" }, -/area/almayer/hallways/vehiclehangar) +/area/almayer/maint/hull/lower/l_f_s) "rEv" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -64294,28 +63539,19 @@ icon_state = "plate" }, /area/almayer/squads/delta) -"rEL" = ( -/obj/structure/machinery/cm_vending/gear/intelligence_officer, -/turf/open/floor/almayer{ - icon_state = "silverfull" - }, -/area/almayer/command/computerlab) -"rEO" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" +"rEK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "red" +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/area/almayer/shipboard/brig/main_office) -"rEQ" = ( -/obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 }, -/area/almayer/shipboard/brig/surgery) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "rEY" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -64352,15 +63588,6 @@ icon_state = "orangecorner" }, /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{ @@ -64374,33 +63601,23 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"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" }, /area/almayer/squads/alpha) -"rGl" = ( -/obj/structure/janitorialcart, -/obj/item/tool/mop, +"rGr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) +"rGz" = ( +/obj/structure/closet/firecloset, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/maint/hull/upper/u_m_s) "rGE" = ( /obj/structure/machinery/door/airlock/almayer/command{ name = "\improper Conference Room" @@ -64425,6 +63642,15 @@ icon_state = "test_floor4" }, /area/almayer/command/cichallway) +"rGL" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/maint/upper/mess) "rGU" = ( /obj/structure/machinery/computer/skills{ req_one_access_txt = "200" @@ -64458,13 +63684,22 @@ name = "\improper Treatment Center" }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "test_floor4" + }, +/area/almayer/medical/lower_medical_medbay) +"rHq" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"rHr" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/area/almayer/medical/lower_medical_medbay) -"rHs" = ( -/obj/item/storage/firstaid, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/hallways/lower/starboard_aft_hallway) "rHw" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 @@ -64476,6 +63711,17 @@ icon_state = "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, @@ -64508,6 +63754,10 @@ icon_state = "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; @@ -64521,17 +63771,6 @@ }, /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{ @@ -64542,6 +63781,27 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"rIP" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "rIW" = ( /obj/structure/machinery/cm_vending/gear/synth, /obj/effect/decal/cleanable/cobweb2, @@ -64549,13 +63809,12 @@ icon_state = "cargo" }, /area/almayer/living/synthcloset) -"rJb" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 +"rJf" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/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!"; @@ -64614,39 +63873,6 @@ /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/living/briefing) -"rJN" = ( -/obj/structure/sign/safety/rewire{ - pixel_y = 32 - }, -/obj/item/bedsheet/brown{ - layer = 3.1 - }, -/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{ - dir = 5; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "rKd" = ( /turf/open/floor/almayer/uscm/directional{ dir = 5 @@ -64665,22 +63891,16 @@ icon_state = "rasputin15" }, /area/almayer/powered/agent) -"rKs" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - req_one_access = null; - req_one_access_txt = "2;30;34" +"rKt" = ( +/obj/structure/sign/safety/rewire{ + pixel_x = 32 }, +/obj/structure/machinery/power/apc/almayer, /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 + dir = 4; + icon_state = "orange" }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/lower/port_aft_hallway) "rKA" = ( /obj/structure/bed{ can_buckle = 0 @@ -64724,6 +63944,30 @@ icon_state = "containment_window_h" }, /area/almayer/medical/containment/cell/cl) +"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{ + icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/lower/cryo_cells) "rLP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -64741,6 +63985,27 @@ dir = 8 }, /area/almayer/medical/containment/cell/cl) +"rMh" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/north1) +"rMj" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) +"rMO" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/lower/s_bow) "rMT" = ( /obj/structure/bed/chair/office/dark{ dir = 8 @@ -64796,15 +64061,6 @@ icon_state = "dark_sterile" }, /area/almayer/living/port_emb) -"rNF" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) "rNK" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer{ @@ -64820,15 +64076,6 @@ icon_state = "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, @@ -64838,6 +64085,14 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) +"rOv" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "rOC" = ( /obj/structure/machinery/light{ dir = 1 @@ -64860,14 +64115,17 @@ icon_state = "plate" }, /area/almayer/living/gym) -"rPt" = ( -/turf/open/floor/wood/ship, -/area/almayer/engineering/ce_room) -"rPC" = ( +"rPq" = ( +/obj/structure/machinery/constructable_frame{ + icon_state = "box_2" + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/maint/hull/upper/p_stern) +"rPt" = ( +/turf/open/floor/wood/ship, +/area/almayer/engineering/ce_room) "rPE" = ( /obj/structure/bed/chair{ dir = 8; @@ -64877,6 +64135,11 @@ icon_state = "plate" }, /area/almayer/squads/delta) +"rPF" = ( +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "rPO" = ( /turf/open/floor/almayer{ dir = 10; @@ -64904,12 +64167,14 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/processing) -"rQj" = ( -/obj/structure/largecrate/random/barrel/yellow, +"rQs" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/maint/hull/lower/l_f_p) "rQt" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -64917,6 +64182,20 @@ /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{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/panic) "rQy" = ( /turf/closed/wall/almayer/white/reinforced, /area/almayer/medical/hydroponics) @@ -64926,12 +64205,6 @@ icon_state = "cargo_arrow" }, /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 @@ -64960,20 +64233,6 @@ "rRq" = ( /turf/closed/wall/almayer, /area/almayer/lifeboat_pumps/south2) -"rRr" = ( -/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{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "rRz" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -64981,6 +64240,11 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"rRT" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/upper/midship_hallway) "rRU" = ( /obj/structure/machinery/light{ dir = 8 @@ -65019,6 +64283,30 @@ icon_state = "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{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_fore_hallway) "rSG" = ( /obj/structure/toilet{ pixel_y = 16 @@ -65033,30 +64321,46 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) -"rSK" = ( -/obj/structure/machinery/light/small, +"rSH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/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 + }, +/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{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_f_p) +/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) +"rTA" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "rTJ" = ( /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/floor/almayer{ icon_state = "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 @@ -65072,12 +64376,25 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) +"rUi" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + icon_state = "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 @@ -65086,44 +64403,52 @@ icon_state = "silver" }, /area/almayer/command/computerlab) -"rUU" = ( -/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" +"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 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) -"rVm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" +/area/almayer/maint/hull/lower/l_f_p) +"rVt" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/part_fabricator/dropship, /turf/open/floor/almayer{ - icon_state = "redcorner" + icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) -"rVo" = ( -/obj/structure/machinery/light/small{ - dir = 1 +/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 = "plate" }, -/area/almayer/hull/lower_hull/l_a_s) +/area/almayer/hallways/lower/starboard_aft_hallway) "rVN" = ( /turf/open/floor/almayer{ dir = 8; icon_state = "red" }, /area/almayer/shipboard/port_missiles) +"rWb" = ( +/obj/item/tool/minihoe{ + pixel_x = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "rWn" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -65143,16 +64468,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) -"rWF" = ( -/obj/structure/machinery/firealarm{ - dir = 4; - pixel_x = 21 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +"rWv" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/area/almayer/shipboard/brig/chief_mp_office) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) +"rWz" = ( +/turf/open/floor/plating, +/area/almayer/maint/upper/u_m_s) "rWL" = ( /obj/structure/barricade/metal, /turf/open/floor/almayer{ @@ -65189,6 +64513,12 @@ icon_state = "cargo" }, /area/almayer/living/cryo_cells) +"rXq" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_a_p) "rXv" = ( /obj/structure/machinery/door/airlock/almayer/maint, /obj/structure/disposalpipe/segment{ @@ -65198,6 +64528,47 @@ icon_state = "test_floor4" }, /area/almayer/living/gym) +"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/execution) +"rXF" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_m_p) +"rXH" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) +"rXQ" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_bow) "rXS" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ @@ -65210,6 +64581,14 @@ icon_state = "test_floor4" }, /area/almayer/squads/delta) +"rXU" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/maint/hull/lower/l_f_s) "rYh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -65225,13 +64604,6 @@ icon_state = "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, @@ -65251,6 +64623,17 @@ icon_state = "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{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "rYJ" = ( /obj/structure/surface/table/almayer, /obj/item/device/taperecorder, @@ -65258,17 +64641,31 @@ icon_state = "plate" }, /area/almayer/living/offices/flight) -"rZz" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 +"rYU" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -30 +/area/almayer/maint/upper/u_a_s) +"rZt" = ( +/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 = "green" + icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/port_fore_hallway) "rZB" = ( /obj/structure/pipes/standard/simple/visible{ dir = 9 @@ -65277,17 +64674,6 @@ icon_state = "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, @@ -65296,6 +64682,29 @@ icon_state = "plate" }, /area/almayer/shipboard/starboard_point_defense) +"rZZ" = ( +/obj/structure/sign/poster{ + desc = "It says DRUG."; + icon_state = "poster2"; + pixel_y = 30 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/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{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/port_fore_hallway) "saL" = ( /obj/structure/machinery/door/airlock/almayer/generic/corporate{ name = "Corporate Liaison's Closet" @@ -65313,26 +64722,30 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/notunnel) -"sbJ" = ( -/turf/closed/wall/almayer/white/hull, -/area/almayer/powered/agent) -"sbM" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 4 - }, -/obj/structure/sign/safety/storage{ - pixel_y = 7; - pixel_x = -17 +"sbt" = ( +/obj/structure/machinery/door/airlock/almayer/security{ + dir = 2; + name = "\improper Security Checkpoint" }, -/obj/structure/sign/safety/commline_connection{ - pixel_x = -17; - pixel_y = -7 +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 2; + id = "safe_armory"; + name = "\improper Hangar Armory Shutters" }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "green" + icon_state = "test_floor4" }, -/area/almayer/squads/req) +/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/aicore/hull, +/area/almayer/powered/agent) "sbP" = ( /obj/effect/landmark/start/police, /obj/effect/decal/warning_stripes{ @@ -65341,13 +64754,26 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cryo) -"scg" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, +"sbZ" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" + }, +/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/hull/lower_hull/l_m_p) +/area/almayer/hallways/lower/starboard_umbilical) "sco" = ( /obj/structure/sign/prop1{ layer = 3.1 @@ -65358,6 +64784,19 @@ /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{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) "scu" = ( /obj/structure/stairs/perspective{ dir = 1; @@ -65405,12 +64844,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"scI" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) "scN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -65419,20 +64852,21 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) -"scS" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/obj/structure/machinery/light{ - dir = 8; - invisibility = 101; - unacidable = 1; - unslashable = 1 +"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 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"sdd" = ( +/obj/item/tool/wirecutters/clippers, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/area/almayer/command/airoom) +/area/almayer/maint/upper/u_a_s) "sdf" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -65443,16 +64877,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"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; @@ -65482,12 +64906,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"sdw" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_a_p) "sdC" = ( /obj/structure/bed/chair{ dir = 4 @@ -65505,19 +64923,23 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"sed" = ( +"seL" = ( /obj/structure/pipes/vents/pump{ - dir = 1 + dir = 8; + id_tag = "mining_outpost_pump" }, /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 +/area/almayer/hallways/lower/port_fore_hallway) +"sfz" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) +/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) @@ -65605,29 +65027,6 @@ icon_state = "plating" }, /area/almayer/shipboard/stern_point_defense) -"sgw" = ( -/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{ - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) -"sgy" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_f_s) "sgD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -65647,6 +65046,22 @@ icon_state = "red" }, /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" + }, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/hallways/lower/port_midship_hallway) "sgR" = ( /obj/structure/surface/table/almayer, /obj/item/toy/deck{ @@ -65663,6 +65078,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) +"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, @@ -65702,10 +65123,12 @@ "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) +"shC" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/midship_hallway) "shL" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/electrical, @@ -65717,6 +65140,41 @@ icon_state = "cargo" }, /area/almayer/engineering/lower/engine_core) +"sin" = ( +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "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 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "siz" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras/hangar{ @@ -65733,6 +65191,12 @@ icon_state = "redfull" }, /area/almayer/living/offices/flight) +"siC" = ( +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/hallways/lower/port_fore_hallway) "siN" = ( /obj/structure/machinery/light{ dir = 1 @@ -65748,6 +65212,14 @@ icon_state = "plate" }, /area/almayer/engineering/lower) +"siT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "siW" = ( /obj/structure/machinery/body_scanconsole, /obj/structure/disposalpipe/segment{ @@ -65760,10 +65232,9 @@ icon_state = "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; @@ -65802,6 +65273,20 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north2) +"sjG" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/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; @@ -65822,13 +65307,6 @@ icon_state = "plating_striped" }, /area/almayer/shipboard/sea_office) -"skq" = ( -/obj/structure/machinery/cm_vending/sorted/medical, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, -/area/almayer/shipboard/brig/surgery) "skC" = ( /obj/structure/pipes/standard/simple/visible{ dir = 6 @@ -65886,37 +65364,91 @@ }, /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/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{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) "slF" = ( /turf/open/floor/almayer{ dir = 9; icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"slP" = ( -/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/hull/lower_hull/l_f_s) "smi" = ( /turf/open/floor/almayer{ icon_state = "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) +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_f_s) +"smU" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/panic) "smW" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -65926,23 +65458,6 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) -"smZ" = ( -/obj/structure/window/framed/almayer/hull/hijack_bustable, -/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/plating, -/area/almayer/shipboard/brig/chief_mp_office) "snb" = ( /obj/structure/ladder{ height = 1; @@ -65956,18 +65471,6 @@ icon_state = "orange" }, /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{ @@ -65986,6 +65489,10 @@ icon_state = "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{ @@ -66022,18 +65529,24 @@ }, /area/almayer/command/cic) "snM" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" }, -/obj/structure/disposalpipe/junction{ - dir = 8; - icon_state = "pipe-j2" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 }, /turf/open/floor/almayer{ dir = 8; icon_state = "green" }, /area/almayer/squads/req) +"snN" = ( +/obj/structure/curtain/red, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "snR" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer{ @@ -66059,41 +65572,12 @@ icon_state = "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) "sov" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "orange" }, /area/almayer/engineering/lower/engine_core) -"sow" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "soA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -66115,33 +65599,34 @@ /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" +"soT" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/area/almayer/hull/upper_hull/u_a_s) -"soS" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice1"; + pixel_x = 16; + pixel_y = -8 }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 2 +/turf/open/floor/almayer{ + icon_state = "plate" }, +/area/almayer/maint/hull/lower/l_m_p) +"soX" = ( +/obj/structure/window/reinforced/toughened, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "plate" + }, +/area/almayer/command/cic) +"spd" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hull/lower_hull/l_f_s) -"soX" = ( -/obj/structure/window/reinforced/toughened, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/command/cic) +/area/almayer/maint/hull/upper/u_a_p) "spF" = ( /obj/structure/surface/table/almayer, /obj/structure/flora/pottedplant{ @@ -66176,6 +65661,27 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) +"spT" = ( +/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/maint/hull/lower/l_m_s) "sqa" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -66219,6 +65725,39 @@ icon_state = "green" }, /area/almayer/shipboard/brig/cells) +"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" + }, +/area/almayer/hallways/lower/port_umbilical) +"srl" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer{ + icon_state = "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 + }, +/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/lower/starboard_fore_hallway) "srT" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 8 @@ -66230,42 +65769,28 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/evidence_storage) -"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" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/repair_bay) -"ssD" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +"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 }, -/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 +/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 = "greencorner" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/hull/lower/l_m_p) "ssU" = ( /obj/structure/machinery/constructable_frame, /turf/open/floor/almayer{ @@ -66297,11 +65822,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"; @@ -66332,49 +65852,43 @@ icon_state = "red" }, /area/almayer/shipboard/brig/perma) -"stY" = ( -/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 = "hangarentrancenorth"; - name = "\improper North Hangar Podlock" - }, +"stP" = ( +/obj/structure/machinery/light/small, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) -"suc" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, +/area/almayer/maint/hull/lower/l_f_s) +"stR" = ( /obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/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"; - closeOtherId = "brignorth" + dir = 8; + icon_state = "pipe-c" }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) +"sub" = ( +/obj/structure/closet/firecloset, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "cargo" }, -/area/almayer/shipboard/brig/main_office) -"suk" = ( -/obj/item/tool/weldingtool, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/hallways/lower/vehiclehangar) "suy" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, /turf/open/floor/almayer, /area/almayer/command/computerlab) +"suH" = ( +/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/lower/starboard_midship_hallway) "suJ" = ( /obj/structure/machinery/door/airlock/almayer/maint{ name = "\improper Core Hatch" @@ -66387,20 +65901,18 @@ icon_state = "test_floor4" }, /area/almayer/engineering/lower/engine_core) -"suT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"suU" = ( +/obj/structure/stairs, +/obj/effect/projector{ + name = "Almayer_Up1"; + vector_x = -19; + vector_y = 98 }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor/plating/almayer{ + allow_construction = 0 }, -/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) +/area/almayer/hallways/lower/starboard_midship_hallway) "suY" = ( /obj/structure/platform_decoration, /turf/open/floor/almayer{ @@ -66422,30 +65934,63 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"svC" = ( -/obj/structure/closet/secure_closet/guncabinet, -/obj/item/weapon/gun/smg/m39{ - pixel_y = 6 +"svq" = ( +/obj/structure/bed/chair{ + dir = 4 }, -/obj/item/weapon/gun/smg/m39{ - pixel_y = -6 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_s) +"svt" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "green" + }, +/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/hallways/lower/starboard_midship_hallway) +"svF" = ( +/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/upper_hull/u_m_s) +/area/almayer/maint/hull/lower/l_m_p) "swn" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = -25 }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/surgery) +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/aft_hallway) "swt" = ( /turf/open/floor/almayer{ icon_state = "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{ @@ -66456,6 +66001,12 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"swG" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "swH" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/radio/intercom{ @@ -66491,37 +66042,13 @@ icon_state = "cargo" }, /area/almayer/engineering/upper_engineering) -"sxe" = ( -/obj/structure/prop/invuln/lattice_prop{ - dir = 1; - icon_state = "lattice-simple"; - pixel_x = 16; - pixel_y = -16 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"sxu" = ( -/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/starboard_hallway) "sxD" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; name = "\improper Officer's Bunk" }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, /area/almayer/living/bridgebunks) "sxE" = ( @@ -66537,28 +66064,52 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"sxT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/secure_closet/guncabinet, -/obj/item/weapon/gun/rifle/m41a{ - pixel_y = 6 +"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/item/weapon/gun/rifle/m41a, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "silver" }, -/area/almayer/hull/upper_hull/u_m_s) -"sxW" = ( +/area/almayer/command/cichallway) +"syg" = ( /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; + closeOtherId = "astroladder_n"; + 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) +"syj" = ( +/obj/structure/sign/safety/escapepod{ + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) +"syp" = ( /turf/open/floor/almayer{ + dir = 6; icon_state = "silver" }, -/area/almayer/command/cichallway) +/area/almayer/maint/upper/u_m_p) "syH" = ( /obj/structure/machinery/firealarm{ pixel_y = -28 @@ -66568,13 +66119,10 @@ }, /turf/open/floor/almayer, /area/almayer/squads/delta) -"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) +/area/almayer/hallways/upper/midship_hallway) "szf" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -66599,6 +66147,20 @@ icon_state = "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."; @@ -66620,30 +66182,12 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) -"szR" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) "szU" = ( /obj/structure/toilet{ dir = 8 }, /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; @@ -66653,12 +66197,6 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"sAm" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "sAz" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -66668,30 +66206,29 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"sAA" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "sAC" = ( /turf/open/floor/almayer{ icon_state = "orange" }, /area/almayer/engineering/ce_room) +"sAD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/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 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/general_equipment) -"sBo" = ( -/obj/structure/closet/firecloset, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "sBL" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/machinery/light, @@ -66699,6 +66236,32 @@ icon_state = "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{ + icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) +"sCg" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "sCA" = ( /obj/structure/bed/chair/comfy/delta{ dir = 4 @@ -66707,14 +66270,6 @@ icon_state = "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"; @@ -66744,6 +66299,12 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"sCT" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/maint/hull/lower/l_f_s) "sCV" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -66757,18 +66318,20 @@ icon_state = "plating" }, /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" }, /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) +"sDx" = ( +/turf/closed/wall/almayer, +/area/almayer/hallways/lower/vehiclehangar) "sDA" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/bed/chair/comfy/charlie{ @@ -66778,19 +66341,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"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" - }, -/area/almayer/hallways/aft_hallway) "sDD" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ @@ -66804,17 +66354,6 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"sDV" = ( -/obj/structure/machinery/firealarm{ - pixel_y = -28 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "sEd" = ( /obj/structure/machinery/cryopod/right, /obj/structure/machinery/light{ @@ -66824,6 +66363,15 @@ icon_state = "cargo" }, /area/almayer/squads/bravo) +"sEg" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "sEi" = ( /obj/structure/bed/chair{ can_buckle = 0; @@ -66877,13 +66425,23 @@ icon_state = "orange" }, /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{ + allow_construction = 0 + }, +/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, @@ -66904,6 +66462,15 @@ icon_state = "plate" }, /area/almayer/command/cic) +"sER" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) "sEZ" = ( /obj/structure/reagent_dispensers/peppertank{ pixel_y = 26 @@ -66925,59 +66492,26 @@ 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 +"sFu" = ( +/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/hull/upper_hull/u_a_p) -"sFR" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"sFZ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"sGe" = ( -/obj/structure/ladder{ - height = 2; - id = "ForePortMaint" - }, -/obj/structure/sign/safety/ladder{ - pixel_x = -17 + dir = 8; + icon_state = "red" }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/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; @@ -66994,6 +66528,12 @@ icon_state = "cargo" }, /area/almayer/engineering/upper_engineering/port) +"sGQ" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/lower/s_bow) "sGU" = ( /obj/structure/mirror, /turf/closed/wall/almayer, @@ -67004,28 +66544,10 @@ icon_state = "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" - }, -/area/almayer/hull/lower_hull/l_m_p) +"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" @@ -67058,6 +66580,21 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop) +"sHC" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) +"sHI" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/aft_hallway) "sHM" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ @@ -67072,35 +66609,16 @@ icon_state = "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) "sIr" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/engineering/lower/engine_core) -"sIx" = ( -/obj/effect/landmark/yautja_teleport, +"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."; @@ -67119,28 +66637,37 @@ icon_state = "silver" }, /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{ + icon_state = "test_floor4" + }, +/area/almayer/command/airoom) +"sIR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_midship_hallway) "sIU" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hallways/hangar) -"sIV" = ( -/obj/structure/largecrate/random/barrel/yellow, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"sJa" = ( +/obj/structure/sign/safety/cryo{ + pixel_y = -26 }, -/area/almayer/hull/lower_hull/l_a_p) -"sJm" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/chief_mp_office) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "sJC" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -67178,6 +66705,12 @@ icon_state = "cargo" }, /area/almayer/engineering/lower/workshop/hangar) +"sJN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "sJY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -67193,6 +66726,15 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/morgue) +"sKf" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower) "sKM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -67201,47 +66743,20 @@ icon_state = "plate" }, /area/almayer/engineering/lower) -"sKO" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/pill/happy{ - pixel_x = 6; - pixel_y = -4 - }, -/obj/item/prop/helmetgarb/prescription_bottle{ - pixel_x = 9 - }, -/obj/item/tool/surgery/bonegel/empty{ - pixel_y = 15; - pixel_x = 4 - }, -/obj/item/tool/surgery/bonegel/empty{ - pixel_y = 13; - pixel_x = -8 - }, -/obj/item/tool/surgery/bonegel/empty{ - pixel_y = 19; - pixel_x = -5; - layer = 3.01 - }, -/obj/item/storage/box/gloves{ - layer = 3.2; - pixel_x = -5; - pixel_y = 2 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, -/area/almayer/medical/lower_medical_medbay) "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; @@ -67252,6 +66767,15 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"sLx" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_p) "sLA" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -67259,20 +66783,12 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer, /area/almayer/shipboard/brig/processing) -"sLE" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"sMs" = ( -/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ - dir = 1 - }, +"sLX" = ( /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 4; + icon_state = "emeraldcorner" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/hallways/lower/port_midship_hallway) "sMu" = ( /obj/item/trash/uscm_mre, /obj/structure/bed/chair/comfy/charlie{ @@ -67314,6 +66830,16 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) +"sNL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "sNO" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3" @@ -67324,6 +66850,12 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"sNP" = ( +/obj/structure/largecrate/supply/floodlights, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "sNR" = ( /turf/closed/wall/almayer/research/containment/wall/corner, /area/almayer/medical/containment/cell/cl) @@ -67337,15 +66869,22 @@ icon_state = "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" + }, +/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/hallways/starboard_hallway) +/area/almayer/maint/hull/lower/l_f_s) "sOt" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/machinery/status_display{ @@ -67389,6 +66928,30 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"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{ + dir = 9; + icon_state = "orange" + }, +/area/almayer/maint/upper/mess) "sOZ" = ( /obj/structure/sign/safety/ammunition{ pixel_y = 32 @@ -67398,6 +66961,26 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) +"sPb" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "sPc" = ( /obj/structure/machinery/light{ dir = 1 @@ -67427,6 +67010,15 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"sPY" = ( +/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/port_fore_hallway) "sQF" = ( /turf/open/floor/almayer{ icon_state = "red" @@ -67438,21 +67030,34 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"sQU" = ( +"sRC" = ( /obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" + dir = 4 + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/aft_hallway) +"sRM" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) +"sRZ" = ( +/obj/effect/projector{ + name = "Almayer_Down2"; + vector_x = 1; + vector_y = -100 }, -/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{ + allow_construction = 0; icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/upper/fore_hallway) "sSa" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions{ dir = 2; @@ -67474,24 +67079,15 @@ icon_state = "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 +"sSj" = ( +/obj/structure/machinery/light{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 9; + icon_state = "red" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/lifeboat_pumps/north1) "sSl" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -67528,21 +67124,6 @@ icon_state = "plate" }, /area/almayer/command/cic) -"sSP" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_29" - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliaison) -"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; @@ -67568,12 +67149,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; @@ -67591,6 +67173,12 @@ icon_state = "silverfull" }, /area/almayer/shipboard/brig/cic_hallway) +"sUi" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_a_p) "sUj" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -67601,6 +67189,15 @@ icon_state = "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 @@ -67617,16 +67214,6 @@ icon_state = "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 @@ -67642,6 +67229,14 @@ icon_state = "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, @@ -67650,22 +67245,13 @@ icon_state = "green" }, /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{ - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) -"sVi" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 + dir = 1; + icon_state = "red" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/hallways/upper/aft_hallway) "sVT" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/mechanical, @@ -67686,12 +67272,33 @@ "sVV" = ( /turf/open/floor/almayer, /area/almayer/hallways/upper/starboard) -"sWs" = ( -/obj/structure/closet/emcloset, +"sWb" = ( +/obj/effect/projector{ + name = "Almayer_Down2"; + vector_x = 1; + vector_y = -100 + }, /turf/open/floor/almayer{ - icon_state = "cargo" + allow_construction = 0 + }, +/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{ + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/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 @@ -67731,20 +67338,12 @@ icon_state = "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; @@ -67773,6 +67372,15 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"sXC" = ( +/obj/structure/sign/safety/storage{ + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "sXE" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Auxiliary Support Officer's Room" @@ -67781,14 +67389,6 @@ icon_state = "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, @@ -67806,25 +67406,27 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"sYi" = ( -/obj/structure/machinery/door_control{ - id = "firearm_storage_armory"; - name = "Armory Lockdown"; - pixel_y = 24; - req_access_txt = "4" +"sYl" = ( +/obj/structure/machinery/body_scanconsole{ + dir = 8 }, -/obj/structure/sign/safety/ammunition{ - pixel_y = 32 +/turf/open/floor/almayer{ + dir = 8; + icon_state = "sterile_green_side" }, -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 15; - pixel_y = 32 +/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{ - dir = 1; - icon_state = "red" + icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/lower/port_umbilical) "sYw" = ( /obj/structure/platform{ dir = 8 @@ -67839,17 +67441,6 @@ icon_state = "red" }, /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; @@ -67862,20 +67453,6 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"sYE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/status_display{ - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "sYP" = ( /obj/structure/reagent_dispensers/fueltank/custom, /turf/open/floor/almayer{ @@ -67892,6 +67469,30 @@ /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{ + dir = 8; + icon_state = "silver" + }, +/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{ + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "sZq" = ( /obj/structure/machinery/cm_vending/sorted/marine_food{ density = 0; @@ -67925,13 +67526,6 @@ icon_state = "sterile_green_side" }, /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{ @@ -67959,6 +67553,10 @@ icon_state = "blue" }, /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{ @@ -67977,21 +67575,6 @@ icon_state = "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 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "tan" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -68024,15 +67607,9 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/perma) -"taA" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/starboard_hallway) +"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"; @@ -68072,17 +67649,32 @@ icon_state = "plate" }, /area/almayer/hallways/upper/starboard) -"tbD" = ( -/obj/structure/ladder{ - height = 2; - id = "AftPortMaint" +"tcd" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/radio{ + pixel_x = -6; + pixel_y = 3 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"tcm" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer{ + icon_state = "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/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) +/area/almayer/hallways/lower/starboard_aft_hallway) "tcZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -68119,6 +67711,14 @@ icon_state = "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/surface/table/almayer, /obj/structure/sign/safety/terminal{ @@ -68159,26 +67759,21 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha_bravo_shared) +"tdH" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 + }, +/obj/item/bedsheet/yellow, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "tdI" = ( /turf/open/floor/almayer{ icon_state = "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 @@ -68201,13 +67796,15 @@ icon_state = "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, @@ -68222,18 +67819,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) -"teH" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/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/starboard_hallway) "teY" = ( /obj/structure/machinery/light{ dir = 1 @@ -68243,6 +67828,19 @@ icon_state = "plate" }, /area/almayer/command/cic) +"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{ + dir = 8; + icon_state = "ai_silver" + }, +/area/almayer/command/airoom) "tfb" = ( /turf/open/floor/almayer{ dir = 8; @@ -68255,29 +67853,23 @@ icon_state = "red" }, /area/almayer/shipboard/brig/lobby) -"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 +"tfE" = ( +/obj/structure/surface/rack, +/obj/item/storage/firstaid/adv{ + pixel_x = 6; + pixel_y = 6 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/item/storage/firstaid/regular, +/turf/open/floor/almayer{ + icon_state = "plate" }, +/area/almayer/shipboard/brig/execution_storage) +"tfF" = ( /turf/open/floor/almayer{ - dir = 1; - icon_state = "green" + dir = 6; + icon_state = "orange" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/midship_hallway) "tfH" = ( /obj/structure/machinery/light/containment, /obj/effect/decal/warning_stripes{ @@ -68287,6 +67879,25 @@ dir = 1 }, /area/almayer/medical/containment/cell) +"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{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "tge" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 @@ -68298,6 +67909,40 @@ icon_state = "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 = "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/lower/repair_bay) +"tgz" = ( +/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/port_midship_hallway) +"tgJ" = ( +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/warden_office) "tgK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -68362,30 +68007,6 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha_bravo_shared) -"thD" = ( -/obj/structure/surface/rack, -/obj/effect/decal/cleanable/cobweb{ - dir = 8; - plane = -6 - }, -/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/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/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/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, -/area/almayer/medical/lower_medical_medbay) "thL" = ( /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/cells) @@ -68400,33 +68021,19 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"thR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/light/small{ - 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) -"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" }, /area/almayer/engineering/upper_engineering/port) +"tie" = ( +/obj/structure/largecrate/supply/floodlights, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/maint/upper/u_a_p) "tig" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/tabasco{ @@ -68465,13 +68072,6 @@ icon_state = "orange" }, /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) "tiE" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -68504,12 +68104,6 @@ icon_state = "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{ @@ -68528,7 +68122,29 @@ /turf/open/floor/almayer{ icon_state = "mono" }, -/area/almayer/lifeboat_pumps/south1) +/area/almayer/lifeboat_pumps/south1) +"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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "tjj" = ( /turf/open/floor/almayer{ dir = 5; @@ -68553,13 +68169,40 @@ }, /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{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/hull/upper/u_a_p) +"tjO" = ( +/obj/structure/janitorialcart, +/obj/item/tool/mop, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/maint/hull/lower/l_m_s) +"tkd" = ( +/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/upper/midship_hallway) +"tkg" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "tkn" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/mechanical, @@ -68577,6 +68220,15 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/weapon_room) +"tkF" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) "tkN" = ( /obj/structure/machinery/cm_vending/sorted/cargo_ammo/squad{ req_access = null; @@ -68643,14 +68295,6 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/cells) -"tly" = ( -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "tlA" = ( /obj/effect/decal/medical_decals{ icon_state = "docdecal2" @@ -68659,11 +68303,11 @@ icon_state = "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{ + icon_state = "orangecorner" + }, +/area/almayer/maint/upper/u_a_s) "tmg" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/hypospray, @@ -68675,12 +68319,22 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) +"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) +"tmE" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "tmH" = ( /obj/structure/pipes/vents/pump, /obj/structure/machinery/camera/autoname/almayer{ @@ -68693,61 +68347,46 @@ icon_state = "redcorner" }, /area/almayer/shipboard/brig/execution) -"tmI" = ( -/obj/structure/machinery/light, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/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" +"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" }, /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" +"tne" = ( +/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_f_s) +/area/almayer/maint/hull/upper/u_m_p) "tni" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_side" }, /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) "tnY" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -68759,6 +68398,15 @@ icon_state = "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 @@ -68770,6 +68418,12 @@ icon_state = "plate" }, /area/almayer/engineering/lower/engine_core) +"tot" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_stern) "tou" = ( /obj/structure/bed/chair{ dir = 4 @@ -68785,15 +68439,17 @@ }, /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" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/maint/hull/upper/u_a_p) "toO" = ( /obj/structure/surface/table/almayer, /obj/item/book/manual/engineering_construction, @@ -68814,6 +68470,38 @@ icon_state = "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{ + icon_state = "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" + }, +/obj/item/desk_bell{ + pixel_x = -6; + pixel_y = 10; + anchored = 1 + }, +/turf/open/floor/almayer{ + icon_state = "sterile_green" + }, +/area/almayer/medical/lower_medical_medbay) "tpa" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/window/reinforced{ @@ -68830,27 +68518,23 @@ }, /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 +"tpB" = ( +/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/hull/lower_hull/l_m_s) +/area/almayer/hallways/lower/port_fore_hallway) "tpD" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -68861,80 +68545,39 @@ icon_state = "silver" }, /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) -"tqd" = ( -/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 +"tpG" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_m_s) -"tqg" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" +/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" - }, -/obj/structure/surface/rack, -/obj/item/rappel_harness{ - pixel_y = 8 - }, -/obj/item/rappel_harness, -/obj/item/rappel_harness{ - pixel_y = -6 - }, -/obj/structure/sign/safety/bulkhead_door{ - pixel_x = 15; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "silverfull" - }, -/area/almayer/hallways/repair_bay) -"tqk" = ( -/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 + id = "ARES ReceptStairs1"; + name = "ARES Reception Shutters"; + pixel_y = -24; + req_one_access_txt = "91;92" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "tqE" = ( /obj/structure/machinery/light{ dir = 8 @@ -68957,6 +68600,47 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) +"tqQ" = ( +/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" + }, +/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 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/almayer{ + icon_state = "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" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_m_p) "trb" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, @@ -68967,22 +68651,26 @@ icon_state = "orangecorner" }, /area/almayer/engineering/lower) +"tru" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) +"trx" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/midship_hallway) "trB" = ( /turf/open/floor/almayer{ dir = 10; icon_state = "orange" }, /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" @@ -68991,7 +68679,6 @@ icon_state = "W"; pixel_x = -1 }, -/obj/structure/surface/table/almayer, /obj/item/storage/firstaid/o2{ pixel_x = -6; pixel_y = 6 @@ -69008,6 +68695,7 @@ pixel_x = 8; pixel_y = -2 }, +/obj/structure/surface/table/almayer, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_corner" @@ -69036,15 +68724,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"trW" = ( -/obj/item/stack/tile/carpet{ - amount = 20 - }, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "tsa" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/suit/chef/classic, @@ -69052,6 +68731,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{ @@ -69092,6 +68777,10 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/upper_medical) +"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"; @@ -69124,31 +68813,16 @@ }, /turf/open/floor/plating, /area/almayer/powered/agent) -"ttE" = ( -/obj/structure/surface/table/almayer, -/obj/item/paper_bin{ - pixel_x = -7 - }, -/obj/item/tool/pen, -/obj/item/tool/pen{ - pixel_y = 3 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"ttM" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, +"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{ - dir = 1; - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/hull/lower/l_m_p) "ttS" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_sn_full_cap" @@ -69215,14 +68889,54 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "tuN" = ( /turf/open/floor/almayer{ icon_state = "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{ @@ -69230,6 +68944,17 @@ icon_state = "redcorner" }, /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 @@ -69238,6 +68963,23 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) +"tvA" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/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 + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "tvM" = ( /obj/structure/bed/chair{ dir = 1 @@ -69269,23 +69011,17 @@ icon_state = "red" }, /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" @@ -69313,16 +69049,13 @@ icon_state = "cargo" }, /area/almayer/command/cic) -"twT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/cryo{ - pixel_x = 8; - pixel_y = -26 +"twQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/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 @@ -69337,26 +69070,41 @@ }, /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 +/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 }, -/obj/effect/projector{ - name = "Almayer_Up3"; - vector_x = -1; - vector_y = 102 +/turf/open/floor/plating/almayer{ + allow_construction = 0 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/lower/starboard_midship_hallway) +"txH" = ( +/obj/structure/bed/stool, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "txO" = ( /obj/structure/machinery/landinglight/ds1{ dir = 4 @@ -69371,6 +69119,17 @@ icon_state = "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{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) "tyb" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -69380,14 +69139,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) -"tyz" = ( -/obj/item/book/manual/medical_diagnostics_manual, -/obj/structure/surface/rack, +"tyC" = ( +/obj/structure/sign/safety/medical{ + pixel_x = 8; + pixel_y = -32 + }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "red" + icon_state = "green" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/hallways/upper/fore_hallway) "tyD" = ( /turf/open/floor/almayer/research/containment/corner_var1{ dir = 4 @@ -69410,39 +69170,28 @@ }, /turf/open/floor/plating, /area/almayer/shipboard/brig/processing) -"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 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"tzw" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/area/almayer/hull/upper_hull/u_a_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 }, +/obj/structure/machinery/cm_vending/sorted/medical/blood/bolted, /turf/open/floor/almayer{ icon_state = "sterile_green_side" }, /area/almayer/medical/lockerroom) +"tzF" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/aft_hallway) "tzL" = ( /obj/structure/sign/safety/waterhazard{ pixel_x = 8; @@ -69453,21 +69202,27 @@ icon_state = "test_floor5" }, /area/almayer/medical/hydroponics) +"tzO" = ( +/obj/structure/machinery/cm_vending/sorted/medical/chemistry, +/obj/structure/medical_supply_link, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/medical/chemistry) "tzP" = ( /obj/structure/barricade/handrail/medical, /turf/open/floor/almayer{ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) -"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{ @@ -69482,6 +69237,30 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/port) +"tAt" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "ARES StairsLock"; + name = "ARES Exterior Lockdown" + }, +/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{ + icon_state = "test_floor4" + }, +/area/almayer/command/airoom) "tAL" = ( /obj/structure/machinery/cryopod, /turf/open/floor/almayer{ @@ -69503,13 +69282,6 @@ icon_state = "orange" }, /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 @@ -69518,10 +69290,13 @@ icon_state = "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, @@ -69533,45 +69308,54 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) -"tBz" = ( +"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{ + icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) +"tBY" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "plate" }, -/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 +/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 }, -/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 +/obj/structure/surface/table/almayer, +/obj/item/toy/crayon{ + pixel_x = 9; + pixel_y = -2 }, -/obj/item/device/radio, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/maint/hull/upper/u_m_p) "tCx" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/sign/safety/maint{ @@ -69590,12 +69374,33 @@ icon_state = "test_floor4" }, /area/almayer/hallways/upper/port) -"tCN" = ( +"tCC" = ( +/obj/structure/machinery/camera/autoname/almayer/containment/ares{ + dir = 1; + c_tag = "AI - Reception Interior"; + autoname = 0 + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"tCH" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/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" + }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" + icon_state = "test_floor4" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/shipboard/brig/starboard_hallway) "tCT" = ( /obj/structure/bed/chair/comfy/blue{ dir = 8 @@ -69604,13 +69409,6 @@ icon_state = "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 @@ -69644,6 +69442,15 @@ icon_state = "plating" }, /area/almayer/medical/upper_medical) +"tEu" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "tEB" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -69685,6 +69492,20 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) +"tFJ" = ( +/obj/structure/largecrate/supply/supplies/mre, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/maint/upper/u_a_p) +"tFO" = ( +/obj/structure/largecrate/supply/supplies/flares, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/maint/upper/u_a_p) "tFS" = ( /obj/structure/machinery/computer/supplycomp, /obj/structure/sign/safety/terminal{ @@ -69719,12 +69540,6 @@ icon_state = "orange" }, /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) "tGh" = ( /obj/structure/sign/nosmoking_2{ pixel_x = -28 @@ -69747,14 +69562,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) -"tGq" = ( -/obj/effect/projector{ - name = "Almayer_Up4"; - vector_x = -19; - vector_y = 104 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "tGG" = ( /obj/structure/bed/chair/comfy/alpha{ dir = 1 @@ -69763,23 +69570,39 @@ icon_state = "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{ - icon_state = "blue" + icon_state = "test_floor4" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/starboard_aft_hallway) +"tGT" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/sign/poster/art{ + pixel_y = 32 + }, +/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{ @@ -69806,6 +69629,12 @@ icon_state = "orangecorner" }, /area/almayer/living/briefing) +"tHF" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "tHQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -69820,8 +69649,8 @@ /area/almayer/shipboard/brig/cells) "tId" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/almayer{ - icon_state = "cargo" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_cargo" }, /area/almayer/command/airoom) "tIe" = ( @@ -69833,6 +69662,15 @@ icon_state = "orange" }, /area/almayer/engineering/lower/engine_core) +"tIl" = ( +/obj/structure/pipes/vents/pump/on, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_aft_hallway) "tIp" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Dorms" @@ -69848,6 +69686,21 @@ icon_state = "test_floor4" }, /area/almayer/living/port_emb) +"tIu" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/almayer/aicore/glowing/no_build{ + icon_state = "ai_floor3"; + light_range = 3 + }, +/area/almayer/command/airoom) +"tIF" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "tIK" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -69859,6 +69712,14 @@ }, /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"; @@ -69874,22 +69735,17 @@ }, /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 +"tIX" = ( +/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" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/hull/upper/u_f_p) "tJi" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/paper_bin/uscm, @@ -69898,36 +69754,23 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) +"tJm" = ( +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) +"tJq" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_s) "tJz" = ( /obj/structure/machinery/firealarm{ pixel_y = -28 }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) -"tJM" = ( -/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{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/main_office) -"tJN" = ( -/obj/structure/machinery/cryopod/right{ - layer = 3.1; - pixel_y = 13 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/command/airoom) "tJR" = ( /obj/structure/machinery/vending/cigarette, /obj/structure/sign/safety/medical{ @@ -69945,15 +69788,6 @@ icon_state = "green" }, /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 @@ -70016,40 +69850,36 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"tLM" = ( -/obj/structure/sign/safety/storage{ - pixel_x = -17 +"tLZ" = ( +/turf/open/floor/almayer{ + icon_state = "green" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/hallways/lower/starboard_midship_hallway) "tMc" = ( /obj/structure/machinery/chem_master/industry_mixer, /turf/open/floor/almayer{ icon_state = "orange" }, /area/almayer/engineering/lower/workshop/hangar) -"tMH" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - name = "\improper Warden's Office"; - closeOtherId = "brigwarden" - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "Warden Office Shutters"; - name = "\improper Privacy Shutters" +"tMi" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 8 +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" }, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "courtyard_cells"; - name = "\improper Courtyard Lockdown Shutter" +/area/almayer/hallways/upper/fore_hallway) +"tMU" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/shipboard/brig/chief_mp_office) +/area/almayer/maint/hull/upper/u_m_p) "tMW" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -70059,6 +69889,19 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"tNw" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/pouch/tools/full, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) +"tNB" = ( +/obj/structure/bed/sofa/south/grey/left, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_p) "tNP" = ( /obj/structure/sign/safety/debark_lounge{ pixel_x = 15; @@ -70077,14 +69920,12 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha) -"tNT" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, +"tNY" = ( +/obj/structure/largecrate/random/case/small, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/upper/u_a_s) "tOr" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -70113,12 +69954,30 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) +"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{ dir = 10; icon_state = "green" }, /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; @@ -70131,6 +69990,12 @@ }, /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, @@ -70163,6 +70028,16 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"tQe" = ( +/obj/structure/sign/safety/escapepod{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "tQi" = ( /obj/effect/landmark/start/warrant, /obj/effect/decal/warning_stripes{ @@ -70171,59 +70046,14 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cryo) -"tQm" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "sterile_green_side" - }, -/area/almayer/shipboard/brig/surgery) -"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" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) "tQL" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/light, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"tQM" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/sign/poster/pinup{ - pixel_x = -30 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/command/corporateliaison) "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) "tRs" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/spray/cleaner, @@ -70243,23 +70073,15 @@ icon_state = "bluecorner" }, /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" = ( -/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" +"tSm" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/weldingtool{ + pixel_x = 6; + pixel_y = -16 }, -/area/almayer/hull/upper_hull/u_f_s) +/obj/item/clothing/head/welding, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "tSp" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -70270,21 +70092,6 @@ /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) -"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; @@ -70297,6 +70104,16 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"tSX" = ( +/obj/structure/surface/table/almayer, +/obj/item/weapon/gun/rifle/l42a{ + pixel_y = 6 + }, +/obj/item/weapon/gun/rifle/l42a, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) "tTk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -70319,6 +70136,9 @@ icon_state = "red" }, /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, @@ -70332,6 +70152,25 @@ icon_state = "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{ + dir = 10; + icon_state = "red" + }, +/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; @@ -70348,10 +70187,17 @@ "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{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "tUN" = ( /obj/structure/machinery/door/airlock/almayer/maint/reinforced{ access_modified = 1; @@ -70377,14 +70223,6 @@ icon_state = "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 @@ -70396,6 +70234,12 @@ icon_state = "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"; @@ -70405,29 +70249,65 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha) -"tVB" = ( -/obj/structure/closet/emcloset, +"tVx" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) +"tVZ" = ( /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "cargo_arrow" }, -/area/almayer/hull/lower_hull/l_m_p) +/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) -"tWm" = ( -/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 +"tWl" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + name = "\improper Disposals" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/synthcloset) +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j2" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_a_p) +"tWp" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/mess) +"tWL" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "tWY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -70448,6 +70328,17 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) "tXb" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/bed/chair/comfy/charlie{ @@ -70484,6 +70375,11 @@ icon_state = "test_floor4" }, /area/almayer/squads/req) +"tXo" = ( +/turf/open/floor/almayer{ + icon_state = "redcorner" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "tXM" = ( /obj/structure/pipes/vents/pump{ dir = 8 @@ -70527,10 +70423,6 @@ icon_state = "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 @@ -70542,6 +70434,15 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) +"tYr" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "tYw" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottomleft"; @@ -70557,18 +70458,18 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"tYB" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "tYM" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, /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{ icon_state = "test_floor4" @@ -70580,23 +70481,6 @@ icon_state = "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) "tZg" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/sign/safety/maint{ @@ -70614,31 +70498,6 @@ icon_state = "test_floor4" }, /area/almayer/hallways/upper/port) -"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) -"tZP" = ( -/obj/structure/surface/rack, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/upper_engineering/port) "tZZ" = ( /obj/structure/machinery/cryopod, /obj/effect/decal/warning_stripes{ @@ -70653,9 +70512,6 @@ icon_state = "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 @@ -70664,6 +70520,12 @@ /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"uag" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/mess) "uah" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -70697,6 +70559,15 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/lower_medical_medbay) +"uaA" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "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{ @@ -70723,35 +70594,20 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/command/computerlab) -"uaX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"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) "ubI" = ( /obj/structure/surface/table/almayer, @@ -70766,6 +70622,15 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) +"ubQ" = ( +/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_aft_hallway) "ucp" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, @@ -70776,6 +70641,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{ @@ -70798,6 +70671,23 @@ icon_state = "plate" }, /area/almayer/command/cic) +"udf" = ( +/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/lower/port_aft_hallway) "udi" = ( /turf/open/floor/almayer{ icon_state = "red" @@ -70815,21 +70705,21 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) +"udv" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) "udx" = ( /obj/structure/machinery/vending/snack, /turf/open/floor/almayer{ icon_state = "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{ @@ -70884,20 +70774,6 @@ icon_state = "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) "uek" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, @@ -70909,6 +70785,19 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) +"uew" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/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{ + icon_state = "sterile_green_side" + }, +/area/almayer/medical/lockerroom) "ueG" = ( /obj/item/bedsheet/orange, /obj/structure/bed{ @@ -70933,6 +70822,10 @@ icon_state = "sterile_green_side" }, /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{ @@ -70949,14 +70842,6 @@ }, /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; @@ -70981,10 +70866,37 @@ icon_state = "test_floor4" }, /area/almayer/command/cic) +"ugj" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/maint/hull/lower/l_m_s) +"ugo" = ( +/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/maint/upper/u_m_s) "ugu" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, /turf/open/floor/almayer, /area/almayer/living/briefing) +"ugw" = ( +/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/starboard_hallway) "ugJ" = ( /obj/structure/largecrate/random/case/small, /obj/structure/largecrate/random/mini/small_case{ @@ -70996,20 +70908,21 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"ugT" = ( +"ugZ" = ( +/obj/structure/closet/emcloset, /turf/open/floor/almayer{ - icon_state = "red" + icon_state = "plate" }, -/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 +/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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_p) "uhl" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -71020,6 +70933,28 @@ icon_state = "cargo_arrow" }, /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; + id = "northcheckpoint"; + name = "\improper Checkpoint Shutters" + }, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) +"uhA" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "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, @@ -71038,41 +70973,12 @@ icon_state = "cargo_arrow" }, /area/almayer/living/offices) -"uhW" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) -"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) -"uif" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "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, +/obj/structure/largecrate/supply/floodlights, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/upper/u_m_p) "uiC" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 @@ -71088,6 +70994,12 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) +"uiK" = ( +/obj/item/ammo_box/magazine/misc/mre, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_stern) "uiR" = ( /obj/structure/prop/invuln{ desc = "An inflated membrane. This one is puncture proof. Wow!"; @@ -71128,50 +71040,31 @@ icon_state = "sterile_green_side" }, /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" }, /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 +"uky" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_umbilical) +"ukC" = ( +/obj/effect/decal/cleanable/blood/drip, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/maint/hull/upper/u_m_p) "ukP" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/engineering/lower/engine_core) -"ukU" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "ukV" = ( /obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep, /obj/structure/machinery/light{ @@ -71212,6 +71105,16 @@ icon_state = "plating_striped" }, /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{ @@ -71227,6 +71130,15 @@ icon_state = "red" }, /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, @@ -71234,16 +71146,6 @@ icon_state = "rasputin15" }, /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 @@ -71253,12 +71155,12 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"umC" = ( -/obj/structure/pipes/standard/simple/hidden/supply, +"umI" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ - icon_state = "mono" + icon_state = "test_floor4" }, -/area/almayer/medical/upper_medical) +/area/almayer/hallways/upper/aft_hallway) "umS" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -71268,14 +71170,6 @@ icon_state = "blue" }, /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) "umW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -71319,12 +71213,13 @@ icon_state = "orange" }, /area/almayer/engineering/lower) -"unJ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 +"unQ" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/effect/spawner/random/tool, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/maint/hull/upper/u_a_p) "unT" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/tool/crowbar, @@ -71336,16 +71231,6 @@ icon_state = "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) "unZ" = ( /obj/structure/platform{ dir = 1 @@ -71367,6 +71252,12 @@ icon_state = "sterile_green" }, /area/almayer/medical/containment) +"uoj" = ( +/obj/item/tool/pen, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "uoA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -71382,21 +71273,13 @@ icon_state = "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) -"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 @@ -71424,13 +71307,17 @@ icon_state = "orange" }, /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{ @@ -71461,6 +71348,13 @@ icon_state = "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 @@ -71473,17 +71367,17 @@ "uqo" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/armory) -"uqy" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ - name = "\improper Brig Cells" +"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{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/maint/upper/u_m_s) "uqA" = ( /obj/structure/machinery/firealarm{ dir = 8; @@ -71494,16 +71388,34 @@ icon_state = "orange" }, /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{ + dir = 8; + icon_state = "orangecorner" + }, +/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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "urM" = ( /obj/structure/machinery/light{ dir = 8 @@ -71518,20 +71430,6 @@ /obj/effect/landmark/late_join/charlie, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) -"urW" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 7" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower/engine_core) -"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{ @@ -71542,13 +71440,28 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) -"uso" = ( -/obj/structure/largecrate/random/case/double, -/obj/structure/machinery/light/small, +"usq" = ( +/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_m39_submachinegun, +/turf/open/floor/almayer{ + icon_state = "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{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/maint/upper/u_f_s) "usy" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -71560,15 +71473,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"usL" = ( -/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/upper/port) "usX" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -71610,6 +71514,9 @@ icon_state = "cargo" }, /area/almayer/engineering/upper_engineering) +"utp" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_f_s) "utK" = ( /obj/structure/machinery/light{ dir = 4 @@ -71640,6 +71547,26 @@ }, /turf/open/floor/almayer, /area/almayer/squads/bravo) +"uul" = ( +/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/lifeboat_pumps/south2) +"uun" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/starboard_hallway) "uuu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -71684,6 +71611,12 @@ icon_state = "test_floor4" }, /area/almayer/engineering/lower) +"uuI" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/port_midship_hallway) "uuR" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal8"; @@ -71707,16 +71640,34 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) -"uvs" = ( -/obj/structure/machinery/conveyor{ - id = "lower_garbage" +"uuT" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 }, -/obj/structure/machinery/recycler, /turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_aft_hallway) +"uvh" = ( +/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/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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) "uvt" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -71769,15 +71720,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/cells) -"uwg" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/bed/chair/bolted, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/perma) "uws" = ( /obj/structure/machinery/light{ dir = 4 @@ -71807,24 +71749,6 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) -"uwS" = ( -/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/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/main_office) "uwZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -71842,6 +71766,18 @@ /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_stern) "uxp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -71891,18 +71827,6 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) -"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 - }, -/turf/open/floor/almayer{ - icon_state = "greencorner" - }, -/area/almayer/hallways/port_hallway) "uyd" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -71926,12 +71850,21 @@ "uyH" = ( /turf/closed/wall/almayer/research/containment/wall/divide, /area/almayer/medical/containment/cell) -"uyJ" = ( -/obj/structure/machinery/cm_vending/sorted/medical/chemistry, +"uyQ" = ( +/obj/structure/largecrate/random/case{ + layer = 2.98 + }, /turf/open/floor/almayer{ - icon_state = "dark_sterile" + icon_state = "plate" }, -/area/almayer/medical/chemistry) +/area/almayer/maint/upper/u_a_s) +"uzv" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 + }, +/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, @@ -71970,32 +71903,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"uAo" = ( -/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{ - icon_state = "sterile_green" - }, -/area/almayer/medical/lockerroom) -"uAs" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "uAC" = ( /obj/item/bedsheet/purple{ layer = 3.2 @@ -72040,6 +71947,20 @@ /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{ + dir = 1; + icon_state = "silver" + }, +/area/almayer/hallways/upper/midship_hallway) "uAW" = ( /obj/structure/machinery/cryopod{ layer = 3.1; @@ -72058,27 +71979,44 @@ }, /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 + }, +/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{ - dir = 1; - icon_state = "orange" + icon_state = "red" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/maint/upper/u_a_p) "uBM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -72118,6 +72056,27 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"uCt" = ( +/obj/structure/sign/safety/stairs{ + pixel_x = -17; + pixel_y = 7 + }, +/obj/structure/sign/safety/escapepod{ + pixel_x = -17; + pixel_y = -8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/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, @@ -72136,6 +72095,12 @@ icon_state = "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 @@ -72143,6 +72108,9 @@ /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; @@ -72160,15 +72128,6 @@ icon_state = "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; @@ -72178,12 +72137,36 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"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{ + dir = 1; + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "uFd" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -72214,6 +72197,12 @@ icon_state = "sterile_green" }, /area/almayer/medical/lockerroom) +"uFp" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/s_bow) "uFq" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -72224,32 +72213,11 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/lobby) -"uFt" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "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) "uGc" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm, /obj/structure/sign/safety/hazard{ @@ -72267,20 +72235,27 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/port) -"uGt" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" +"uGf" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/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 +/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{ + dir = 1; + icon_state = "green" + }, +/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{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_umbilical) "uGN" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, @@ -72291,23 +72266,16 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) -"uHr" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/lifeboat_pumps/south2) -"uId" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +"uGU" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, -/obj/effect/step_trigger/clone_cleaner, /turf/open/floor/almayer{ - dir = 9; - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) -"uIp" = ( +/area/almayer/maint/hull/lower/l_f_p) +"uHk" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/light{ dir = 4 @@ -72318,7 +72286,18 @@ /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull) +/area/almayer/maint/lower/cryo_cells) +"uHr" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/south2) +"uHT" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/lower/s_bow) "uIv" = ( /turf/open/floor/almayer{ icon_state = "orange" @@ -72350,6 +72329,19 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_umbilical) "uJk" = ( /obj/structure/prop/almayer/name_stencil{ icon_state = "almayer4" @@ -72358,43 +72350,13 @@ icon_state = "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 @@ -72428,36 +72390,18 @@ icon_state = "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 +"uKl" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/almayer, -/area/almayer/squads/alpha_bravo_shared) -"uKA" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/machinery/light{ +/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; @@ -72473,36 +72417,33 @@ /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 +"uLE" = ( +/obj/structure/machinery/cm_vending/sorted/medical/blood, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"uLW" = ( -/obj/item/tool/mop{ - pixel_x = -6; - pixel_y = 24 +/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." }, -/obj/item/reagent_container/glass/bucket, +/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_m_s) +/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, @@ -72533,18 +72474,51 @@ icon_state = "emerald" }, /area/almayer/living/port_emb) +"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{ dir = 5; icon_state = "blue" }, /area/almayer/squads/delta) +"uNf" = ( +/obj/structure/sign/safety/conference_room{ + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "uNg" = ( /obj/structure/machinery/cryopod, /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/living/bridgebunks) +"uNp" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = -30 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "uNq" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/light{ @@ -72559,6 +72533,10 @@ icon_state = "orange" }, /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, @@ -72566,15 +72544,6 @@ icon_state = "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; @@ -72589,30 +72558,31 @@ icon_state = "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{ + icon_state = "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 +"uOh" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "test_floor4" }, -/area/almayer/hallways/vehiclehangar) +/area/almayer/hallways/upper/fore_hallway) "uOi" = ( /turf/closed/wall/almayer/outer, /area/almayer/lifeboat_pumps/south2) @@ -72628,14 +72598,25 @@ icon_state = "blue" }, /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 }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" +/obj/structure/transmitter/rotary{ + name = "AI Reception Telephone"; + phone_category = "ARES"; + phone_color = "blue"; + phone_id = "AI Reception" }, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/almayer/no_build{ + icon_state = "ai_floors" + }, +/area/almayer/command/airoom) "uPP" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ dir = 2; @@ -72646,6 +72627,13 @@ icon_state = "test_floor4" }, /area/almayer/engineering/lower) +"uPQ" = ( +/obj/item/weapon/dart/green, +/obj/structure/dartboard{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "uPW" = ( /obj/structure/bed/chair{ dir = 4 @@ -72654,19 +72642,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{ @@ -72679,22 +72666,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{ @@ -72727,6 +72698,12 @@ icon_state = "sterile_green_side" }, /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 @@ -72754,13 +72731,14 @@ }, /turf/open/floor/plating, /area/almayer/living/port_emb) -"uRQ" = ( -/obj/item/storage/firstaid/fire, -/obj/structure/surface/rack, +"uRR" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "Brig" + }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/hull/lower/s_bow) "uRY" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -72774,25 +72752,15 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"uSq" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - layer = 2.5; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) -"uSB" = ( -/obj/structure/machinery/keycard_auth{ - pixel_x = 25 +"uSk" = ( +/obj/structure/machinery/light{ + dir = 1 }, /turf/open/floor/almayer{ dir = 4; - icon_state = "red" + icon_state = "orangecorner" }, -/area/almayer/shipboard/brig/chief_mp_office) +/area/almayer/hallways/upper/aft_hallway) "uSH" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/reagent_dispensers/water_cooler{ @@ -72810,6 +72778,10 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lockerroom) +"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; @@ -72824,12 +72796,28 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"uTa" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +"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{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) +/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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/p_bow) "uTv" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -72838,6 +72826,13 @@ }, /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, @@ -72845,6 +72840,16 @@ icon_state = "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{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "uTU" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -72869,13 +72874,6 @@ icon_state = "orangefull" }, /area/almayer/engineering/lower/workshop) -"uTY" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "uTZ" = ( /obj/structure/machinery/light/small, /turf/open/floor/almayer{ @@ -72898,6 +72896,28 @@ icon_state = "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{ + dir = 6; + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "uUi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -72950,13 +72970,18 @@ }, /turf/open/floor/plating, /area/almayer/engineering/upper_engineering/port) -"uVb" = ( -/obj/structure/closet/toolcloset, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" +"uUB" = ( +/obj/structure/surface/table/reinforced/almayer_B{ + indestructible = 1; + unacidable = 1; + unslashable = 1 + }, +/obj/item/paper_bin/uscm{ + pixel_y = 6 }, -/area/almayer/hull/lower_hull/l_m_s) +/obj/item/tool/pen, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "uVc" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -72977,13 +73002,20 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"uVp" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "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{ @@ -73016,21 +73048,38 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) +"uVY" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_p) "uWc" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer{ icon_state = "emeraldfull" }, /area/almayer/living/briefing) -"uWC" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 +"uWk" = ( +/obj/structure/machinery/light{ + dir = 8 }, /turf/open/floor/almayer{ dir = 9; - icon_state = "red" + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) +"uWm" = ( +/obj/effect/projector{ + name = "Almayer_Up4"; + vector_x = -19; + vector_y = 104 }, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/almayer{ + allow_construction = 0; + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_midship_hallway) "uWV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -73080,15 +73129,39 @@ icon_state = "plate" }, /area/almayer/engineering/lower/engine_core) -"uXu" = ( +"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{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/interrogation) +"uXE" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/upper/midship_hallway) "uXL" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -73098,6 +73171,13 @@ icon_state = "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 @@ -73130,6 +73210,22 @@ icon_state = "orange" }, /area/almayer/engineering/lower) +"uYM" = ( +/obj/structure/machinery/status_display{ + pixel_y = -30 + }, +/turf/open/floor/almayer{ + icon_state = "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{ @@ -73155,10 +73251,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"uZQ" = ( -/obj/structure/window/framed/almayer, -/turf/open/floor/plating, -/area/almayer/hallways/repair_bay) "uZV" = ( /obj/structure/reagent_dispensers/fueltank/gas/methane{ anchored = 1 @@ -73182,13 +73274,33 @@ icon_state = "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{ + icon_state = "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) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "vaZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" @@ -73210,6 +73322,29 @@ icon_state = "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{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/processing) "vbB" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) @@ -73244,13 +73379,6 @@ icon_state = "orange" }, /area/almayer/squads/bravo) -"vbP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 2 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "vbR" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -73269,6 +73397,15 @@ icon_state = "plate" }, /area/almayer/medical/morgue) +"vbU" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) "vbV" = ( /obj/structure/bed/chair/wheelchair{ dir = 1 @@ -73279,10 +73416,18 @@ icon_state = "sterile_green_corner" }, /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{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) "vcm" = ( /obj/structure/reagent_dispensers/peppertank{ pixel_x = -30 @@ -73313,10 +73458,21 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south2) -"vcK" = ( -/obj/effect/decal/cleanable/dirt, +"vcG" = ( +/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) +/area/almayer/hallways/upper/midship_hallway) +"vcI" = ( +/obj/effect/decal/cleanable/blood/oil/streak, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "vdl" = ( /obj/structure/window/reinforced/ultra{ pixel_y = -12 @@ -73329,24 +73485,6 @@ icon_state = "plating_striped" }, /area/almayer/shipboard/brig/execution) -"vdJ" = ( -/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{ - dir = 10; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) "vdL" = ( /obj/structure/sign/safety/reception{ pixel_x = -17; @@ -73382,21 +73520,27 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) -"vdW" = ( -/obj/structure/disposalpipe/junction{ - dir = 4 +"vdR" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 }, -/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/port_hallway) +/area/almayer/lifeboat_pumps/south2) "ven" = ( /obj/structure/bed/chair, /turf/open/floor/almayer{ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"veq" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "veu" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -73429,15 +73573,6 @@ icon_state = "test_floor4" }, /area/almayer/powered) -"vfw" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/main_office) "vfx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -73454,40 +73589,25 @@ icon_state = "orange" }, /area/almayer/squads/bravo) -"vfB" = ( -/turf/open/floor/almayer/no_build{ - 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" - }, -/area/almayer/hull/lower_hull/l_m_p) "vfP" = ( /turf/open/floor/almayer/research/containment/corner{ dir = 1 }, /area/almayer/medical/containment/cell) +"vfS" = ( +/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/maint/hull/upper/u_f_s) "vgi" = ( /obj/structure/pipes/vents/scrubber, /turf/open/floor/almayer, /area/almayer/shipboard/brig/general_equipment) -"vgk" = ( -/obj/structure/closet/firecloset, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" - }, -/area/almayer/hallways/port_hallway) "vgn" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, @@ -73556,22 +73676,6 @@ icon_state = "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 @@ -73581,45 +73685,15 @@ icon_state = "red" }, /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, +"vhb" = ( /turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) -"vgW" = ( -/obj/structure/sign/safety/security{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/restrictedarea{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; + dir = 4; icon_state = "red" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/maint/upper/u_a_p) "vhe" = ( /obj/structure/filingcabinet{ density = 0; @@ -73634,22 +73708,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 @@ -73657,10 +73717,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."; @@ -73743,23 +73803,21 @@ }, /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{ + dir = 5; + icon_state = "silver" + }, +/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) -"viH" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1; - name = "Bathroom" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/main_office) "viJ" = ( /obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/almayer{ @@ -73791,16 +73849,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"vjd" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/lifeboat) "vjg" = ( /obj/structure/prop/almayer/missile_tube{ icon_state = "missiletubesouth" @@ -73818,12 +73866,12 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) -"vjx" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" +"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 @@ -73840,22 +73888,45 @@ icon_state = "green" }, /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 +"vjG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/vents/pump{ + dir = 4 }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "orange" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/hallways/lower/port_umbilical) "vjK" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer, /area/almayer/shipboard/port_missiles) +"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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/lower/constr) +"vjT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/lower/port_umbilical) "vjW" = ( /obj/structure/reagent_dispensers/watertank{ anchored = 1 @@ -73890,23 +73961,27 @@ icon_state = "sterile_green_side" }, /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{ + icon_state = "test_floor4" }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = 12; - pixel_y = 13 +/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" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "vkM" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ dir = 1; @@ -73920,6 +73995,20 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/general_equipment) +"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 + }, +/obj/item/tool/weldingtool, +/obj/item/clothing/glasses/welding, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/lower/s_bow) "vkR" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -73964,12 +74053,6 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) -"vlN" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "vlO" = ( /obj/structure/window/reinforced{ dir = 4; @@ -74026,6 +74109,9 @@ icon_state = "cargo" }, /area/almayer/hallways/hangar) +"vmq" = ( +/turf/open/floor/almayer, +/area/almayer/maint/hull/lower/l_m_s) "vmE" = ( /turf/open/floor/almayer{ icon_state = "orangecorner" @@ -74039,16 +74125,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/upper/port) -"vmK" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/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) "vmN" = ( /obj/structure/machinery/light, /obj/structure/surface/table/almayer, @@ -74074,6 +74150,12 @@ icon_state = "red" }, /area/almayer/shipboard/port_missiles) +"vno" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "blue" + }, +/area/almayer/hallways/lower/port_midship_hallway) "vnD" = ( /obj/structure/barricade/handrail{ dir = 1; @@ -74083,54 +74165,103 @@ icon_state = "plate" }, /area/almayer/living/gym) -"vnV" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "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{ + icon_state = "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{ + dir = 8; + icon_state = "silvercorner" }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"voA" = ( -/obj/structure/platform_decoration, -/obj/structure/prop/invuln/overhead_pipe{ +/area/almayer/hallways/lower/repair_bay) +"vor" = ( +/obj/effect/decal/cleanable/blood, +/obj/structure/prop/broken_arcade, +/turf/open/floor/almayer{ + icon_state = "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." + }, +/obj/structure/machinery/light/small{ dir = 4; - pixel_x = -14; - pixel_y = 13 + icon_state = "bulb-burned"; + status = 3 + }, +/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" + }, +/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{ - icon_state = "plate" + icon_state = "sterile_green_corner" }, -/area/almayer/hull/upper_hull/u_a_s) -"voQ" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 +/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 }, -/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/medical/containment) "vpe" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/airlock/almayer/engineering/reinforced/OT{ @@ -74141,6 +74272,11 @@ icon_state = "test_floor4" }, /area/almayer/engineering/lower/workshop/hangar) +"vpf" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "vpn" = ( /turf/open/floor/almayer{ dir = 9; @@ -74158,6 +74294,39 @@ /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/item/desk_bell{ + pixel_y = 14; + pixel_x = -5; + anchored = 1 + }, +/obj/structure/machinery/computer/working_joe{ + layer = 3.3; + dir = 8 + }, +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"vpI" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/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{ + icon_state = "plate" + }, +/area/almayer/shipboard/panic) "vpV" = ( /turf/open/floor/almayer{ dir = 10; @@ -74183,6 +74352,19 @@ icon_state = "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{ + dir = 10; + icon_state = "red" + }, +/area/almayer/hallways/lower/port_fore_hallway) "vqC" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -74197,6 +74379,20 @@ icon_state = "orange" }, /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{ @@ -74213,14 +74409,6 @@ icon_state = "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 @@ -74267,27 +74455,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; @@ -74337,6 +74504,19 @@ icon_state = "bluecorner" }, /area/almayer/living/briefing) +"vrZ" = ( +/obj/structure/largecrate/machine/bodyscanner, +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_m_s) "vse" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -74346,10 +74526,32 @@ icon_state = "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{ + icon_state = "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; @@ -74367,33 +74569,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"vsM" = ( -/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, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, -/area/almayer/shipboard/brig/surgery) -"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{ @@ -74432,29 +74607,6 @@ icon_state = "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{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) -"vtD" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = 26 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "vtG" = ( /obj/structure/toilet{ dir = 4 @@ -74463,6 +74615,12 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/perma) +"vtJ" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "vub" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/sea_office) @@ -74471,9 +74629,6 @@ /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, @@ -74520,9 +74675,15 @@ icon_state = "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 @@ -74532,56 +74693,6 @@ icon_state = "redcorner" }, /area/almayer/shipboard/weapon_room) -"vvi" = ( -/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." - }, -/obj/structure/machinery/light/small{ - dir = 4; - status = 3; - icon_state = "bulb-burned" - }, -/obj/effect/decal/cleanable/blood, -/obj/item/prop{ - icon = 'icons/obj/items/bloodpack.dmi'; - icon_state = "bloodpack"; - name = "blood bag"; - desc = "A blood bag with a hole in it. The rats must have gotten to it first." - }, -/obj/item/prop{ - icon = 'icons/obj/items/bloodpack.dmi'; - icon_state = "bloodpack"; - name = "blood bag"; - desc = "A blood bag with a hole in it. The rats must have gotten to it first." - }, -/obj/item/prop{ - icon = 'icons/obj/items/bloodpack.dmi'; - icon_state = "bloodpack"; - name = "blood bag"; - desc = "A blood bag with a hole in it. The rats must have gotten to it first." - }, -/obj/item/prop{ - icon = 'icons/obj/items/circuitboards.dmi'; - icon_state = "id_mod"; - name = "circuit board"; - desc = "The words \"Cloning Pod\" are scrawled onto it. It appears to be heavily damaged."; - layer = 2.78; - pixel_y = 10; - pixel_x = 8 - }, -/obj/item/prop{ - icon = 'icons/obj/items/circuitboards.dmi'; - icon_state = "id_mod"; - name = "circuit board"; - desc = "The words \"Cloning Scanner\" are scrawled onto it. It appears to be heavily damaged."; - layer = 2.79; - pixel_y = 7; - pixel_x = 8 - }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, -/area/almayer/medical/lower_medical_medbay) "vvp" = ( /obj/structure/pipes/vents/pump, /obj/structure/sign/safety/intercom{ @@ -74627,6 +74738,26 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) +"vvH" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/panic) "vvY" = ( /obj/structure/sink{ dir = 1; @@ -74651,6 +74782,12 @@ icon_state = "dark_sterile" }, /area/almayer/living/port_emb) +"vwj" = ( +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_p) "vwC" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -74678,46 +74815,18 @@ /obj/structure/machinery/microwave{ pixel_y = 8 }, -/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) -"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/plating/plating_catwalk, +/area/almayer/living/grunt_rnr) +"vwT" = ( /turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" + dir = 4; + icon_state = "blue" }, -/area/almayer/hallways/repair_bay) +/area/almayer/hallways/upper/midship_hallway) +"vwU" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "vwV" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors{ dir = 4 @@ -74780,6 +74889,17 @@ }, /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{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "vyg" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/secure_data, @@ -74787,6 +74907,14 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"vyh" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_s) "vyi" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -74808,6 +74936,12 @@ icon_state = "cargo" }, /area/almayer/living/offices) +"vyr" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "vyu" = ( /obj/structure/bed/sofa/south/white/right, /turf/open/floor/almayer{ @@ -74815,6 +74949,18 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) +"vyB" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/vehiclehangar) +"vyE" = ( +/obj/structure/pipes/standard/simple/hidden/supply/no_boom{ + dir = 4 + }, +/turf/open/floor/almayer/aicore/no_build{ + dir = 4; + icon_state = "ai_arrow" + }, +/area/almayer/command/airoom) "vyH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -74824,6 +74970,13 @@ "vyI" = ( /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering/port) +"vzi" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 3 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "vzj" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 8 @@ -74841,30 +74994,22 @@ allow_construction = 0 }, /area/almayer/shipboard/brig/processing) -"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" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 3 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"vzu" = ( +"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{ + dir = 8; + icon_state = "redcorner" + }, +/area/almayer/shipboard/brig/starboard_hallway) "vzz" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; @@ -74874,6 +75019,12 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/cells) +"vzB" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "vzK" = ( /turf/open/floor/almayer, /area/almayer/engineering/ce_room) @@ -74896,6 +75047,17 @@ icon_state = "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 @@ -74905,6 +75067,20 @@ icon_state = "orange" }, /area/almayer/hallways/hangar) +"vAx" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "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; @@ -74947,21 +75123,6 @@ icon_state = "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 @@ -74974,6 +75135,10 @@ icon_state = "silver" }, /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, @@ -75015,6 +75180,18 @@ icon_state = "sterile_green_side" }, /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{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/midship_hallway) "vCx" = ( /obj/structure/machinery/status_display{ pixel_y = -30 @@ -75034,6 +75211,26 @@ icon_state = "green" }, /area/almayer/shipboard/brig/cells) +"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/effect/decal/warning_stripes{ + icon_state = "S"; + layer = 3.3 + }, +/obj/structure/machinery/camera/autoname/almayer/containment/ares{ + dir = 4; + c_tag = "AI - Primary Processors"; + autoname = 0 + }, +/turf/open/floor/almayer/aicore/glowing/no_build, +/area/almayer/command/airoom) "vCO" = ( /obj/effect/landmark/start/bridge, /turf/open/floor/plating/plating_catwalk, @@ -75046,6 +75243,38 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/hydroponics) +"vDh" = ( +/obj/structure/largecrate/random, +/turf/open/floor/almayer{ + icon_state = "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 @@ -75071,6 +75300,16 @@ icon_state = "sterile_green_side" }, /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{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "vEx" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -75094,6 +75333,16 @@ /obj/structure/machinery/vending/coffee, /turf/open/floor/almayer, /area/almayer/living/briefing) +"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{ + icon_state = "red" + }, +/area/almayer/hallways/upper/aft_hallway) "vEV" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -75104,17 +75353,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"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 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "vFn" = ( /obj/structure/machinery/light/small, /turf/open/floor/almayer{ @@ -75122,6 +75360,15 @@ icon_state = "plating" }, /area/almayer/shipboard/stern_point_defense) +"vFp" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) "vFv" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer{ @@ -75143,21 +75390,35 @@ icon_state = "plate" }, /area/almayer/engineering/lower) -"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, +"vFI" = ( +/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/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) +/area/almayer/maint/hull/lower/l_f_p) +"vGi" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) +"vGn" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/interrogation) "vGA" = ( /obj/structure/bed/sofa/south/grey/right, /turf/open/floor/almayer{ @@ -75180,6 +75441,15 @@ icon_state = "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{ @@ -75202,6 +75472,33 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/living/port_emb) +"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 + }, +/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/lower/repair_bay) "vHq" = ( /obj/item/device/assembly/mousetrap/armed, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -75219,13 +75516,6 @@ icon_state = "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{ @@ -75267,22 +75557,6 @@ icon_state = "plate" }, /area/almayer/command/cic) -"vHA" = ( -/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/upper/starboard) "vHO" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -75295,6 +75569,16 @@ icon_state = "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, @@ -75315,47 +75599,34 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) -"vIm" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, +"vIg" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ - dir = 1; - icon_state = "green" + icon_state = "test_floor4" }, -/area/almayer/hallways/aft_hallway) +/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 +"vIZ" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"vJc" = ( /turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" + dir = 4; + icon_state = "red" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/shipboard/brig/warden_office) "vJg" = ( /obj/structure/machinery/light/small, /turf/open/floor/almayer{ @@ -75373,30 +75644,10 @@ icon_state = "red" }, /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 @@ -75439,16 +75690,23 @@ icon_state = "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" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/shipboard/brig/processing) "vKB" = ( /obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m4ra_rifle, /obj/structure/machinery/light/small{ @@ -75456,23 +75714,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/armory) -"vKF" = ( -/obj/structure/stairs{ - dir = 8; - icon_state = "ramptop" - }, +"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) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "vLg" = ( /obj/item/trash/uscm_mre, /obj/structure/bed/chair/comfy/charlie, @@ -75480,14 +75727,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"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) "vLj" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ name = "\improper Medical Bay"; @@ -75503,15 +75742,25 @@ icon_state = "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" + dir = 8; + icon_state = "silver" + }, +/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"; @@ -75526,15 +75775,13 @@ icon_state = "cargo_arrow" }, /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) @@ -75542,13 +75789,21 @@ /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" +"vMt" = ( +/turf/open/floor/almayer/aicore/no_build{ + dir = 8; + icon_state = "ai_silver" + }, +/area/almayer/command/airoom) +"vMA" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/obj/structure/machinery/light{ + dir = 1 }, /turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/lower/port_midship_hallway) "vME" = ( /turf/open/floor/almayer{ dir = 9; @@ -75581,6 +75836,20 @@ icon_state = "silver" }, /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{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/mp_bunks) "vMM" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, @@ -75588,6 +75857,23 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"vMU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "redcorner" + }, +/area/almayer/hallways/lower/port_fore_hallway) +"vNo" = ( +/obj/structure/largecrate/random/case/double, +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_p) "vNp" = ( /obj/structure/sign/safety/three{ pixel_x = -17 @@ -75605,6 +75891,16 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie) +"vNT" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/starboard_hallway) "vNW" = ( /turf/open/floor/almayer/uscm/directional{ dir = 9 @@ -75614,9 +75910,41 @@ /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{ + icon_state = "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{ + icon_state = "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" @@ -75635,6 +75963,38 @@ icon_state = "test_floor4" }, /area/almayer/medical/upper_medical) +"vOV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/mess) +"vOZ" = ( +/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/lower/port_midship_hallway) "vPf" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -75644,39 +76004,10 @@ }, /turf/open/floor/plating, /area/almayer/shipboard/brig/perma) -"vPj" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/device/flashlight/lamp{ - pixel_y = 8 - }, -/obj/structure/pipes/vents/pump{ - dir = 4 - }, -/obj/item/clothing/glasses/science{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/device/flash, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/medical/upper_medical) "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; @@ -75737,6 +76068,21 @@ icon_state = "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"; @@ -75761,6 +76107,14 @@ /obj/item/device/camera, /turf/open/floor/almayer, /area/almayer/command/computerlab) +"vQN" = ( +/obj/structure/sign/safety/restrictedarea{ + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) "vQR" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/wood/ship, @@ -75806,26 +76160,17 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"vRz" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/lower_hull/l_f_p) -"vRE" = ( -/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 +"vRA" = ( +/obj/effect/step_trigger/teleporter_vector{ + name = "Almayer_AresDown"; + vector_x = 96; + vector_y = -65 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" +/obj/structure/stairs{ + dir = 1 }, -/area/almayer/medical/lower_medical_medbay) +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) "vRR" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -75852,15 +76197,6 @@ icon_state = "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 @@ -75883,6 +76219,21 @@ icon_state = "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{ @@ -75896,15 +76247,6 @@ icon_state = "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{ @@ -75957,9 +76299,21 @@ icon_state = "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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_a_s) +"vTM" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/toolbox, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "vTS" = ( /obj/structure/machinery/light{ pixel_x = 16 @@ -75975,21 +76329,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/lower) -"vTV" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/obj/structure/machinery/door_control{ - id = "OTStore"; - name = "Shutters"; - pixel_y = -24 +"vTX" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_y = -32 }, -/obj/structure/surface/rack, -/obj/item/reagent_container/glass/bucket/janibucket, -/turf/open/floor/almayer{ - icon_state = "orange" +/obj/structure/sign/safety/manualopenclose{ + pixel_x = 15; + pixel_y = -32 }, -/area/almayer/engineering/lower/workshop/hangar) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "vUb" = ( /obj/effect/landmark/start/marine/alpha, /obj/effect/landmark/late_join/alpha, @@ -76009,50 +76358,44 @@ /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) -"vUk" = ( -/obj/item/storage/toolbox/mechanical{ - pixel_y = 13 +"vUn" = ( +/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{ - icon_state = "plate" + dir = 8; + icon_state = "red" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/hallways/upper/port) "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 +/obj/structure/bed/chair/comfy/orange{ + dir = 8 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"vUP" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/shipboard/brig/cic_hallway) -"vUU" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/warden_office) +"vUJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/sign/safety/three{ - pixel_x = 31; - pixel_y = -8 +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/obj/structure/sign/safety/ammunition{ - pixel_x = 32; - pixel_y = 7 +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "emerald" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/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; @@ -76071,13 +76414,13 @@ }, /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" @@ -76095,6 +76438,14 @@ icon_state = "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; @@ -76114,24 +76465,16 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"vVX" = ( -/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 +"vVZ" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "test_floor4" }, -/area/almayer/engineering/lower/engine_core) +/area/almayer/hallways/lower/port_umbilical) "vWc" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, /obj/structure/surface/table/almayer, /obj/item/device/radio/intercom/normandy{ layer = 3.5 @@ -76140,6 +76483,19 @@ icon_state = "redfull" }, /area/almayer/living/offices/flight) +"vWs" = ( +/obj/structure/largecrate/random/barrel/red, +/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/lower/vehiclehangar) "vWt" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/glass/beaker/large, @@ -76162,17 +76518,6 @@ icon_state = "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 @@ -76272,9 +76617,7 @@ 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) "vXo" = ( /obj/structure/disposalpipe/segment{ @@ -76286,32 +76629,55 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower) -"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 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"vXY" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ +"vXv" = ( +/obj/structure/machinery/light{ dir = 1 }, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_10"; + pixel_y = 14 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/medical/upper_medical) +"vXF" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/hallways/lower/port_umbilical) +"vYd" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/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{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/warden_office) "vYm" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, @@ -76397,34 +76763,33 @@ "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 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"vZI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hull/lower_hull) -"vZU" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/power/apc/almayer{ +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/machinery/cell_charger, -/obj/structure/sign/safety/high_rad{ - pixel_x = 32; - pixel_y = -8 +/turf/open/floor/almayer{ + dir = 4; + icon_state = "blue" }, -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = 7 +/area/almayer/hallways/upper/midship_hallway) +"vZJ" = ( +/turf/open/floor/almayer{ + dir = 6; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) +"wac" = ( +/obj/structure/window/reinforced{ + dir = 8; + health = 80 }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" + icon_state = "plate" }, -/area/almayer/engineering/lower) +/area/almayer/maint/hull/lower/l_a_p) "wan" = ( /obj/structure/surface/table/almayer, /obj/item/facepaint/brown, @@ -76447,15 +76812,12 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"wbh" = ( -/obj/structure/machinery/light{ - dir = 4 - }, +"waP" = ( +/obj/structure/closet/firecloset, /turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" + icon_state = "cargo" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/upper/fore_hallway) "wbu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname/almayer{ @@ -76466,13 +76828,18 @@ icon_state = "mono" }, /area/almayer/living/pilotbunks) -"wbx" = ( -/obj/structure/sign/safety/hazard{ - desc = "A sign that warns of a hazardous environment nearby"; - name = "\improper Warning: Hazardous Environment" +"wby" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper Starboard Viewing Room" }, -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_f_p) +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_f_s) "wbC" = ( /obj/structure/machinery/atm{ pixel_y = 32 @@ -76526,6 +76893,15 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/operating_room_four) +"wbV" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/living/cryo_cells) "wbX" = ( /obj/structure/closet/secure_closet/cmdcabinet{ pixel_y = 24 @@ -76545,9 +76921,6 @@ icon_state = "redfull" }, /area/almayer/lifeboat_pumps/south2) -"wcn" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "wct" = ( /obj/structure/closet/radiation, /turf/open/floor/almayer{ @@ -76555,6 +76928,20 @@ icon_state = "orange" }, /area/almayer/engineering/lower) +"wcD" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) +"wcJ" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/s_bow) "wcN" = ( /obj/structure/machinery/status_display{ pixel_y = 30 @@ -76577,16 +76964,6 @@ icon_state = "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 @@ -76605,25 +76982,6 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"wdo" = ( -/obj/structure/machinery/door/airlock/almayer/research/reinforced{ - dir = 8; - name = "\improper Containment Airlock"; - closeOtherId = "containment_s" - }, -/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{ - icon_state = "test_floor4" - }, -/area/almayer/medical/medical_science) "wdv" = ( /obj/structure/machinery/door/airlock/almayer/maint{ name = "\improper Core Hatch" @@ -76644,15 +77002,27 @@ /obj/effect/landmark/late_join/charlie, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) +"wdE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/midship_hallway) "wdF" = ( /turf/open/floor/almayer{ allow_construction = 0 }, /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) +"wdG" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_f_p) "wdI" = ( /turf/open/floor/almayer{ dir = 1; @@ -76667,6 +77037,18 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "wed" = ( /obj/structure/surface/table/almayer, /obj/item/storage/belt/utility/full, @@ -76693,6 +77075,14 @@ icon_state = "test_floor4" }, /area/almayer/medical/hydroponics) +"wer" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/repair_bay) "wex" = ( /obj/structure/sign/safety/bathunisex{ pixel_x = 8; @@ -76725,14 +77115,6 @@ icon_state = "cargo" }, /area/almayer/living/offices) -"weU" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "wfn" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/almayer{ @@ -76748,24 +77130,6 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"wfB" = ( -/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{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "wfE" = ( /turf/closed/wall/almayer, /area/almayer/living/gym) @@ -76791,14 +77155,6 @@ icon_state = "silver" }, /area/almayer/living/briefing) -"wgd" = ( -/obj/structure/sign/safety/restrictedarea{ - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "wgf" = ( /obj/structure/sign/safety/nonpress_0g{ pixel_x = 32 @@ -76808,9 +77164,6 @@ icon_state = "plating" }, /area/almayer/shipboard/stern_point_defense) -"wgi" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/main_office) "wgk" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -76824,14 +77177,13 @@ icon_state = "silver" }, /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, @@ -76842,20 +77194,24 @@ icon_state = "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/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) +"whm" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/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" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/hull/lower/l_m_s) "whA" = ( /turf/open/floor/almayer/uscm/directional, /area/almayer/living/briefing) @@ -76874,6 +77230,28 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"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/item/storage/donut_box{ + pixel_y = 8 + }, +/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{ + icon_state = "ai_floor3" + }, +/area/almayer/command/airoom) "wiz" = ( /obj/structure/bed/chair{ dir = 4 @@ -76915,6 +77293,27 @@ icon_state = "silver" }, /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{ + icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "wiW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -76956,21 +77355,29 @@ icon_state = "plate" }, /area/almayer/shipboard/port_point_defense) -"wjE" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +"wjL" = ( +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" +/area/almayer/hallways/lower/repair_bay) +"wjQ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -14; + pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = 12; + pixel_y = 13 }, -/area/almayer/hallways/upper/starboard) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/mess) "wjY" = ( /obj/structure/closet/secure_closet/warrant_officer, /turf/open/floor/wood/ship, @@ -76998,6 +77405,15 @@ icon_state = "sterile_green" }, /area/almayer/medical/lockerroom) +"wks" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) "wky" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -77027,17 +77443,6 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) -"wkL" = ( -/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) "wkM" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "ARES StairsLower"; @@ -77049,7 +77454,7 @@ alert_message = "Caution: Movement detected in ARES Core."; cooldown_duration = 1200 }, -/obj/structure/machinery/door/poddoor/almayer/blended/white/open{ +/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open{ closed_layer = 3.2; id = "ARES Emergency"; layer = 3.2; @@ -77083,30 +77488,53 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"wld" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" +"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/pipes/standard/simple/hidden/supply{ - dir = 5 +/obj/item/device/taperecorder{ + pixel_x = 3; + pixel_y = 3 }, -/obj/structure/sign/safety/ammunition{ - pixel_x = 15; - pixel_y = -32 +/obj/structure/machinery/light/small{ + dir = 8 }, -/obj/structure/sign/safety/hazard{ - pixel_y = -32 +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/execution) -"wlp" = ( +/area/almayer/shipboard/brig/interrogation) +"wlh" = ( /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/squads/req) +"wlr" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "silver" + }, +/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 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/hallways/lower/port_umbilical) "wlE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -77133,12 +77561,6 @@ }, /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 @@ -77148,6 +77570,19 @@ icon_state = "red" }, /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{ + dir = 5; + icon_state = "blue" + }, +/area/almayer/hallways/upper/fore_hallway) "wmz" = ( /obj/structure/bed/chair/comfy/bravo{ dir = 1 @@ -77189,8 +77624,20 @@ icon_state = "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{ + icon_state = "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" = ( @@ -77250,55 +77697,47 @@ icon_state = "silver" }, /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" }, /area/almayer/powered/agent) -"wph" = ( -/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 +"wpt" = ( +/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" }, -/turf/open/floor/carpet, -/area/almayer/command/corporateliaison) -"wpw" = ( -/obj/structure/bed/chair/comfy/ares{ - dir = 1 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/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/machinery/door/airlock/almayer/command/reinforced{ + closeOtherId = "ciclobby_s"; + name = "\improper Combat Information Center" }, -/turf/open/floor/almayer/no_build{ - icon_state = "plating" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/area/almayer/command/airoom) -"wpz" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 +/area/almayer/command/cic) +"wpu" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/device/flashlight/lamp{ + pixel_y = 8 }, -/obj/structure/closet, +/obj/item/clothing/glasses/science{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/device/flash, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "mono" }, -/area/almayer/living/port_emb) +/area/almayer/medical/upper_medical) "wpI" = ( /turf/open/floor/almayer{ dir = 4; @@ -77333,12 +77772,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"wqq" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) "wqr" = ( /obj/structure/sign/safety/terminal{ pixel_x = 7; @@ -77349,19 +77782,15 @@ icon_state = "plate" }, /area/almayer/command/combat_correspondent) -"wqA" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 +"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{ @@ -77372,19 +77801,60 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/upper_medical) +"wra" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "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{ + dir = 5; + icon_state = "plating" + }, +/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{ + icon_state = "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{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/port_fore_hallway) "wrT" = ( /obj/structure/surface/table/almayer, /obj/item/device/radio/marine, @@ -77434,16 +77904,23 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/processing) -"wst" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +"wsw" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/obj/effect/step_trigger/clone_cleaner, /turf/open/floor/almayer{ - dir = 10; - icon_state = "green" + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) +"wsz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/bed/chair{ + dir = 1 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "wsD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -77456,16 +77933,36 @@ icon_state = "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{ + icon_state = "test_floor4" }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/lower/starboard_midship_hallway) +"wtk" = ( +/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/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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "wty" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -77475,6 +77972,14 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/delta) +"wtD" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "Brig" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/p_bow) "wtM" = ( /obj/structure/machinery/light{ unacidable = 1; @@ -77500,22 +78005,14 @@ }, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/chief_mp_office) -"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"; - closeOtherId = "brigmed" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ +"wub" = ( +/obj/structure/pipes/vents/pump{ dir = 4 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "mono" }, -/area/almayer/shipboard/brig/surgery) +/area/almayer/medical/upper_medical) "wud" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -77525,12 +78022,48 @@ icon_state = "orangefull" }, /area/almayer/engineering/lower/workshop) -"wul" = ( -/obj/structure/machinery/light/small{ +"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) +/area/almayer/maint/hull/lower/l_f_p) +"wui" = ( +/obj/structure/machinery/cryopod{ + pixel_y = 6 + }, +/obj/structure/sign/safety/cryo{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + icon_state = "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 + }, +/turf/open/floor/almayer, +/area/almayer/command/lifeboat) "wup" = ( /obj/structure/supply_drop/echo, /turf/open/floor/almayer, @@ -77553,13 +78086,15 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop) -"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) +"wuS" = ( +/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/maint/upper/u_a_s) "wuT" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -77627,6 +78162,19 @@ icon_state = "cargo" }, /area/almayer/living/synthcloset) +"wvX" = ( +/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" + }, +/area/almayer/hallways/upper/midship_hallway) "wwr" = ( /obj/structure/machinery/cryopod{ layer = 3.1; @@ -77636,21 +78184,18 @@ icon_state = "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) +/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, @@ -77690,6 +78235,11 @@ icon_state = "orange" }, /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" @@ -77698,6 +78248,37 @@ icon_state = "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{ + dir = 5; + icon_state = "red" + }, +/area/almayer/shipboard/brig/warden_office) "wxU" = ( /obj/item/ashtray/bronze{ pixel_x = 7; @@ -77722,18 +78303,6 @@ icon_state = "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{ @@ -77743,18 +78312,23 @@ /turf/open/floor/almayer{ icon_state = "bluefull" }, -/area/almayer/command/cichallway) -"wyO" = ( -/obj/structure/largecrate/random/barrel/red, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +/area/almayer/command/cichallway) +"wyz" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"wyG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/maint/hull/lower/l_m_s) "wyQ" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/door_control{ @@ -77767,14 +78341,15 @@ icon_state = "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) +"wzy" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/plating_catwalk, +/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; @@ -77785,34 +78360,33 @@ req_one_access = null }, /turf/open/floor/almayer{ - icon_state = "sterile_green" + icon_state = "test_floor4" }, /area/almayer/medical/lower_medical_medbay) -"wAR" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +"wAE" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/obj/structure/machinery/light, /turf/open/floor/almayer{ - dir = 4; - icon_state = "green" + icon_state = "test_floor4" }, -/area/almayer/hallways/port_hallway) -"wBd" = ( -/obj/structure/machinery/status_display{ - pixel_x = 32 +/area/almayer/hallways/upper/fore_hallway) +"wAK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/obj/structure/surface/table/almayer, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_umbilical) +"wBw" = ( +/obj/structure/pipes/vents/pump, +/obj/structure/machinery/status_display{ + pixel_y = 30 }, /turf/open/floor/almayer{ - dir = 6; - icon_state = "red" + dir = 1; + icon_state = "green" }, -/area/almayer/shipboard/brig/lobby) +/area/almayer/hallways/lower/starboard_midship_hallway) "wBI" = ( /obj/effect/step_trigger/clone_cleaner, /obj/structure/sign/safety/maint{ @@ -77820,19 +78394,12 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/upper/starboard) -"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 - }, +"wCe" = ( +/obj/structure/machinery/light, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "orangecorner" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/hallways/upper/aft_hallway) "wCk" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras/wooden_tv/ot{ @@ -77840,6 +78407,14 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) +"wCn" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/almayer/hallways/upper/fore_hallway) "wCs" = ( /obj/structure/machinery/vending/security, /obj/structure/machinery/power/apc/almayer{ @@ -77855,33 +78430,6 @@ icon_state = "redcorner" }, /area/almayer/living/briefing) -"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) -"wCZ" = ( -/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) "wDg" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -77892,31 +78440,18 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"wDm" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 +"wDq" = ( +/obj/structure/largecrate/random/case/small, +/obj/structure/machinery/light/small{ + dir = 8 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_a_s) -"wDp" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/camera{ - pixel_x = 4; - pixel_y = 8 - }, -/obj/item/device/camera_film{ - pixel_x = 4; - pixel_y = -2 - }, -/obj/item/device/camera_film, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) +/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{ @@ -77954,6 +78489,15 @@ }, /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{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "wDH" = ( /obj/structure/morgue, /obj/structure/machinery/light{ @@ -77981,15 +78525,14 @@ "wDM" = ( /turf/closed/wall/almayer/reinforced/temphull, /area/almayer/engineering/upper_engineering) -"wDR" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 +"wDP" = ( +/obj/structure/sign/safety/storage{ + pixel_x = -17 }, -/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/hull/lower/l_f_p) "wEd" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -78001,39 +78544,6 @@ icon_state = "plate" }, /area/almayer/squads/alpha) -"wEe" = ( -/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/corporateliaison) "wEg" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "agentshuttle"; @@ -78047,6 +78557,10 @@ icon_state = "rasputin3" }, /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, @@ -78060,6 +78574,12 @@ icon_state = "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 @@ -78069,18 +78589,34 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south2) +"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{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) "wFb" = ( /turf/open/floor/almayer{ dir = 4; icon_state = "sterile_green_corner" }, /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{ + icon_state = "plate" + }, +/area/almayer/shipboard/panic) "wFn" = ( /obj/structure/surface/rack, /obj/item/clothing/suit/storage/marine/light/vest, @@ -78096,6 +78632,9 @@ icon_state = "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."; @@ -78108,9 +78647,40 @@ }, /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{ + icon_state = "plate" + }, +/area/almayer/shipboard/panic) +"wFQ" = ( +/obj/structure/machinery/cm_vending/clothing/maintenance_technician, +/turf/open/floor/almayer{ + icon_state = "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 @@ -78126,35 +78696,18 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"wGi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +"wGe" = ( +/obj/structure/closet/emcloset, /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) +/area/almayer/maint/hull/lower/l_f_p) "wGE" = ( /obj/structure/disposalpipe/segment, /obj/effect/landmark/start/marine/leader/delta, /obj/effect/landmark/late_join/delta, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) -"wGI" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "wGX" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -78181,6 +78734,13 @@ icon_state = "emerald" }, /area/almayer/living/port_emb) +"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{ icon_state = "emerald" @@ -78193,17 +78753,12 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"wHM" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - name = "\improper Warden's Office" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"wHr" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 }, -/area/almayer/shipboard/brig/chief_mp_office) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "wIr" = ( /obj/structure/machinery/cm_vending/clothing/senior_officer{ req_access = list(); @@ -78217,6 +78772,12 @@ icon_state = "cargo" }, /area/almayer/squads/req) +"wIu" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "wIC" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/brig/chief_mp_office) @@ -78247,6 +78808,20 @@ icon_state = "silvercorner" }, /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{ + dir = 4; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "wJb" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/lower_medical_medbay) @@ -78269,22 +78844,10 @@ icon_state = "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) -"wJB" = ( -/obj/structure/machinery/cryopod/right, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/command/airoom) +"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; @@ -78306,13 +78869,32 @@ "wJH" = ( /turf/closed/wall/almayer/research/containment/wall/east, /area/almayer/medical/containment/cell/cl) -"wKn" = ( -/obj/structure/surface/rack, -/obj/item/facepaint/sniper, +"wKb" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/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{ - icon_state = "plate" + icon_state = "mono" + }, +/area/almayer/engineering/upper_engineering/port) +"wKm" = ( +/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/hull/upper_hull/u_m_s) +/area/almayer/hallways/lower/port_aft_hallway) "wKF" = ( /obj/structure/machinery/power/apc/almayer{ cell_type = /obj/item/cell/hyper; @@ -78331,6 +78913,34 @@ }, /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{ + icon_state = "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"; @@ -78355,18 +78965,6 @@ }, /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; @@ -78392,6 +78990,40 @@ dir = 1 }, /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{ + icon_state = "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{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/medical) "wLG" = ( /obj/item/bedsheet/blue{ layer = 3.2 @@ -78443,15 +79075,38 @@ icon_state = "sterile_green" }, /area/almayer/medical/containment) -"wMm" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ +"wLS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "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{ + dir = 4; + icon_state = "orange" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/hallways/lower/starboard_midship_hallway) "wMv" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -78460,6 +79115,21 @@ icon_state = "dark_sterile" }, /area/almayer/living/auxiliary_officer_office) +"wMB" = ( +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) +"wMF" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) "wMG" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -78468,6 +79138,17 @@ icon_state = "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 @@ -78501,20 +79182,41 @@ icon_state = "orange" }, /area/almayer/living/port_emb) -"wNm" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull) "wNt" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "redcorner" }, /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{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/starboard_midship_hallway) +"wNC" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "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{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "wNS" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -78527,19 +79229,18 @@ /obj/structure/platform, /turf/open/floor/almayer, /area/almayer/living/briefing) -"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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "wOK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -78550,13 +79251,17 @@ }, /area/almayer/engineering/upper_engineering/port) "wPa" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/device/camera_film{ - pixel_x = 4; - pixel_y = -2 +/obj/structure/platform{ + dir = 4 }, -/turf/open/floor/almayer, -/area/almayer/squads/charlie_delta_shared) +/obj/item/reagent_container/glass/rag, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "wPf" = ( /obj/structure/sign/safety/reception{ pixel_x = 32; @@ -78566,6 +79271,15 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"wPi" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "cargo_arrow" + }, +/area/almayer/hallways/lower/port_midship_hallway) "wPz" = ( /turf/open/floor/almayer{ icon_state = "mono" @@ -78592,21 +79306,17 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) -"wQg" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "greencorner" - }, -/area/almayer/hallways/aft_hallway) -"wQx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"wQu" = ( +/obj/effect/projector{ + name = "Almayer_Up3"; + vector_x = -1; + vector_y = 102 }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" + allow_construction = 0; + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/hallways/lower/port_fore_hallway) "wQA" = ( /obj/structure/pipes/standard/simple/visible{ dir = 5 @@ -78620,15 +79330,36 @@ icon_state = "orange" }, /area/almayer/engineering/lower/engine_core) -"wRa" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/safety/bulkhead_door{ - pixel_y = -34 +"wQI" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails{ + dir = 4 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/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 + }, +/obj/structure/sign/safety/press_area_ag{ + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_umbilical) +"wRk" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer, +/area/almayer/command/lifeboat) "wRN" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/item/seeds/goldappleseed, @@ -78668,15 +79399,6 @@ icon_state = "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 @@ -78701,13 +79423,24 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/lobby) -"wSK" = ( -/obj/structure/janitorialcart, -/obj/item/tool/mop, +"wSx" = ( +/obj/structure/platform_decoration, +/obj/structure/machinery/power/apc/almayer{ + dir = 4 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/shipboard/brig/execution) +/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{ + dir = 1; + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "wSR" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -78764,6 +79497,23 @@ icon_state = "red" }, /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{ + dir = 10; + icon_state = "orange" + }, +/area/almayer/maint/upper/mess) "wTw" = ( /obj/structure/machinery/cm_vending/sorted/attachments/squad{ req_access = null; @@ -78775,20 +79525,20 @@ icon_state = "plate" }, /area/almayer/squads/charlie_delta_shared) -"wTy" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"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 }, -/area/almayer/lifeboat_pumps/south1) -"wTJ" = ( -/obj/structure/barricade/handrail, -/obj/structure/barricade/handrail{ - dir = 4 +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/obj/structure/largecrate/random, -/turf/open/floor/almayer, -/area/almayer/engineering/upper_engineering/port) +/area/almayer/engineering/lower/engine_core) "wTM" = ( /turf/closed/wall/almayer/research/containment/wall/south, /area/almayer/medical/containment/cell) @@ -78809,34 +79559,18 @@ /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 +"wUJ" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/hull/upper/u_m_p) "wUK" = ( /turf/open/floor/almayer{ dir = 8; icon_state = "orangecorner" }, /area/almayer/engineering/lower/workshop/hangar) -"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) "wUP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -78852,15 +79586,6 @@ icon_state = "blue" }, /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{ @@ -78875,9 +79600,20 @@ icon_state = "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, @@ -78924,40 +79660,21 @@ icon_state = "bluefull" }, /area/almayer/living/bridgebunks) -"wVD" = ( +"wVN" = ( +/obj/item/roller, /obj/structure/surface/rack, -/obj/item/tool/wirecutters, -/obj/item/tool/shovel/snow, +/obj/item/roller, /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) +/area/almayer/shipboard/panic) "wVW" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/command/cic) -"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" - }, -/area/almayer/hallways/aft_hallway) "wWl" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/general_air_control/large_tank_control{ @@ -78979,6 +79696,14 @@ icon_state = "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) @@ -78988,15 +79713,6 @@ icon_state = "blue" }, /area/almayer/living/pilotbunks) -"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, @@ -79004,12 +79720,6 @@ icon_state = "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 @@ -79021,11 +79731,6 @@ icon_state = "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, @@ -79039,6 +79744,18 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north2) +"wXl" = ( +/obj/structure/platform, +/turf/open/floor/almayer{ + icon_state = "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 @@ -79051,6 +79768,12 @@ icon_state = "greencorner" }, /area/almayer/living/grunt_rnr) +"wXJ" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "wXT" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ name = "\improper Engineering Storage" @@ -79065,24 +79788,29 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north2) -"wYj" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 - }, -/obj/structure/bed/sofa/south/white/left{ - pixel_y = 16 +"wYd" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer{ + icon_state = "plate" }, +/area/almayer/maint/hull/lower/l_a_p) +"wYr" = ( +/obj/structure/machinery/gel_refiller, /turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" + icon_state = "sterile_green_side" }, -/area/almayer/hull/upper_hull/u_m_p) +/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{ + icon_state = "cargo" + }, +/area/almayer/maint/hull/lower/l_m_s) "wYK" = ( /obj/structure/barricade/handrail/medical, /turf/open/floor/almayer{ @@ -79136,56 +79864,26 @@ icon_state = "sterile_green_side" }, /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) "wZL" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/shipboard/brig/perma) -"wZM" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"wZN" = ( -/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{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/execution) -"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) "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{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) "xad" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -79197,13 +79895,12 @@ icon_state = "plate" }, /area/almayer/shipboard/port_point_defense) -"xae" = ( -/obj/structure/surface/table/almayer, -/obj/item/organ/lungs/prosthetic, +"xas" = ( +/obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/maint/hull/upper/p_bow) "xaC" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/tool/kitchen/utensil/pfork{ @@ -79269,33 +79966,50 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"xbg" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "xbk" = ( /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/living/gym) -"xbN" = ( -/obj/structure/surface/rack{ - density = 0; - pixel_y = 16 +"xbI" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 }, -/obj/structure/janitorialcart, -/obj/item/tool/mop, -/turf/open/floor/plating, -/area/almayer/command/airoom) -"xci" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) +"xcI" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "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/plating/plating_catwalk, -/area/almayer/hallways/upper/starboard) -"xct" = ( -/obj/item/reagent_container/food/snacks/wrapped/barcardine, -/obj/structure/surface/rack, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/shipboard/panic) +"xdf" = ( +/obj/structure/pipes/standard/manifold/fourway/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "xdx" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/regular/empty, @@ -79310,6 +80024,18 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"xdA" = ( +/obj/structure/surface/rack{ + density = 0; + pixel_y = 16 + }, +/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; @@ -79335,41 +80061,67 @@ icon_state = "emeraldfull" }, /area/almayer/living/briefing) -"xeG" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_m_p) -"xfc" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/sign/safety/cryo{ - pixel_x = 36 +"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, +/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 + }, +/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/hull/upper_hull/u_m_p) -"xfk" = ( -/obj/structure/surface/rack, -/obj/item/stack/cable_coil, -/obj/item/attachable/flashlight/grip, -/obj/item/ammo_box/magazine/l42a{ - pixel_y = 14 +/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() }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/engineering/laundry) "xfm" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/living/cafeteria_officer) +"xfq" = ( +/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/maint/hull/lower/l_a_p) "xfK" = ( /obj/structure/machinery/light{ dir = 1 @@ -79413,6 +80165,9 @@ icon_state = "sterile_green_corner" }, /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 @@ -79421,65 +80176,40 @@ icon_state = "sterile_green" }, /area/almayer/medical/lower_medical_lobby) +"xgk" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "xgm" = ( -/obj/structure/reagent_dispensers/oxygentank, +/obj/structure/reagent_dispensers/fueltank/oxygentank, /turf/open/floor/almayer{ icon_state = "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) -"xgx" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) -"xgI" = ( -/obj/structure/closet/secure_closet/personal/cabinet{ - req_access = null - }, -/obj/item/storage/donut_box{ - pixel_y = 8 - }, -/turf/open/floor/wood/ship, -/area/almayer/shipboard/brig/chief_mp_office) +/area/almayer/maint/hull/lower/l_a_p) "xgJ" = ( -/obj/structure/machinery/cm_vending/sorted/medical/blood, /obj/structure/machinery/light{ dir = 1 }, +/obj/structure/machinery/cm_vending/sorted/medical/blood/bolted, /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_side" }, /area/almayer/medical/lockerroom) -"xgL" = ( -/obj/item/clothing/head/welding{ - pixel_y = 6 - }, -/obj/structure/surface/table/reinforced/almayer_B, -/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) "xgN" = ( /obj/structure/bed/chair/comfy/bravo{ dir = 1 @@ -79493,12 +80223,33 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"xgZ" = ( -/obj/structure/largecrate/random/case/small, +"xgP" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/medical/upper_medical) +"xgS" = ( +/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/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/stern) +/area/almayer/maint/hull/lower/l_m_p) "xhn" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ @@ -79512,26 +80263,11 @@ }, /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"; - closeOtherId = "brigmaint_n" - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, +"xhO" = ( /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/maint/hull/lower/l_a_p) "xhQ" = ( /obj/structure/window/framed/almayer, /turf/open/floor/almayer{ @@ -79539,11 +80275,16 @@ }, /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 @@ -79558,13 +80299,18 @@ /obj/structure/window/reinforced, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) -"xiz" = ( -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice12"; - pixel_y = -16 +"xiH" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) +"xiP" = ( +/obj/structure/closet/secure_closet/engineering_welding{ + req_one_access_txt = "7;23;27" }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/maint/hull/lower/s_bow) "xiU" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/item/tool/minihoe{ @@ -79579,6 +80325,15 @@ }, /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; @@ -79631,23 +80386,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"xjG" = ( -/obj/structure/machinery/door_control{ - id = "Interrogation Shutters"; - name = "\improper Shutters"; - pixel_x = 24; - pixel_y = 12; - req_access_txt = "3" - }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "xjK" = ( /obj/structure/sign/safety/hazard{ pixel_y = 32 @@ -79671,6 +80409,21 @@ /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{ + icon_state = "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) @@ -79683,15 +80436,20 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"xkC" = ( -/obj/structure/machinery/light{ - dir = 8 +"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{ - dir = 8; - icon_state = "emerald" + dir = 4; + icon_state = "greencorner" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/lower/starboard_fore_hallway) "xlk" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer, @@ -79705,14 +80463,6 @@ icon_state = "orangecorner" }, /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) "xlO" = ( /obj/structure/filingcabinet, /obj/item/folder/yellow, @@ -79724,9 +80474,6 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop/hangar) -"xlX" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "xmg" = ( /obj/structure/surface/table/almayer, /obj/structure/flora/pottedplant{ @@ -79739,15 +80486,21 @@ icon_state = "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 + }, +/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_s) +/area/almayer/maint/hull/lower/l_f_p) "xmJ" = ( /obj/structure/closet, /obj/structure/sign/safety/bathunisex{ @@ -79758,6 +80511,15 @@ icon_state = "plate" }, /area/almayer/living/port_emb) +"xmP" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/aft_hallway) "xmT" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -79769,23 +80531,14 @@ icon_state = "cargo" }, /area/almayer/medical/lower_medical_medbay) -"xmX" = ( +"xnh" = ( +/obj/structure/closet, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/glasses/regular/hipster, /turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/surgery) -"xns" = ( -/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" + icon_state = "plate" }, -/obj/effect/landmark/late_join/working_joe, -/obj/effect/landmark/start/working_joe, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/command/airoom) +/area/almayer/maint/upper/u_a_s) "xnz" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -79800,22 +80553,14 @@ /obj/effect/landmark/start/requisition, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"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" + icon_state = "plate" }, -/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) +/area/almayer/maint/upper/u_a_s) "xoe" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -79831,16 +80576,18 @@ icon_state = "bluecorner" }, /area/almayer/squads/delta) -"xoh" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "xoj" = ( /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop) +"xos" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/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 @@ -79855,23 +80602,15 @@ icon_state = "orange" }, /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" - }, -/area/almayer/hull/upper_hull/u_f_s) -"xpf" = ( -/obj/structure/bed/chair{ - dir = 4 +"xpc" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "green" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/lower/starboard_midship_hallway) "xpi" = ( /obj/structure/sink{ dir = 8; @@ -79889,42 +80628,38 @@ icon_state = "dark_sterile" }, /area/almayer/living/commandbunks) -"xpo" = ( -/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" +"xpl" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" }, -/obj/item/device/radio/listening_bug/radio_linked/mp{ - pixel_y = 8 +/obj/structure/sign/safety/four{ + pixel_x = 31; + pixel_y = -8 }, -/obj/item/device/radio/listening_bug/radio_linked/mp, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" +/obj/structure/sign/safety/ammunition{ + pixel_x = 32; + pixel_y = 7 }, -/area/almayer/shipboard/brig/chief_mp_office) -"xpt" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 +/turf/open/floor/almayer{ + dir = 4; + icon_state = "blue" }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"xpI" = ( -/obj/structure/stairs{ - dir = 4 +/area/almayer/hallways/lower/port_midship_hallway) +"xpw" = ( +/obj/structure/machinery/medical_pod/sleeper{ + dir = 8 }, -/obj/effect/projector{ - name = "Almayer_Up2"; - vector_x = -1; - vector_y = 100 +/turf/open/floor/almayer{ + icon_state = "dark_sterile" }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 +/area/almayer/shipboard/brig/medical) +"xpL" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, -/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 @@ -79945,6 +80680,11 @@ icon_state = "plating" }, /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/machinery/body_scanconsole{ dir = 8; @@ -79964,12 +80704,6 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) -"xqs" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/chief_mp_office) "xqv" = ( /obj/structure/bed/sofa/south/white/right, /turf/open/floor/almayer{ @@ -80004,6 +80738,19 @@ icon_state = "plate" }, /area/almayer/command/corporateliaison) +"xrg" = ( +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 7 + }, +/obj/structure/sign/safety/airlock{ + pixel_x = 32; + pixel_y = -8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) "xrq" = ( /obj/structure/closet/firecloset, /obj/item/clothing/mask/gas, @@ -80012,12 +80759,6 @@ icon_state = "cargo" }, /area/almayer/command/lifeboat) -"xrr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) "xrt" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -80044,6 +80785,17 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) +"xrC" = ( +/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/lower/starboard_fore_hallway) "xrI" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -80052,17 +80804,27 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"xrN" = ( -/obj/structure/largecrate/supply/supplies/mre, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +"xrT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/hull/upper_hull/u_a_p) -"xsg" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/main_office) +/obj/structure/platform{ + dir = 8 + }, +/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 @@ -80072,6 +80834,22 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) +"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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "xsw" = ( /turf/open/floor/almayer{ dir = 6; @@ -80087,22 +80865,20 @@ icon_state = "plating" }, /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) -"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{ @@ -80110,36 +80886,15 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"xtQ" = ( -/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 +"xub" = ( +/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/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "xuc" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -80147,12 +80902,23 @@ }, /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{ + dir = 9; + icon_state = "red" + }, +/area/almayer/hallways/lower/port_fore_hallway) "xuE" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/reinforced{ dir = 1; @@ -80178,13 +80944,6 @@ icon_state = "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 @@ -80206,13 +80965,6 @@ icon_state = "silver" }, /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) "xvE" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/charlie{ @@ -80222,20 +80974,6 @@ icon_state = "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" - }, -/area/almayer/command/airoom) "xvQ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/sentencing{ @@ -80252,6 +80990,15 @@ icon_state = "plate" }, /area/almayer/squads/bravo) +"xwd" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "xwl" = ( /obj/structure/window/reinforced{ dir = 4; @@ -80265,6 +81012,18 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_fore_hallway) "xwp" = ( /obj/item/storage/box/matches{ pixel_x = -11; @@ -80288,10 +81047,6 @@ icon_state = "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) "xwE" = ( /obj/structure/bed/chair/comfy/alpha, /obj/effect/decal/cleanable/dirt, @@ -80299,6 +81054,15 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"xwU" = ( +/obj/structure/pipes/vents/pump/no_boom/gas{ + vent_tag = "Comms"; + dir = 1 + }, +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_plates" + }, +/area/almayer/command/airoom) "xwX" = ( /turf/open/floor/almayer{ dir = 9; @@ -80316,15 +81080,6 @@ icon_state = "green" }, /area/almayer/squads/req) -"xxe" = ( -/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_s) "xxh" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -80352,14 +81107,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) -"xxl" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 2" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower/engine_core) "xxm" = ( /obj/structure/bed{ can_buckle = 0 @@ -80397,6 +81144,23 @@ }, /turf/open/floor/plating, /area/almayer/living/port_emb) +"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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "xxI" = ( /obj/structure/cargo_container/wy/mid, /obj/structure/sign/poster{ @@ -80437,20 +81201,6 @@ icon_state = "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{ @@ -80462,9 +81212,18 @@ /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{ + dir = 4; + icon_state = "silver" + }, +/area/almayer/hallways/upper/midship_hallway) "xyt" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/mechanical{ @@ -80500,12 +81259,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/upper/port) -"xyE" = ( -/obj/structure/toilet{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "xyL" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -80515,6 +81268,15 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south2) +"xyN" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/brig/execution_storage) +"xyQ" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silvercorner" + }, +/area/almayer/hallways/lower/repair_bay) "xyY" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -80526,6 +81288,11 @@ icon_state = "green" }, /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{ @@ -80536,37 +81303,32 @@ icon_state = "blue" }, /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) -"xzO" = ( -/obj/structure/closet/secure_closet{ - name = "\improper Execution Firearms" +"xzh" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_p) +"xzx" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/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{ icon_state = "plate" }, -/area/almayer/shipboard/brig/execution) -"xAe" = ( -/turf/closed/wall/almayer/research/containment/wall/corner, -/area/almayer/medical/containment/cell) -"xAj" = ( -/obj/structure/bed/chair/bolted{ - dir = 8 +/area/almayer/maint/upper/u_m_s) +"xzB" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) +"xzI" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, /turf/open/floor/almayer{ dir = 1; - icon_state = "red" + icon_state = "green" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/lower/port_midship_hallway) +"xAe" = ( +/turf/closed/wall/almayer/research/containment/wall/corner, +/area/almayer/medical/containment/cell) "xAt" = ( /obj/structure/bed/chair/comfy/charlie{ dir = 8 @@ -80575,6 +81337,13 @@ icon_state = "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, @@ -80619,6 +81388,12 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/port) +"xBK" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/maint/hull/upper/u_f_p) "xBQ" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -80626,12 +81401,37 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) +"xBS" = ( +/obj/structure/bed/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "xBV" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ icon_state = "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) @@ -80655,39 +81455,32 @@ }, /turf/open/floor/carpet, /area/almayer/command/corporateliaison) -"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 +"xCs" = ( +/turf/open/floor/almayer{ + dir = 10; + icon_state = "silver" }, -/obj/structure/largecrate/random/barrel/red, -/obj/item/reagent_container/food/drinks/cans/cola{ - pixel_x = -2; - pixel_y = 16 +/area/almayer/hallways/upper/midship_hallway) +"xCy" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -19; + pixel_y = -6 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = -19; + pixel_y = 6 }, -/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 +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"xCB" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_m_p) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/fore_hallway) "xDe" = ( /obj/effect/projector{ name = "Almayer_Down4"; @@ -80698,36 +81491,21 @@ allow_construction = 0 }, /area/almayer/hallways/upper/port) -"xDj" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 2 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "xDn" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "silver" }, /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, +"xDy" = ( +/obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_f_s) +/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) "xDF" = ( /obj/structure/machinery/autolathe, @@ -80746,6 +81524,14 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) +"xEe" = ( +/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, @@ -80757,9 +81543,6 @@ icon_state = "sterile_green_side" }, /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" @@ -80771,27 +81554,16 @@ icon_state = "plate" }, /area/almayer/living/offices) -"xFw" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, +"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{ - 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 + icon_state = "green" }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/upper/fore_hallway) "xFP" = ( /turf/open/floor/almayer{ dir = 5; @@ -80815,16 +81587,12 @@ icon_state = "green" }, /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{ @@ -80852,6 +81620,28 @@ icon_state = "test_floor4" }, /area/almayer/squads/bravo) +"xGF" = ( +/obj/structure/machinery/vending/snack{ + density = 0; + pixel_y = 18 + }, +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) "xGJ" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; @@ -80862,19 +81652,63 @@ icon_state = "red" }, /area/almayer/living/briefing) +"xGK" = ( +/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/maint/hull/upper/u_a_p) +"xGT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "xHp" = ( /turf/open/floor/almayer{ icon_state = "orange" }, /area/almayer/squads/alpha_bravo_shared) -"xHG" = ( -/obj/structure/surface/rack, +"xHt" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/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" + }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/engineering/upper_engineering) "xHS" = ( -/obj/structure/reagent_dispensers/oxygentank{ +/obj/structure/reagent_dispensers/fueltank/oxygentank{ anchored = 1 }, /obj/effect/decal/warning_stripes{ @@ -80885,18 +81719,15 @@ icon_state = "cargo" }, /area/almayer/engineering/lower/workshop/hangar) -"xHW" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "cargo" +"xHX" = ( +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hull/upper_hull/u_f_p) -"xIb" = ( -/obj/structure/closet/emcloset, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/maint/hull/lower/p_bow) "xId" = ( /obj/structure/surface/rack, /obj/item/mortar_shell/he, @@ -80905,26 +81736,9 @@ icon_state = "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 @@ -80957,20 +81771,15 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"xIO" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 11" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower/engine_core) "xIQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /turf/open/floor/almayer, /area/almayer/living/offices) +"xIV" = ( +/turf/open/floor/almayer, +/area/almayer/maint/upper/mess) "xIW" = ( /obj/structure/machinery/light{ dir = 4 @@ -81005,12 +81814,12 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"xJi" = ( -/obj/structure/disposalpipe/segment, +"xJp" = ( +/obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/hull/lower/l_m_s) "xJH" = ( /turf/open/floor/almayer{ icon_state = "cargo" @@ -81032,6 +81841,34 @@ }, /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{ + dir = 4; + icon_state = "orange" + }, +/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; @@ -81051,24 +81888,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/synthcloset) -"xKW" = ( -/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/hull/upper_hull/u_f_p) "xLi" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/map_item, @@ -81096,24 +81915,39 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/general_equipment) +"xLn" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_stern) +"xLu" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_s) +"xLw" = ( +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "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 @@ -81126,21 +81960,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"xMk" = ( -/obj/structure/stairs{ - dir = 8; - icon_state = "ramptop" - }, -/obj/effect/projector{ - name = "Almayer_Down3"; - vector_x = 1; - vector_y = -102 - }, -/obj/structure/machinery/light, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) "xMl" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -81151,6 +81970,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/lower) +"xMm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "xMs" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/operating_room_two) @@ -81179,8 +82007,28 @@ dir = 6 }, /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{ + icon_state = "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 }, @@ -81279,25 +82127,24 @@ icon_state = "plate" }, /area/almayer/living/auxiliary_officer_office) -"xNB" = ( -/obj/structure/machinery/light, -/obj/structure/sign/safety/security{ - pixel_y = -32 - }, -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 15; - pixel_y = -32 +"xNM" = ( +/obj/structure/machinery/cm_vending/gear/vehicle_crew, +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"xNL" = ( +/area/almayer/hallways/lower/vehiclehangar) +"xOs" = ( /obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_x = -1; - pixel_y = 2 + icon_state = "E"; + pixel_x = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/vehiclehangar) +/obj/structure/sign/poster/pinup{ + pixel_x = -30 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/command/corporateliaison) "xOL" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, @@ -81327,6 +82174,26 @@ dir = 4 }, /area/almayer/medical/containment/cell) +"xPn" = ( +/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/lower/repair_bay) "xPq" = ( /obj/structure/filingcabinet, /obj/item/folder/yellow, @@ -81335,10 +82202,6 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop/hangar) -"xPE" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "xPZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -81354,6 +82217,24 @@ }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) +"xQe" = ( +/obj/structure/machinery/vending/cigarette{ + density = 0; + pixel_y = 18 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "xQg" = ( /obj/structure/pipes/vents/pump{ dir = 8 @@ -81363,43 +82244,38 @@ icon_state = "bluecorner" }, /area/almayer/living/pilotbunks) +"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{ dir = 1 }, /area/almayer/medical/containment/cell) +"xQz" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "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 +"xQW" = ( +/obj/structure/sign/safety/bathunisex{ + pixel_x = -18 }, /turf/open/floor/almayer{ - icon_state = "mono" + icon_state = "plate" }, -/area/almayer/medical/upper_medical) +/area/almayer/maint/hull/upper/p_stern) "xRj" = ( /obj/structure/bed/chair{ dir = 8; @@ -81438,15 +82314,6 @@ dir = 1 }, /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 @@ -81467,21 +82334,6 @@ icon_state = "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 @@ -81492,6 +82344,12 @@ }, /turf/open/floor/plating, /area/almayer/squads/charlie) +"xSx" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "xSz" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/status_display{ @@ -81502,15 +82360,6 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"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 @@ -81541,24 +82390,23 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/containment) -"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) "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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_stern) "xTH" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, @@ -81566,18 +82414,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"xTL" = ( -/obj/structure/machinery/cm_vending/gear/executive_officer{ - pixel_y = 30; - density = 0 - }, -/obj/structure/machinery/power/apc/almayer{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/numbertwobunks) "xTR" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -81623,6 +82459,13 @@ }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_stern) "xUA" = ( /obj/structure/surface/table/almayer, /obj/item/storage/pouch/tools/tank, @@ -81639,23 +82482,25 @@ icon_state = "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{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_s) -"xUV" = ( -/obj/structure/bed/chair{ +/area/almayer/command/combat_correspondent) +"xUY" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/machinery/light/small{ + dir = 1 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/command/combat_correspondent) +/area/almayer/maint/hull/lower/l_f_p) "xVc" = ( /obj/effect/step_trigger/clone_cleaner, /obj/structure/machinery/door_control{ @@ -81665,9 +82510,7 @@ 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) "xVe" = ( /obj/effect/decal/warning_stripes{ @@ -81681,23 +82524,9 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"xVj" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/weldingtool{ - pixel_x = 6; - pixel_y = -16 - }, -/obj/item/clothing/head/welding, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "xVk" = ( /turf/open/space, /area/space/almayer/lifeboat_dock) -"xVl" = ( -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/shipboard/brig/main_office) "xVF" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -81727,6 +82556,12 @@ }, /turf/closed/wall/almayer, /area/almayer/living/tankerbunks) +"xVY" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "xWd" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ @@ -81740,7 +82575,7 @@ req_one_access_txt = "19;21" }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, /area/almayer/squads/req) "xWp" = ( @@ -81752,12 +82587,6 @@ }, /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 @@ -81787,6 +82616,12 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"xXd" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silvercorner" + }, +/area/almayer/hallways/upper/midship_hallway) "xXh" = ( /turf/closed/wall/almayer/research/containment/wall/west, /area/almayer/medical/containment/cell) @@ -81836,11 +82671,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"xYe" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/weldingtool, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) "xYf" = ( /obj/structure/machinery/cm_vending/clothing/sea, /turf/open/floor/almayer{ @@ -81848,6 +82678,12 @@ icon_state = "plating" }, /area/almayer/shipboard/sea_office) +"xYr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "xYB" = ( /obj/structure/sign/safety/storage{ pixel_x = 8; @@ -81855,14 +82691,12 @@ }, /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) @@ -81872,16 +82706,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) -"xYS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "xYZ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -81918,6 +82742,22 @@ icon_state = "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; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) "xZG" = ( /obj/structure/machinery/light{ dir = 4 @@ -81926,23 +82766,28 @@ /obj/structure/bed, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"xZI" = ( -/obj/structure/prop/invuln/lattice_prop{ - dir = 1; - icon_state = "lattice-simple"; - pixel_x = 16; - pixel_y = -16 +"xZH" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 }, -/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_m_s) -"xZK" = ( -/obj/structure/surface/rack, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "orange" }, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/hallways/lower/starboard_midship_hallway) "xZU" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -81963,13 +82808,21 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"yal" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/effect/spawner/random/tool, +"yap" = ( +/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/hull/upper_hull/u_a_p) +/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" @@ -81996,45 +82849,49 @@ icon_state = "orange" }, /area/almayer/engineering/lower) -"yaG" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "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{ + dir = 1; + icon_state = "cargo_arrow" + }, +/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) -"ybf" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 +"ybm" = ( +/obj/structure/surface/table/almayer, +/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" + pixel_y = 7 }, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "ybz" = ( /obj/structure/machinery/brig_cell/cell_4{ pixel_x = 32; @@ -82042,33 +82899,14 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/processing) -"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 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"ybS" = ( -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice12"; - pixel_y = 16 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) -"ybU" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" +"ybP" = ( +/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/hallways/lower/port_umbilical) "ybZ" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/transmitter{ @@ -82097,6 +82935,9 @@ 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 @@ -82118,6 +82959,18 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"ycA" = ( +/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/upper/aft_hallway) "ycH" = ( /obj/structure/surface/table/almayer, /obj/item/pizzabox/margherita{ @@ -82128,10 +82981,14 @@ icon_state = "green" }, /area/almayer/squads/req) -"ycV" = ( -/obj/structure/curtain/red, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +"ycM" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "ycZ" = ( /obj/structure/sign/poster{ pixel_y = 32 @@ -82141,6 +82998,15 @@ icon_state = "blue" }, /area/almayer/squads/delta) +"ydf" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/largecrate/random/case, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "ydh" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -82151,15 +83017,6 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/port) -"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 @@ -82168,6 +83025,19 @@ icon_state = "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{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/port_fore_hallway) "ydE" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -82182,9 +83052,7 @@ 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{ @@ -82217,15 +83085,28 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"yeu" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 +"yeg" = ( +/obj/structure/sign/safety/escapepod{ + pixel_y = -32 + }, +/obj/structure/sign/safety/east{ + pixel_x = 15; + pixel_y = -32 }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + icon_state = "green" }, -/area/almayer/shipboard/brig/main_office) +/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, @@ -82254,13 +83135,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"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; @@ -82269,6 +83143,12 @@ }, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/chief_mp_office) +"yfd" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "yff" = ( /obj/structure/machinery/cm_vending/clothing/dress{ density = 0; @@ -82281,6 +83161,13 @@ icon_state = "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, @@ -82288,43 +83175,19 @@ icon_state = "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 - }, +"yfn" = ( +/obj/structure/machinery/pipedispenser/orderable, /turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" + icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) +/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/item/spacecash/c10{ - pixel_x = 5; - pixel_y = 10 - }, -/obj/item/ashtray/plastic{ - pixel_x = 5; - pixel_y = -10 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 }, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "yfG" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -82353,21 +83216,44 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"ygy" = ( -/obj/structure/machinery/light/small{ - dir = 1 +"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 + }, +/obj/structure/sign/safety/nonpress_ag{ + pixel_x = 15; + pixel_y = -32 + }, +/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, +/area/almayer/maint/hull/lower/l_f_p) +"ygB" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 6; + icon_state = "green" }, -/area/almayer/hull/lower_hull/l_m_s) +/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{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) "yhg" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -82376,46 +83262,60 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) +"yht" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/living/cryo_cells) "yhI" = ( /turf/open/floor/almayer{ dir = 4; icon_state = "red" }, /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/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"yhV" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "Bathroom" }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "red" + icon_state = "test_floor4" }, -/area/almayer/hallways/starboard_hallway) -"yit" = ( -/obj/structure/machinery/light{ +/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) +/area/almayer/maint/hull/lower/l_m_s) +"yiu" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/midship_hallway) "yiW" = ( /obj/structure/machinery/cryopod/right{ layer = 3.1; @@ -82447,10 +83347,6 @@ icon_state = "sterile_green_side" }, /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"; @@ -82460,6 +83356,19 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/notunnel) +"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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) "yjG" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -82494,66 +83403,33 @@ icon_state = "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, +"yko" = ( +/obj/vehicle/powerloader, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform{ + dir = 8 + }, /turf/open/floor/almayer{ icon_state = "cargo" }, -/area/almayer/hull/lower_hull/l_m_s) -"ykF" = ( -/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, +/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{ - dir = 4; - icon_state = "orange" + icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/shipboard/panic) "ykI" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/lower) -"ykP" = ( -/obj/structure/filingcabinet{ - density = 0; - pixel_x = -8; - pixel_y = 18 - }, -/obj/structure/filingcabinet{ - density = 0; - pixel_x = 8; - pixel_y = 18 - }, -/obj/item/device/taperecorder, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/main_office) -"ylc" = ( -/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{ - dir = 8; - name = "\improper Containment Airlock"; - closeOtherId = "containment_s" - }, -/obj/structure/machinery/door/poddoor/almayer/biohazard/white{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/medical/containment) "yle" = ( /obj/effect/landmark/start/marine/engineer/delta, /obj/effect/landmark/late_join/delta, @@ -82567,43 +83443,23 @@ icon_state = "test_floor5" }, /area/almayer/engineering/lower/engine_core) -"ylJ" = ( -/obj/structure/sign/safety/maint{ +"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, +/area/almayer/hallways/lower/starboard_aft_hallway) +"ymg" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + layer = 2.5; + pixel_y = 1 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/maint/hull/lower/l_f_p) (1,1,1) = {" aaa @@ -89965,13 +90821,13 @@ dhd oog jNT fag -jVP -feb -feb -feb -feb -feb +qCA feb +hRu +hRu +hRu +hRu +hRu ajZ aaa aaa @@ -90169,12 +91025,12 @@ nPb fZX dBS nSu -wld -mtl -jjm -wZN -kgQ -feb +rXE +xyN +ltO +tBP +tfE +hRu aag aaf ajY @@ -90359,8 +91215,8 @@ aaa aaa aaa aad -pCi -pCi +uDg +uDg hPI pQr rib @@ -90373,13 +91229,13 @@ qVF xdJ kzr jqY -kBh -jNT -jNT -wSK -feb -xEF -xEF +elV +dJJ +dJJ +glP +hRu +xiV +xiV ajZ aaa aaa @@ -90561,9 +91417,9 @@ aaf aaf aaf aaf -pCi -pCi -sBo +uDg +uDg +lHk naB wnw pHp @@ -90576,14 +91432,14 @@ mtl mtl mtl ewI -mtl -xzO -pNk -jIH -mtl -gbO -xEF -xEF +xyN +hdQ +hUU +cXD +xyN +igS +xiV +xiV aaf aaf aaf @@ -90757,19 +91613,19 @@ aaa aaa aaa aad -pCi -pCi -pCi -pCi -pCi -pCi -pCi -pCi -cpf -cHP +uDg +uDg +uDg +uDg +uDg +uDg +uDg +uDg +aPN +lSJ naB pQr -uwg +jeR wvI vPf fvA @@ -90779,21 +91635,21 @@ tul mNK gtU bjk -mtl -mtl -mtl -mtl -mtl -dgq -sGe -xEF -xEF -xEF -xEF -xEF -xEF -xEF -xEF +xyN +xyN +xyN +xyN +xyN +iuf +pnh +xiV +xiV +xiV +xiV +xiV +xiV +xiV +xiV ajZ aaa aaa @@ -90960,16 +91816,16 @@ aaa aaa aaa aad -pCi -mUQ -rPC -wcn -eEf -xhM -wcn -tng -hGD -qUE +uDg +cth +gkr +xkc +oGj +iVD +xkc +mph +nlh +rGr naB naB naB @@ -90982,21 +91838,21 @@ qPD qPD quJ rdA -alF +jyY sql -alF -dTQ -kIV -iYi -gSs -eyd -kIV -kQz -jjX -kIV -kIV -flP -xEF +jyY +rwe +pdp +hZw +xYr +mjs +pdp +ohu +iUh +pdp +pdp +kSn +xiV ajZ bdH bdH @@ -91163,19 +92019,19 @@ bdH aac aaf aag -pCi -rPC -wcn -rPC -vWx -age -aNk -rTV -wcn -tYB +uDg +gkr +xkc +gkr +vAg +gxI +kqC +bBU +xkc +eeA naB pQr -jrC +ggS wvI piK fvA @@ -91191,15 +92047,15 @@ xkd xkd xkd xkd -shw -ecP -nxc -qFl -vUI -mnm -mnm -kIV -xEF +lRt +tsE +iVG +hmA +hmZ +oDh +oDh +pdp +xiV aag aaf ajY @@ -91365,17 +92221,17 @@ bdH bdH aad aag -pCi -pCi -rPC -wcn -vBm -vBm -vBm -vBm -vBm -qmC -vBm +uDg +uDg +gkr +xkc +hvd +hvd +hvd +hvd +hvd +bLF +eyD naB kry pHp @@ -91400,10 +92256,10 @@ xkd xkd xkd xkd -kIV -mnm -xEF -xEF +pdp +oDh +xiV +xiV aag ajZ bdH @@ -91568,17 +92424,17 @@ bdH bdH aad aag -pCi -ext -rPC -mUQ -vBm -rBV -oPk -mqo -vBm -eRL -puv +uDg +pOp +gkr +cth +hvd +ddj +wlg +fuY +hvd +cQG +jXc naB pQr bsp @@ -91603,10 +92459,10 @@ uns vCy eyV xkd -dAb -mnm -kIV -xEF +mkF +oDh +pdp +xiV aag ajZ bdH @@ -91771,17 +92627,17 @@ bdH bdH aad aag -pCi -oCL -wcn -fuB -vBm -ldu -wgi -wgi -ckS -eRL -sDV +uDg +lDT +xkc +xyZ +hvd +vGn +ehl +ehl +uXu +cQG +alp naB naB naB @@ -91806,10 +92662,10 @@ xGh jVa wDs xkd -ukt -mnm -kIV -xEF +oHf +oDh +pdp +xiV aag ajZ bdH @@ -91974,23 +92830,23 @@ bdH bdH aad aag -pCi -wcn -rPC -vBm -vBm -sFC -sFC -sFC -vBm -lOI -pJv -jLM -tak -cMb -rbi -wDp -xys +uDg +xkc +gkr +hvd +hvd +iRp +iRp +iRp +hvd +cyc +vzy +fqQ +kHo +sFu +hnE +tTO +wFs nkX iQB cmv @@ -92010,9 +92866,9 @@ tUx wRN xkd xkd -kIV -mnm -xEF +pdp +oDh +xiV aag ajZ bdH @@ -92080,10 +92936,10 @@ aaa bdH aad aag -nXP -nXP -nXP -nXP +nBJ +nBJ +nBJ +nBJ aag dqw uwv @@ -92105,10 +92961,10 @@ dqw aag aag aag -vRz -vRz -vRz -vRz +wid +wid +wid +wid aag ajZ bdH @@ -92177,23 +93033,23 @@ bdH bdH aad aag -ahE -wcn -rPC -vBm -ykP -xAj -xhE -xhE -vBm -hKq -lwK -hrO -xsg -xsg -grF -xVl -uqy +lrE +xkc +gkr +hvd +iUX +gii +gIO +gIO +hvd +gYx +oyC +bKI +xhU +xhU +jCX +sEz +iNh wdF wdF wdF @@ -92213,9 +93069,9 @@ tUx xJe qLt xkd -kIV -mnm -ils +pdp +oDh +cPj aag etE bdH @@ -92283,9 +93139,9 @@ aaa bdH aad aag -nXP -xFD -ntA +nBJ +kJc +jFt bAs bAs bAs @@ -92309,9 +93165,9 @@ bTT bTT bTT bAs -vIA -xgn -vRz +kOR +jYM +wid aag ajZ bdH @@ -92380,23 +93236,23 @@ bdH bdH aad aag -ahE -rPC -wcn -vBm -ykP -xjG -ssD -gcT -rmv -eRL -eRL -rhl -gcT -gcT -xVl -gcT -lxy +lrE +gkr +xkc +hvd +iUX +gJE +cKJ +hyV +keG +cQG +cQG +ugw +cwC +cwC +sEz +cwC +uun oRk oRk oRk @@ -92416,9 +93272,9 @@ ycm qCo pWr xkd -uqa -mnm -ils +aGa +oDh +cPj aag ajZ bdH @@ -92486,9 +93342,9 @@ aaa bdH aad aag -nXP -xYN -jup +nBJ +rUi +grv bBA bAK bCY @@ -92512,9 +93368,9 @@ acr bPG acN bBA -qXM -gUv -vRz +gTK +fWg +wid aag ajZ bdH @@ -92583,9 +93439,9 @@ bdH bdH aad aag -ahE -nBc -wcn +lrE +vDh +xkc lrq lrq lrq @@ -92593,8 +93449,8 @@ lrq lrq lrq lrq -cxA -uwS +uhA +aaP tpn tpn srT @@ -92619,9 +93475,9 @@ cyZ jVa fJT xkd -ipT -kIV -ils +rfB +pdp +cPj aag eSU bdH @@ -92689,9 +93545,9 @@ aaa bdH aad aag -nXP -ewT -sIT +nBJ +uRR +mFQ bBA hWJ bCY @@ -92715,9 +93571,9 @@ bHP bPG hpk bBA -fTu -umT -vRz +yhZ +wtD +wid aag ajZ bdH @@ -92786,9 +93642,9 @@ bdH bdH aad aag -pCi -mUQ -aou +uDg +cth +qsp lrq kEc chv @@ -92796,8 +93652,8 @@ cAy uhE vKB lrq -szR -cZj +vjB +gIz tpn eVR cak @@ -92822,9 +93678,9 @@ dfk vzz moB xkd -lmk -kIV -xEF +gNZ +pdp +xiV aag ajZ bdH @@ -92892,9 +93748,9 @@ aaa bdH aad aag -nXP -thT -mGL +nBJ +ecS +eQR gol akb bCY @@ -92918,9 +93774,9 @@ bPn bPG ald gol -nqU -pch -vRz +sGK +hLu +wid aag ajZ bdH @@ -92989,9 +93845,9 @@ bdH bdH aad aag -pCi -hKi -rPC +uDg +cUl +gkr lrq heo nqe @@ -92999,8 +93855,8 @@ nqe nqe nqe tLa -eRL -igt +cQG +gfd tpn rqS cak @@ -93025,9 +93881,9 @@ eZH tUx cXi xkd -irr -kIV -xEF +ttB +pdp +xiV aag twB bdH @@ -93095,9 +93951,9 @@ aaa bdH aad aag -nXP -mGL -fEV +nBJ +eQR +xAu bBA bAN bCY @@ -93121,9 +93977,9 @@ bPo bPG acs bBA -lZB -nqU -vRz +xHX +sGK +wid aag ajZ bdH @@ -93192,9 +94048,9 @@ bdH bdH aad aag -ahE -nnF -rPC +lrE +vOM +gkr lrq kui uqo @@ -93202,8 +94058,8 @@ pId qMD uqo lrq -sYi -sYE +nVm +dRA tpn gIU xIq @@ -93216,7 +94072,7 @@ kuJ sLA jSw xkd -cJh +qFu xkd xkd icM @@ -93228,9 +94084,9 @@ nYd thL jVa fgR -hPT -mnm -ils +nEc +oDh +cPj aag ajZ bdH @@ -93298,9 +94154,9 @@ aaa bdH aad aag -nXP -tRV -hJp +nBJ +ldF +eox bBA bAO bCZ @@ -93324,9 +94180,9 @@ bDW bPJ iuz bBA -vhq -orv -vRz +mVh +uMf +wid aag ajZ bdH @@ -93395,9 +94251,9 @@ bdH bdH aad aag -ahE -hUg -wcn +lrE +etN +xkc lrq sEZ nqe @@ -93405,8 +94261,8 @@ nqe nqe nqe mza -eRL -wfB +cQG +qvE tpn tpn tpn @@ -93431,9 +94287,9 @@ liZ rUk jVa fgR -evl -uNF -ils +azg +gKv +cPj aag rEr bdH @@ -93501,9 +94357,9 @@ aaa bdH aad aag -nXP -hJp -mGL +nBJ +ldF +eQR bBA bAP aqu @@ -93527,9 +94383,9 @@ aqu aqu bQz bBA -nqU -cEY -vRz +sGK +vOG +wid aag ajZ bdH @@ -93598,9 +94454,9 @@ bdH bdH aad aag -ahE -rPC -wcn +lrE +gkr +xkc lrq dEX fxJ @@ -93608,13 +94464,13 @@ fxJ fAr qmU lrq -hZU -cWs -fAE -kHa -frX -mHA -kHa +dmr +wLS +aVm +cmM +miy +iUG +cmM snX oIh oIh @@ -93634,9 +94490,9 @@ uaU rUk xaM fgR -fQk -kIV -ils +hIG +pdp +cPj aag ajZ bdH @@ -93704,9 +94560,9 @@ aaa bdH aad aag -nXP -fNg -hJp +nBJ +vCE +ldF bBA bBu amg @@ -93730,9 +94586,9 @@ amg amg rAD bBA -nqU -vhq -vRz +sGK +mVh +wid aag ajZ bdH @@ -93801,9 +94657,9 @@ bdH bdH aad aag -pCi -wcn -wcn +uDg +xkc +xkc lrq iwV iwV @@ -93811,13 +94667,13 @@ iwV iwV lrq lrq -gob -cWs -irF -kHa -rEQ -xmX -eGr +kXt +wLS +eBx +cmM +hAf +cNI +bbi wdF wdF wdF @@ -93825,7 +94681,7 @@ wdF kQu cqM xkd -cJh +qFu xkd xkd pns @@ -93837,9 +94693,9 @@ uxa iZU nhG xkd -mnm -hgH -xEF +oDh +uqg +xiV aag uJk bdH @@ -93907,9 +94763,9 @@ aaa bdH aad aag -nXP -gjv -mGL +nBJ +amu +eQR bBA bBu amg @@ -93933,9 +94789,9 @@ amg amg rAD bBA -rpW -kAs -vRz +ozH +flr +wid aag ajZ bdH @@ -94004,9 +94860,9 @@ bdH bdH aad aag -pCi -rPC -rwS +uDg +gkr +old cQv oVf rmx @@ -94014,13 +94870,13 @@ bvH evR cQv cQv -vtD -rAX -kHa -kHa -lRe -mvR -kHa +rmk +nuZ +cmM +cmM +pdT +otp +cmM tzd tzd sgi @@ -94040,9 +94896,9 @@ tov thL sUs xkd -lmk -kIV -xEF +gNZ +pdp +xiV aag ajZ bdH @@ -94110,9 +94966,9 @@ aaa bdH aad aag -nXP -oZd -mGL +nBJ +kMW +eQR bBA bBv aqu @@ -94136,9 +94992,9 @@ tkq aqu bQG bBA -vht -vhq -vRz +uoO +mVh +wid aag ajZ bdH @@ -94207,9 +95063,9 @@ bdH bdH aad aag -ahE -rPC -nfI +lrE +gkr +wJC cQv cBw kde @@ -94217,13 +95073,13 @@ kde ajj mZQ cQv -vgW -igt -swn -rpF -tQm -ond -swn +dFl +tUK +kTp +sYl +fgt +kCY +kTp gHt oIh eNR @@ -94243,9 +95099,9 @@ tov thL xhx fgR -mnm -kIV -ils +oDh +pdp +cPj aag scz bdH @@ -94313,9 +95169,9 @@ aaa bdH aad aag -nXP -lAP -mGL +nBJ +iWJ +eQR bBA bBx amg @@ -94339,9 +95195,9 @@ bPq amg rAD bBA -nqU -rSK -vRz +sGK +nhV +wid aag ajZ bdH @@ -94410,9 +95266,9 @@ bdH bdH aad aag -ahE -rPC -heV +lrE +gkr +wMF cQv eaf bEv @@ -94420,13 +95276,13 @@ quj vgi rXd cqJ -ldu -igt -swn -dfO -dQv -doj -swn +oJm +tUK +kTp +hUh +nWS +xpw +kTp neC mjt vqc @@ -94446,9 +95302,9 @@ iFc thL tUx fgR -kIV -fQk -ils +pdp +hIG +cPj aag ajZ bdH @@ -94516,9 +95372,9 @@ aaa aac aag aag -nXP -tpg -vmK +nBJ +dKS +ffN bBA bBy amg @@ -94542,9 +95398,9 @@ aoa amg bQE bBA -bVL -nqU -vRz +bME +sGK +wid aag aag ajY @@ -94613,9 +95469,9 @@ bdH bdH aad aag -ahE -wcn -nBc +lrE +xkc +vDh cQv eaf bEv @@ -94623,13 +95479,13 @@ lEe pGT pGT vkM -sjc -xYS -kHa -qPO -wuc -qPO -qPO +ksm +bxE +cmM +oeZ +wLF +oeZ +oeZ ptq oRk eNR @@ -94649,9 +95505,9 @@ thL thL tUx fgR -kIV -mKf -ils +pdp +aCA +cPj aag okD bdH @@ -94718,10 +95574,10 @@ aaa aaa aad aag -nXP -nXP -mGL -mGL +nBJ +nBJ +eQR +bTW bBA bBz aqu @@ -94745,10 +95601,10 @@ bEx aqu bQI bBA -ueh -nqU -vRz -vRz +gsy +sGK +wid +wid aag ajZ aaa @@ -94816,9 +95672,9 @@ bdH bdH aad aag -pCi -wcn -wcn +uDg +xkc +xkc cQv eaf bEv @@ -94826,13 +95682,13 @@ vyH ajj rXd cqJ -ldu -igt -swn -plI -dQv -lNN -qPO +oJm +tUK +kTp +uLE +nWS +cTy +oeZ emp emp emp @@ -94852,9 +95708,9 @@ thL thL tUx xkd -kIV -hFW -xEF +pdp +vhA +xiV aag ajZ bdH @@ -94921,10 +95777,10 @@ aaa aaa aad aag -nXP -tRV -hJp -mmC +nBJ +ldF +ldF +xiP bBA lsV amg @@ -94948,10 +95804,10 @@ bPC amg pyL bBA -jNq -nqU -rSK -vRz +cDb +sGK +nhV +wid aag ajZ bdH @@ -95019,9 +95875,9 @@ bdH bdH aad aag -pCi -oCL -wcn +uDg +lDT +xkc cQv eaf bEv @@ -95029,16 +95885,16 @@ sBg uGN rXd cQv -gax -igt -swn -vsM -dQv -ebv -qPO +mAY +tUK +kTp +hoW +nWS +aIY +oeZ cFC oIh -lUm +sBQ skj tXc cqM @@ -95055,9 +95911,9 @@ thL thL tUx xkd -kIV -mnm -xEF +pdp +oDh +xiV aag ajZ bdH @@ -95123,11 +95979,11 @@ aaf aaf aaf aag -nXP -nXP -hJp -mGL -fmS +nBJ +nBJ +ldF +eQR +uFp bBA bBA tiR @@ -95138,24 +95994,24 @@ bIy alU alU alU -cmI +syg alU -cmJ +noo 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 @@ -95222,9 +96078,9 @@ bdH bdH aad aag -pCi -rPC -aou +uDg +gkr +qsp cQv xLl bEv @@ -95232,13 +96088,13 @@ kde ajj tuk cQv -rzY -igt -swn -skq -dQv -hhW -qPO +kYU +tUK +kTp +krO +nWS +glG +oeZ ehX mTN hZJ @@ -95258,9 +96114,9 @@ tUx vsz oEE xkd -lmk -kIV -xEF +gNZ +pdp +xiV aag ajZ bdH @@ -95323,18 +96179,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 @@ -95347,21 +96203,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 @@ -95424,10 +96280,10 @@ aaa bdH bdH aad -pCi -pCi -wcn -tYB +uDg +uDg +xkc +eeA cQv dzG kde @@ -95435,15 +96291,15 @@ ioV cQv tlk cQv -cxA -suc -qPO -qPO -wuc -qPO -qPO +uhA +tCH +oeZ +oeZ +wLF +oeZ +oeZ mFc -eKa +fbr emp lze wSm @@ -95455,16 +96311,16 @@ bQc pgP uVV iBl -wIC -smZ -smZ -wIC -tMH -wIC -xCj -kIV -xEF -xEF +cHk +rkV +rkV +cHk +vYi +cHk +pRs +pdp +xiV +xiV ajZ bdH bdH @@ -95526,18 +96382,18 @@ 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 wMv nCR @@ -95550,21 +96406,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 @@ -95627,20 +96483,20 @@ aaa bdH bdH aad -pCi -msV -rPC -naf +uDg +hzN +gkr +krG cQv rdM gUg cov cqJ -hNl -tak -uhW -uJs -tsX +may +hoK +mcp +hzG +eyD ngr cDN peO @@ -95655,19 +96511,19 @@ emp emp emp emp -lFJ +vbo emp emp -wIC -puE -crp -dco -dqZ -wIC -lTK -mnm -kIV -xEF +cHk +hlI +ekZ +kvL +oix +cHk +uxb +oDh +pdp +xiV ajZ bdH bdH @@ -95729,14 +96585,14 @@ aaa aaa aad aag -nXP -bwF -hJp -mGL -hJp -oPI -uNL -hJp +nBJ +lJM +ldF +eQR +ldF +lyP +bos +gpO kcp kcp iqp @@ -95747,27 +96603,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 @@ -95830,20 +96686,20 @@ aaa bdH bdH aad -pCi -dSA -rPC +uDg +fHb +gkr vxM vxM vxM vxM vxM vxM -qlS -eRL -eRL -uJs -tsX +tfZ +cQG +cQG +hzG +eyD tdy cDN oFY @@ -95861,16 +96717,16 @@ qUz ksg oIh iTl -wIC -cBZ -hMc -vAG -jIo -wIC -wIC -mnm -kIV -xEF +cHk +frt +vUI +tgJ +wVh +cHk +cHk +oDh +pdp +xiV ajZ bdH bdH @@ -95932,14 +96788,14 @@ aaa aaa aad aag -nXP -mGL -mGL -hJp -mGL -dqd -uNL -hJp +nBJ +eQR +eQR +ldF +eQR +sxS +bos +gpO kcp bBD bTS @@ -95947,30 +96803,30 @@ bTS lxo qcy kcp -kmk -kmk -mIJ -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 @@ -96033,20 +96889,20 @@ aaa bdH bdH aad -pCi -wcn -rPC +uDg +xkc +gkr vxM rfY kGu iqR fyp wJh -ldu -eRL -eRL -uJs -diP +oJm +cQG +cQG +hzG +nzT tff cDN oFY @@ -96057,23 +96913,23 @@ jcf bju cMW qEy -iis +vKr rQc oDy oDy wsq vxK gwj -rCU -jPS -jPS -sJm -dqZ -rDY -wIC -kIV -lre -xEF +oiz +csy +csy +bWQ +deH +szG +cHk +pdp +kIf +xiV ajZ bdH bdH @@ -96135,14 +96991,14 @@ aaa aaa aad aag -nXP -hJp -hJp -mGL -pzZ -ijp -uNL -mGL +nBJ +ldF +ldF +wcJ +jCr +nQn +bos +uHT kcp bTR iEg @@ -96150,30 +97006,30 @@ oQM aqI aqI kcp -jaK -jxP -xNL -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 @@ -96236,26 +97092,26 @@ aaa bdH aac aag -pCi -mNR -wcn +uDg +kac +xkc vxM tQi wee wee fRS wJh -yeu -sjc -rVm -mMZ -aDM +iFK +ksm +haY +kaQ +vNT oSC uFq wsl wSu xIW -wBd +nah emp gbw oRk @@ -96267,16 +97123,16 @@ mBx utZ pyj jPP -wIC -xpo -xqs -rWF -uSB -lzY -wIC -kIV -rQU -xEF +cHk +wxF +vJc +kUg +ifz +fyI +cHk +pdp +ome +xiV aag ajY bdH @@ -96338,14 +97194,14 @@ aaa aaa aad aag -nXP -thT -hJp -uNL -uNL -uNL -uNL -mGL +nBJ +ecS +ldF +bos +bos +bos +bos +uHT kcp lxW hPh @@ -96353,30 +97209,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 @@ -96439,20 +97295,20 @@ bdH bdH aad aag -pCi -tCb -aou +uDg +fco +qsp vxM jvP rDQ rDQ rDQ ctT -mLJ -bua -ybU -vBm -tsX +wXz +aNW +tvJ +eyD +eyD tsX tsX epu @@ -96473,13 +97329,13 @@ lnh wIC rWn rWn -wIC -wIC -wHM -wIC -inC -mKf -xEF +cHk +cHk +gxt +cHk +dJy +aCA +xiV aag ajZ bdH @@ -96541,14 +97397,14 @@ aaa aaa aad aag -nXP -mGL -hJp -uNL -qDv -aLk -uNL -xCR +nBJ +eQR +ldF +bos +vkO +ibf +bos +rIw kcp wTN kZN @@ -96556,30 +97412,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 @@ -96642,19 +97498,19 @@ bdH bdH aad aag -pCi -oCL -wcn +uDg +lDT +xkc vxM sbP sbP sbP sbP wJh -ekF -uif -vBm -vBm +oWK +jwr +eyD +eyD tHr mqg udR @@ -96677,12 +97533,12 @@ dgx fKi vxG wIC -xgI -dBQ -wIC -bIi -fQk -xEF +whQ +bHu +cHk +oLf +hIG +xiV aag ajZ bdH @@ -96744,14 +97600,14 @@ aaa aaa aad aag -nXP -tRV -mGL -uNL -kmM -eqk -uNL -hJp +nBJ +ldF +eQR +bos +lBl +nEO +bos +gpO kcp oMi bAZ @@ -96759,30 +97615,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 @@ -96845,18 +97701,18 @@ bdH bdH aad aag -pCi -wcn -rPC +uDg +xkc +gkr vxM pas ncf kjk qxr wJh -ekF -ugT -qqC +oWK +rPF +pfd ceZ jnD hUW @@ -96880,12 +97736,12 @@ jPS jPS xrt wIC -qqV -nNg -wIC -mnm -sIk -xEF +aDt +jTU +cHk +oDh +xas +xiV aag ajZ bdH @@ -96947,14 +97803,14 @@ aaa aaa aad aag -nXP -hJp -mGL -hKe -hJp -hJp -uNL -hJp +nBJ +ldF +eQR +rqv +gpO +gpO +bos +gpO kcp kcp kcp @@ -96962,30 +97818,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 @@ -97048,18 +97904,18 @@ bdH bdH aad aag -pCi -wcn -rPC +uDg +xkc +gkr vxM vxM vxM vxM vxM gaJ -hmG -xys -vBm +vMJ +qFX +cAR vGA hUW dHd @@ -97083,12 +97939,12 @@ qFi vAG hsj wIC -wIC -wIC -wIC -mnm -hPT -xEF +cHk +cHk +cHk +oDh +nEc +xiV aag ajZ bdH @@ -97150,45 +98006,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 @@ -97251,18 +98107,18 @@ aaf aaf aag aag -pCi -hKi -wcn -kEU -wcn -cXZ -vBm -tJM -viH -lCp -ttE -vBm +uDg +cUl +xkc +ode +xkc +gNg +cAR +dRj +yhV +jvc +jEV +cAR iuE uwN vka @@ -97286,12 +98142,12 @@ jhI jfY bra wIC -kIV -hUc -pre -mnm -kIV -xEF +eQm +rXQ +vky +oDh +pdp +xiV aag aag aaf @@ -97349,53 +98205,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 @@ -97455,17 +98311,17 @@ adG adG adG adG -gqq -iCz -kEU -rPC -rPC -vBm -vBm -vBm -vfw -occ -vBm +rvI +cYo +ode +gkr +gkr +cAR +cAR +cAR +pKU +vOu +cAR udK mwA lnt @@ -97489,11 +98345,11 @@ jES vBJ qTQ wIC -mnm -kIV -pre -kIV -mrB +oDh +pdp +vky +pdp +paJ tuA tuA tuA @@ -97552,53 +98408,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 @@ -97661,14 +98517,14 @@ akC akC akC akC -rDI -rPC -vBm -mvE -tak -lCp -iLo -vBm +uvp +gkr +cAR +pbm +qjK +jvc +dGT +cAR bmz wSR mMV @@ -97692,8 +98548,8 @@ vAG opF pDW wIC -mnm -wRa +oDh +lhj kCi kCi kCi @@ -97755,16 +98611,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 @@ -97774,34 +98630,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 @@ -97864,14 +98720,14 @@ sFf bbV bzz akC -cRc -rPC -vBm -qkn -eRL -lwK -vlN -vBm +pzc +gkr +cAR +pQI +gym +gSz +cNJ +cAR pZS pEB jUY @@ -97895,8 +98751,8 @@ vzj wIC wIC wIC -mnm -dGc +oDh +nYi kCi sDD kOv @@ -97958,16 +98814,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 @@ -97995,16 +98851,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 @@ -98067,14 +98923,14 @@ nIt adu aHZ akC -oCL -rPC -vBm -rJN -nJz -wgi -rEO -vBm +lDT +gkr +cAR +jgR +iAg +vaS +bsF +cAR vkR wsD jUY @@ -98098,8 +98954,8 @@ aTg rFg kkv wIC -kIV -kIV +pdp +pdp kCi uAj qfa @@ -98161,16 +99017,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 @@ -98198,16 +99054,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 @@ -98270,14 +99126,14 @@ nkx bbZ btv akC -dDC -rPC -vBm -vBm -knO -wgi -ugT -vBm +lCm +gkr +cAR +cAR +eLX +vaS +nCD +cAR kfE wsD jUY @@ -98301,8 +99157,8 @@ aTg wIC wIC wIC -kIV -bbR +pdp +iEa kCi eqI ssZ @@ -98364,279 +99220,279 @@ aaa aaa aaa aaa -bhh -aPZ -bhh -bjM -bmx -eBC -aZB -qld -kyZ -bvT -btO -aYt -aYt -aYt -aYt -bdK -aYt -bhU -bjR -aYt -aYt -wqh -bHB -xyw -btO -bcc -aYt -aYt -aYt -bAi -aYt -aYt -aYt -aYt -aYt -aYt -btO -cdc -jdk -mLu -erS -pZo -cdx -cin -cjm -bRA -cjm -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 -"} -(79,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 -aad -aeE -afb -ayq -cfE -cfE -pvP -adu -aHZ -akC -eKM -ake -kif -vBm -rRr -dFU -fnC -vBm -xDn -pEB -jUY -awz -wkH -hmS -mWV -jZu -sco -fqO -lIp -hWO -fqc -awz -gGr -jHh -sCQ -wIC -wtY -aTg -jIT -wIC -mKf -kIV -kIV -kCi -nwW -btD -btD -rVN -rVN -vly -ybZ -pun -ajZ -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 -bhh -aPZ -bhh -bjM -bmx -bmx -bmx -brP -qTZ -bvT -btO -aYu -aYu -aYu -aYu -aYu -aYu -aYu -aYu -aYu -aYu -bwm -bHB -xyw -btO -bSR -aYu -aYu -aYu -aYu -aYu -aYu -aYu -aYu -aYu -aYu -btO -cdc -nEs -cev -cdx -cdx -cdx -cin -cjm -bRA -cjm -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +okd +lql +okd +nDb +jhc +ccL +rDf +xZM +mnc +eml +btO +aYt +aYt +aYt +aYt +bdK +aYt +bhU +bjR +aYt +aYt +wqh +bHB +xyw +btO +bcc +aYt +aYt +aYt +bAi +aYt +aYt +aYt +aYt +aYt +aYt +btO +tpG +wdQ +ybP +dhQ +dcx +mLg +wAK +efk +bTz +efk +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 +"} +(79,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 +aad +aeE +afb +ayq +cfE +cfE +pvP +adu +aHZ +akC +jdn +lgk +hMM +cAR +jlE +cXV +kqd +cAR +xDn +pEB +jUY +awz +wkH +hmS +mWV +jZu +sco +fqO +lIp +hWO +fqc +awz +gGr +jHh +sCQ +wIC +wtY +aTg +jIT +wIC +aCA +pdp +pdp +kCi +nwW +btD +btD +rVN +rVN +vly +ybZ +pun +ajZ +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 +okd +lql +okd +nDb +jhc +jhc +jhc +vOV +eAm +eml +btO +aYu +aYu +aYu +aYu +aYu +aYu +aYu +aYu +aYu +aYu +bwm +bHB +xyw +btO +bSR +aYu +aYu +aYu +aYu +aYu +aYu +aYu +aYu +aYu +aYu +btO +tpG +hbA +uky +mLg +mLg +mLg +wAK +efk +bTz +efk +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 @@ -98676,14 +99532,14 @@ adu adu aHZ akC -lUz -tRX -lUz -vBm -hqU -gcT -oPp -vBm +pek +rir +pek +cAR +gdG +kxP +mea +cAR nNv pEB jUY @@ -98706,9 +99562,9 @@ yeR aTg nNg wIC -pUJ -wCZ -pUJ +pjz +uTs +pjz kCi nRR btD @@ -98770,16 +99626,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 @@ -98807,16 +99663,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 @@ -98879,14 +99735,14 @@ nIt adu hxG akC -bVT -wcn -avl -vBm -vBm -vBm -vBm -vBm +ibP +loE +cmr +cAR +cAR +cAR +cAR +cAR xSz pEB jUY @@ -98909,9 +99765,9 @@ wIC wIC wIC wIC -gpe -mnm -dXO +hrI +ioM +xCy kCi nNt vqC @@ -98973,16 +99829,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 @@ -99010,16 +99866,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 @@ -99082,10 +99938,10 @@ wmg adu cqQ afT -agU -dIl -xpd -mlp +txy +rbp +cri +euL hiM hiM qRj @@ -99111,10 +99967,10 @@ xuZ pcj hXm fZq -dVm -qkb -vnY -vnY +iFA +sLx +twQ +twQ bpd bqT vZv @@ -99176,16 +100032,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 @@ -99214,15 +100070,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 @@ -99285,10 +100141,10 @@ pvP adu frF akC -fRN -avl -lFb -ail +oUt +cmr +iPq +aMf vka vka mPj @@ -99314,10 +100170,10 @@ inh ewr lPC mgy -wWT -xuB -vcK -czJ +qoN +tVx +feG +pPy kCi nRR btM @@ -99379,16 +100235,16 @@ aaa aaa aaa aaa -nXP -ndx -uNL -nDd -soS -sgy -nsu -iyQ -rod -psy +sGw +nmp +eWs +usq +rQw +pOH +sbt +smU +nZR +lpl xyw bHB gjm @@ -99417,15 +100273,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 @@ -99489,10 +100345,10 @@ tyK iKI akC akC -ail -lGG -age -age +aMf +hSv +xoB +xoB kzy wIQ jHh @@ -99516,11 +100372,11 @@ vka jHh lnt ckP -qFl -qFl -lIV -gsH -qFl +xTx +xTx +cyv +eKZ +xTx kCi cfk uws @@ -99582,16 +100438,16 @@ aaa aaa aaa aaa -nXP -hJp -uNL -gka -bwQ -oNf -uNL -aNw -kXJ -kVX +sGw +klT +eWs +njO +riC +eqd +goY +fqJ +nOX +xcV xyw bHB wqh @@ -99620,15 +100476,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 @@ -99691,12 +100547,12 @@ akC akC akC akC -fcF -avl -lFb -fvu -age -age +ehM +cmr +iPq +oQJ +xoB +xoB vSN jHh lnt @@ -99718,12 +100574,12 @@ sTo wIQ jHh jUY -qFl -qFl -gpe -xuB -vcK -mBA +xTx +xTx +hrI +tVx +feG +bxY kCi kCi kCi @@ -99785,16 +100641,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 @@ -99823,15 +100679,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 @@ -99891,15 +100747,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 @@ -99921,15 +100777,15 @@ awz oWg uwN jUY -qFl -rnM -gpe -sDy -ukU -bfP -fvv -vcK -wGI +xTx +lym +hrI +lIQ +noy +rcG +lwY +feG +kfB tuA tuA tuA @@ -99988,16 +100844,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 @@ -100026,15 +100882,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 @@ -100093,16 +100949,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 @@ -100124,16 +100980,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 @@ -100191,16 +101047,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 @@ -100229,15 +101085,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 @@ -100296,9 +101152,9 @@ aag aag aag aag -pCi -dRV -bZg +cZe +cCL +vDz kcH kcH kcH @@ -100334,9 +101190,9 @@ aES aES aES aES -sDy -cNe -xEF +lIQ +xZH +nLp aag aag aag @@ -100394,16 +101250,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 @@ -100432,15 +101288,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 @@ -100496,12 +101352,12 @@ aaa aad aag aag -pCi -pCi -pCi -pCi -lFb -avl +cZe +cZe +cZe +cZe +iPq +cmr kcH kcH kcH @@ -100537,12 +101393,12 @@ tKr uNg cLN aES -gpe -xuB -xEF -xEF -xEF -xEF +hrI +tVx +nLp +nLp +nLp +nLp aag aag ajZ @@ -100597,16 +101453,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 @@ -100635,15 +101491,15 @@ bGI bHB xyw bcm -fAt -kCT -kCT -kCT -kCT -iRS -mzo -oFG -vRz +gOk +tTC +tTC +tTC +tTC +bjg +hOV +siT +kyP aaa aaa aaa @@ -100699,12 +101555,12 @@ aaa aad aag aag -pCi -fqu -kTM -puK -lFb -avl +cZe +ivu +gSy +ltw +iPq +cmr kcH rlf soq @@ -100740,12 +101596,12 @@ iTD vCO vCO jxB -gpe -xuB -gpe -gpe -gpe -xEF +hrI +tVx +hrI +hrI +hrI +nLp aag aag ajZ @@ -100800,16 +101656,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 @@ -100837,16 +101693,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 @@ -100902,12 +101758,12 @@ aaa aad aag aag -pCi -huX -unJ -iJf -mBk -nUy +cZe +nHu +sit +snx +oVY +cGA kcH rBa nPs @@ -100943,12 +101799,12 @@ vCO vCO vCO jxB -xDj -boc -eXS -bGr -hnV -xEF +gUu +dWc +lVW +kcs +rDH +nLp aag aag ajZ @@ -101003,16 +101859,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 @@ -101040,16 +101896,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 @@ -101105,18 +101961,18 @@ aaa aad aag aag -pCi -nMc -tGf -avl -avl -qtS +cZe +lSX +nRE +cmr +cmr +sWw kcH rIW oGx wvU yiX -tWm +nrb hyQ aic aov @@ -101146,12 +102002,12 @@ wmT jhW mWD jxB -gvW -sWs -imJ -xuB -gpe -xEF +xBK +moc +pYQ +tVx +hrI +nLp aag aag ajZ @@ -101206,16 +102062,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 @@ -101243,16 +102099,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 @@ -101306,12 +102162,12 @@ aaa aaa aaa aad -aai -aai -pCi -pmI -avl -avl +cZe +cZe +cZe +vfS +cmr +cmr agj agj agj @@ -101351,12 +102207,12 @@ aES aES aES aES -vbP -uEv -gpe -xEF -xEF -xEF +nVn +cZO +hrI +nLp +nLp +nLp ajZ aaa aaa @@ -101409,16 +102265,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 @@ -101446,16 +102302,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 @@ -101509,11 +102365,11 @@ aaa aaa aaa aad -ahE -qKt -dKa -hdb -avl +tvt +fRg +peM +jUV +cmr agj agj jbN @@ -101555,11 +102411,11 @@ bhJ bHG aES aES -mtE -gpe -cEg -hgm -ils +fMU +hrI +dPd +rLH +rwZ ajZ aaa aaa @@ -101611,17 +102467,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 @@ -101649,17 +102505,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 @@ -101712,11 +102568,11 @@ aaa aaa aaa aad -ahE -ooo -uaX -kfR -avl +tvt +jhR +fix +pfL +cmr agj kyR agc @@ -101758,11 +102614,11 @@ bpe brS rOs aES -kwz -gpe -gpe -gAd -ils +dWA +hrI +hrI +dPO +rwZ ajZ aaa aaa @@ -101814,17 +102670,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 @@ -101853,16 +102709,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 @@ -101915,11 +102771,11 @@ aaa aaa aaa aad -ahE -aiV -wBY -hJJ -qCi +tvt +oyX +vBC +rhm +she agj ogK qgr @@ -101961,11 +102817,11 @@ aES aES aES aES -gxk -hiQ -wVP -sed -ils +tPc +jwq +vwU +uew +rwZ ajZ aaa aaa @@ -102017,17 +102873,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 @@ -102056,16 +102912,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 @@ -102118,11 +102974,11 @@ aaa aaa aaa aad -pCi -kwS -avl -avl -mRp +cZe +kwg +cmr +cmr +jkq agj nCx tYM @@ -102164,11 +103020,11 @@ bhJ bHG nis aES -nSU -xuB -lrb -hnV -xEF +xGF +tVx +jne +rDH +nLp ajZ aaa aaa @@ -102220,21 +103076,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 @@ -102259,16 +103115,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 @@ -102321,11 +103177,11 @@ bdH aaa aaa aad -ahE -avr -avl -hCo -lIh +tvt +gJf +cmr +hYE +vAz agj nXO hvH @@ -102367,11 +103223,11 @@ bpe brS cpj aES -fxO -xuB -cKt -mnm -ils +hro +tVx +tNB +ioM +rwZ ajZ aaa aaa @@ -102423,22 +103279,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 @@ -102462,16 +103318,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 @@ -102524,11 +103380,11 @@ bdH aaa aaa aad -ahE -aOg -avl -hMI -lFb +tvt +hsu +cmr +pFq +iPq agj dyj fnv @@ -102570,11 +103426,11 @@ aES aES aES aES -gKJ -uEv -ofZ -mnm -ils +uhh +cZO +ppG +ioM +rwZ ajZ aaa aaa @@ -102626,22 +103482,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 @@ -102665,16 +103521,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 @@ -102727,11 +103583,11 @@ bdH aaa aaa aad -ahE -bEo -avl -iDT -tDx +tvt +hJD +cmr +fFQ +pMH agj mXj mXj @@ -102773,11 +103629,11 @@ bhJ bHG brS aES -rlz -xuB -iVo -mnm -ils +jrI +tVx +raO +ioM +rwZ ajZ aaa aaa @@ -102829,17 +103685,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 @@ -102868,16 +103724,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 @@ -102930,11 +103786,11 @@ aaa aaa aaa aad -pCi -bVF -dTt -jgM -lFb +cZe +bLc +fOK +pWd +iPq agj mXj pjR @@ -102976,11 +103832,11 @@ tJi ivf bpe aES -lGu -xuB -yiC -sXs -xEF +pok +tVx +kzc +gen +nLp ajZ aaa aaa @@ -103032,17 +103888,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 @@ -103071,16 +103927,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 @@ -103133,11 +103989,11 @@ aaa bdH aaa aad -ahE -fHO -avl -jpJ -lzH +tvt +nCM +cmr +wKb +pri agj qlI cdB @@ -103164,7 +104020,7 @@ wlE gvq wVW lrW -qDN +mqh vHW wVW ccg @@ -103179,11 +104035,11 @@ aES aES aES aES -xpt -xuB -xHW -qJF -ils +gBd +tVx +fjz +hPu +rwZ ajZ aaa aaa @@ -103235,22 +104091,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 @@ -103278,12 +104134,12 @@ bcm bcm bcm bcm -mzo -sYC -mzo -gJd -eXo -vRz +hOV +pIC +hOV +qpV +nGk +kyP aag aag aaf @@ -103336,11 +104192,11 @@ bdH bdH aaa aad -ahE -cjh -avl -llM -lGL +tvt +mPw +cmr +wGa +bAy agj eBE hvH @@ -103382,11 +104238,11 @@ bhJ bHG gCP aES -izx -mQV -hRi -gpe -ils +imt +noE +dcT +hrI +rwZ ajZ aaa aaa @@ -103438,17 +104294,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 @@ -103481,12 +104337,12 @@ lRX rux sEt bcm -wbx -vhq -vhq -oFG -vhq -vRz +qyG +bUQ +bUQ +siT +bUQ +kyP aag aag aag @@ -103539,11 +104395,11 @@ bdH bdH bdH aad -ahE -cJB -avl -avl -mrc +tvt +qwY +cmr +cmr +mVA agj kSH hvH @@ -103585,11 +104441,11 @@ mhm brS bpe aES -mnm -uEv -nLK -nLK -ils +ioM +cZO +pfD +pfD +rwZ ajZ aaa aaa @@ -103641,17 +104497,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 @@ -103684,12 +104540,12 @@ myo dtH eyR bcm -wgo -nqU -vhq -dQH -xpf -vRz +rQs +xFt +bUQ +uKH +gsp +kyP aag aag aag @@ -103742,11 +104598,11 @@ bdH bdH bdH aad -pCi -pCi -pCi -jTi -nRq +cZe +cZe +cZe +tiX +vcI agj ikQ hvH @@ -103788,11 +104644,11 @@ aES aES aES aES -dYh -uEv -xEF -xEF -xEF +ied +cZO +nLp +nLp +nLp ajZ aaa aaa @@ -103844,22 +104700,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 @@ -103887,12 +104743,12 @@ mhd aYt tuN fPn -nqU -nqU -vhq -dQH -hYc -vRz +xFt +xFt +bUQ +uKH +eLC +kyP aag aag aag @@ -103947,9 +104803,9 @@ aaa aad aag aag -pCi -avl -myn +cZe +cmr +iNk agj muV hvH @@ -103991,9 +104847,9 @@ bhJ bHG cWy aES -gpe -xuB -xEF +hrI +tVx +nLp aag aag ajZ @@ -104047,22 +104903,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 @@ -104090,12 +104946,12 @@ omP aYt bOC bcm -vhq -nqU -vhq -dQH -jhA -vRz +bUQ +xFt +bUQ +uKH +rVc +kyP aag aag aag @@ -104150,9 +105006,9 @@ aaa aad aag aag -pCi -cnX -lIh +cZe +huD +vAz agj mXj fnv @@ -104160,7 +105016,7 @@ hvH hvH iNY hvH -oGI +hmV mXj agj aic @@ -104194,9 +105050,9 @@ eBd brS cpj aES -fgx -dEV -xEF +luE +wgO +nLp aag aag ajZ @@ -104250,21 +105106,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 @@ -104293,12 +105149,12 @@ ivg llO kSv bcm -mzo -puR -aKI -dQH -nqU -vRz +emC +dZZ +xmn +uKH +xFt +kyP aag aag aag @@ -104353,9 +105209,9 @@ aaa aad aag aag -pCi -anI -lIh +cZe +pcf +vAz agj agj agj @@ -104374,11 +105230,11 @@ wVW wVW wVW aCf -ayt +kcx aCf wVW aCf -hzL +wpt aCf wVW wVW @@ -104397,9 +105253,9 @@ aES aES aES aES -gaO -vnV -xEF +hXD +tYV +nLp aag aag ajZ @@ -104453,10 +105309,10 @@ aad aag aag aag -nXP -mGL -iBE -uNL +sGw +dvD +qig +eWs eXq adR eXq @@ -104497,11 +105353,11 @@ wXT cdA bcm bcm -mzo -mzo -wWf -nqU -vRz +emC +emC +mTL +xFt +kyP aag aag aag @@ -104556,9 +105412,9 @@ aaa aad aag aag -pCi -ifR -jMt +cZe +uTE +fZy gpY uBi wYA @@ -104600,9 +105456,9 @@ baw oaK nUn pgD -xuB -gpe -xEF +tVx +hrI +nLp aag aag ajZ @@ -104656,10 +105512,10 @@ aad aag aag aag -nXP -mGL -mGL -uNL +sGw +dvD +dvD +eWs abG aeh afy @@ -104701,10 +105557,10 @@ aYt aYt lrX bcm -kGt -oFG -pch -vRz +jGQ +siT +fFU +kyP aag aag aag @@ -104759,9 +105615,9 @@ bdH aad aag aag -pCi -avl -lIh +cZe +cmr +vAz gpY uac vFw @@ -104803,9 +105659,9 @@ aZz wUP lrF pgD -uEv -gpe -xEF +cZO +hrI +nLp aag aag ajZ @@ -104859,10 +105715,10 @@ aad aag aag aag -nXP -rbv -hJp -uNL +sGw +dvD +klT +eWs abH aer agf @@ -104904,10 +105760,10 @@ btO btO uII fPn -cQN -oFG -eXo -vRz +htq +siT +nGk +kyP aag aag aag @@ -104962,9 +105818,9 @@ abs abs abs abs -pCi -ail -gwY +cZe +aMf +wby gpY mto acW @@ -105006,9 +105862,9 @@ baw sgU baw pgD -lIV -gsH -xEF +cyv +eKZ +nLp tQV tQV tQV @@ -105062,10 +105918,10 @@ aag aag aag aag -nXP -mGL -pwK -pJW +sGw +dvD +sZc +dGP acq aeJ azl @@ -105107,10 +105963,10 @@ aYt puI iWx bcm -uSq -dQH -vhq -vRz +ymg +uKH +bUQ +kyP aag aag aag @@ -105265,10 +106121,10 @@ aag aag aag aag -nXP -mGL -fJX -uNL +sGw +dvD +iQJ +eWs acu aeh afF @@ -105310,10 +106166,10 @@ cdA bcm bcm bcm -mzo -mxL -kAs -vRz +emC +wuh +fgU +kyP aag aag aag @@ -105390,13 +106246,13 @@ awX wVW wVW wVW -aAl +lMF jnX -dum +rdz wVW wVW wVW -jOc +cbF aGZ awF cST @@ -105468,10 +106324,10 @@ aag aag aag aag -nXP -tpg -vJM -uNL +sGw +nHX +cEA +eWs acM aer agf @@ -105511,12 +106367,12 @@ apE icp fER bcm -mzo -xSb -vhq -dQH -mjR -vRz +emC +hVL +bUQ +uKH +hSb +kyP aag aag aag @@ -105588,14 +106444,14 @@ aiX wbO avU avU -awY -awY +mKN +wEw kOB awZ aiX -jnw -aBq -pRL +wLC +mGb +uOh awF aEM aGV @@ -105671,10 +106527,10 @@ aag aag aag aag -nXP -hJp -dpy -uNL +sGw +xzB +hRA +eWs acZ aeN azl @@ -105714,12 +106570,12 @@ uiT aYt jyR bcm -ioj -nqU -vhq -dQH -fIH -vRz +fUZ +xFt +bUQ +uKH +eyM +kyP aag aag aag @@ -105796,9 +106652,9 @@ pXx jrm evg aiX -asj -aAW -aCl +iiU +eAx +cmS awF aFg aGY @@ -105874,10 +106730,10 @@ aag aag aag aag -nXP -hJp -fkW -uNL +sGw +xzB +ghA +eWs vhw khD azw @@ -105917,12 +106773,12 @@ apL aYt iKb bcm -ygy -nqU -vhq -oFG -qUj -vRz +umk +xFt +bUQ +siT +qBl +kyP aag aag aag @@ -105999,9 +106855,9 @@ wWC auZ aiX aiX -asl -amO -aGO +qmK +oIp +pTS awF hRk aGY @@ -106077,10 +106933,10 @@ aag aag aag aag -nXP -fpd -nVS -uNL +sGw +nkj +rjF +eWs eXq eXq eXq @@ -106120,12 +106976,12 @@ uiT aYt xNj bcm -mjR -nqU -vhq -dQH -gWR -vRz +hSb +xFt +bUQ +uKH +pTX +kyP aag aag aag @@ -106202,11 +107058,11 @@ pQV apq ana aiX -asp -amO -avj +gwh +oIp +qUK awF -xTL +gyh lmA rvA aqm @@ -106280,10 +107136,10 @@ aag aag aag aag -nXP -hJp -dnX -uNL +sGw +xzB +oes +eWs aRu aRu aRu @@ -106323,12 +107179,12 @@ fpW llO vml bcm -mzo -jhA -jhA -dQH -wlL -vRz +emC +rVc +rVc +uKH +nBF +kyP aag aag aag @@ -106383,7 +107239,7 @@ add fsU aHU aTm -awW +xxB aTm jgF fsU @@ -106405,9 +107261,9 @@ xQg wWC szO aiX -atU -amO -qLj +jkT +oIp +fNX awF awF aEW @@ -106429,7 +107285,7 @@ aJU gBW ouQ iun -baw +sfA vPm qys gBW @@ -106483,10 +107339,10 @@ aag aag aag aag -nXP -mGL -dnX -uNL +sGw +dvD +oes +eWs aRu aRu aRu @@ -106522,16 +107378,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 @@ -106586,7 +107442,7 @@ awW auK aIr aTm -bvd +cpP aTm juX scu @@ -106608,10 +107464,10 @@ yjM qbO aqw hnI -bYe -amO -wZM -aPm +dME +oIp +oGI +waP awF nvG vGI @@ -106632,7 +107488,7 @@ baw lRE tuf vbB -rBH +aqB vbB mlz sOy @@ -106686,10 +107542,10 @@ aag aag aag aag -nXP -mGL -fJX -uNL +sGw +dvD +iQJ +eWs aRu aRu aRu @@ -106725,16 +107581,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 @@ -106789,7 +107645,7 @@ awW avc aIv aTm -kJL +cpP cbM jzZ sLo @@ -106811,10 +107667,10 @@ aqy nBE pOD bZa -ahM -aEf -wZM -ejp +voj +sUS +oGI +qUu awF aHn szU @@ -106835,7 +107691,7 @@ baw hJk yac vbB -kUQ +aqB vbB fDS iLd @@ -106889,10 +107745,10 @@ aag aag aag aag -nXP -tRV -dnX -uNL +sGw +xzB +oes +eWs aRu aRu aRu @@ -106928,16 +107784,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 @@ -106992,7 +107848,7 @@ add fsU aHU aTm -awW +fnk aTm jgF fsU @@ -107014,15 +107870,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 @@ -107038,7 +107894,7 @@ aJU gBW ouQ vbB -baw +aqB tBq qys gBW @@ -107092,10 +107948,10 @@ aag aag aag aag -nXP -nun -vJM -uNL +sGw +fzx +cEA +eWs aRu aRu aRu @@ -107131,16 +107987,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 @@ -107217,15 +108073,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 @@ -107295,10 +108151,10 @@ aag aag aag aag -nXP -hJp -qNG -uNL +sGw +xzB +rsP +eWs aRu aRu aRu @@ -107334,16 +108190,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 @@ -107420,15 +108276,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 @@ -107492,16 +108348,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 @@ -107543,16 +108399,16 @@ lFp lFp lFp lFp -vwN -oFG -nqU -vRz -vRz -vRz -vRz -vRz -vRz -vRz +ljm +siT +xFt +kyP +kyP +kyP +kyP +kyP +kyP +kyP ajZ aaY bdH @@ -107623,15 +108479,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 @@ -107695,16 +108551,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 @@ -107746,16 +108602,16 @@ kjD gHl qoL lFp -mjR -oFG -nqU -vhq -vhq -rcH -vhq -wqE -kwq -vRz +hSb +siT +xFt +bUQ +bUQ +gQQ +bUQ +cOt +uSU +kyP ajZ aaY bdH @@ -107826,22 +108682,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 @@ -107898,16 +108754,16 @@ aaa bdH aaY aad -nXP -hJp -hJp -mGL -mGL -pwK -cmk -xJi -cIi -uNL +sGw +xzB +xzB +dvD +dvD +sZc +abj +mUE +coo +eWs aRu aRu aRu @@ -107949,16 +108805,16 @@ aId aId poA lFp -mjR -bVR -oeo -oeo -gdd -oeo -oeo -bgc -qUj -vRz +hSb +uGU +kGi +kGi +khI +kGi +kGi +kow +qBl +kyP ajZ aaY bdH @@ -108029,22 +108885,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 @@ -108101,15 +108957,15 @@ aaa bdH aaa aad -nXP -xYN -xYN -uNL -bdi -kKG -hJp -pda -lpS +sGw +dvD +dvD +eWs +jri +iOX +kIl +jmz +hsK wfE wfE wfE @@ -108118,9 +108974,9 @@ wfE wfE wfE wfE -bsk -sxu -cBI +yap +bqg +eIO bkA eFG bej @@ -108128,7 +108984,7 @@ arX vSG iag nvM -bek +qOZ qjN gGJ ham @@ -108142,9 +108998,9 @@ bnS fdZ tzx gfW -bLT -cbQ -ccq +rZt +qyP +tuC lFp lGg aId @@ -108159,9 +109015,9 @@ nmY nmY nmY nmY -clO -gUv -vRz +siT +bUQ +kyP ajZ aaa bdH @@ -108232,22 +109088,22 @@ 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 @@ -108304,9 +109160,9 @@ aaa bdH aaa aad -nXP -aMr -aMr +sGw +dvD +dvD wfE wfE rXv @@ -108321,17 +109177,17 @@ bqm bsD btr wfE -owH -stY -owH +kLE +lIu +kLE bkA bcC bej -uyJ +tzO fVG qpQ nvM -bek +qOZ qjN sld ham @@ -108339,15 +109195,15 @@ ham qjN oDY omo -fvJ +eTC fdZ ixj fdZ -bET +uey gfW -bGT -bHH -bGT +kSA +tpB +kSA lFp xDF eRS @@ -108362,9 +109218,9 @@ xHS tEd vjW nmY -caE -pdk -vRz +siT +bUQ +kyP ajZ aaa bdH @@ -108410,12 +109266,12 @@ adq aei aka aWn -aar -aar -aar -aar -aar -aar +gLl +gLl +gLl +gLl +gLl +gLl oGC awW acW @@ -108424,31 +109280,31 @@ awW awW fSm hiy -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 +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 @@ -108457,15 +109313,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 @@ -108507,9 +109363,9 @@ aaa bdH aaa aad -aKW -bdn -bdn +sGw +dvD +dvD wfE mcL jOo @@ -108524,9 +109380,9 @@ wFR wFR xbk aWw -bys -bxd -vgC +cJK +oGL +hOu bkA eUn bcD @@ -108534,7 +109390,7 @@ qpx bet bgu nvM -bek +qOZ qjN gGJ ham @@ -108544,13 +109400,13 @@ qyD omo blZ bqN -uAo +nTo bqN bwR gfW -bUe -cbR -ccr +oJL +jMa +cVt sHm ddM hZe @@ -108565,9 +109421,9 @@ dKK dKK xry nmY -clP -ovF -yhQ +siT +bUQ +kyP ajZ aaa bdH @@ -108610,15 +109466,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 @@ -108627,31 +109483,31 @@ ajf ajf oAO pIZ -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 +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 @@ -108660,15 +109516,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 @@ -108710,9 +109566,9 @@ aaa bdH aaa aad -aKW -uJo -aLf +sGw +xiH +xzB wfE dgl jOo @@ -108727,9 +109583,9 @@ esM uUi xbk aWw -aNO -sLE -qLo +gtD +uRD +wru bkA nvM bgG @@ -108751,10 +109607,10 @@ gfW uFo omo gfW -iRx -iEb -bHa -apm +eWx +lLO +juo +otq gJO pwG aId @@ -108768,9 +109624,9 @@ vXf qGw uZV nmY -scI -oed -yhQ +uKH +bUQ +kyP ajZ aaa bdH @@ -108813,15 +109669,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 @@ -108830,31 +109686,31 @@ awW awW aSJ isI -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 +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 @@ -108863,15 +109719,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 @@ -108913,9 +109769,9 @@ aaa bdH aaa aad -aKW -ebD -aLf +sGw +jOq +xzB wfE krp jOo @@ -108930,9 +109786,9 @@ wFR soA xbk wfE -kEb -sLE -aLG +xos +uRD +qPk bCd iey baf @@ -108954,10 +109810,10 @@ bPk bsj byb bCd -buH -iEb -buH -app +knm +lLO +knm +yfy ruL qUZ aId @@ -108971,9 +109827,9 @@ kyh dKK xry nmY -suT -ftl -yhQ +qpV +hNh +kyP ajZ aaa bdH @@ -109020,22 +109876,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 @@ -109055,22 +109911,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 @@ -109116,9 +109972,9 @@ aaa bdH aaa aad -aKW -bPW -aLf +sGw +eoE +xzB wfE eiP qOp @@ -109133,9 +109989,9 @@ qtv xFZ btx naV -bxk -aYI -aLG +pij +kJh +qPk bCd tmg qjN @@ -109157,10 +110013,10 @@ qjN tzP wYK bCd -buH -iEb -buH -app +knm +lLO +knm +yfy ruL gsd aId @@ -109174,9 +110030,9 @@ hgD pSQ dOe nmY -tqk -iBG -yhQ +rEK +bba +kyP ajZ aaa bdH @@ -109222,23 +110078,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 @@ -109258,23 +110114,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 @@ -109319,9 +110175,9 @@ aaa bdH aaa aad -aKW -bPT -aLf +sGw +jIJ +xzB wfE fHz opD @@ -109336,9 +110192,9 @@ esM jpt xbk aWw -aLG -aZi -cOM +qPk +hKe +uJM baZ bep qjN @@ -109360,26 +110216,26 @@ qjN qjN imo baZ -oLv -iEb -buH -app +sbE +lLO +knm +yfy ruL xPq aId vjv gOR aId -vTV +ary nmY -pdy +nZm smW prP xXl nmY -iTz -vfJ -yhQ +idL +gnM +kyP ajZ aaa bdH @@ -109425,23 +110281,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 @@ -109461,23 +110317,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 @@ -109522,9 +110378,9 @@ aaa bdH aaa aad -aKW -aLf -aSm +sGw +xzB +dvD wfE iYx opD @@ -109539,9 +110395,9 @@ nEF tXi pcE aWw -aLG -aZi -aLG +qPk +hKe +qPk hqW qjN qjN @@ -109563,10 +110419,10 @@ hDX qjN qjN jpp -buH -iEb -buH -eDG +knm +lLO +knm +hnP lFp xlO aId @@ -109580,9 +110436,9 @@ oqt oEy qmY tUN -wlp -vXX -yhQ +siT +lZb +kyP ajZ aaa bdH @@ -109628,23 +110484,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 @@ -109664,23 +110520,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 @@ -109725,9 +110581,9 @@ aaa bdH aaa aad -aKW -aLf -aSm +sGw +xzB +dvD wfE gww opD @@ -109742,9 +110598,9 @@ ljf maL uKe aWw -aLG -avX -tzf +qPk +ckh +gyn vcq qPS qPS @@ -109755,7 +110611,7 @@ mKw rcx kan ojZ -jjn +toS ojZ kan leY @@ -109766,10 +110622,10 @@ iaF bqL bqL ocf -bFu -mKY -hvp -mWw +wwE +sAD +cIO +tAb vpe dxT olN @@ -109783,9 +110639,9 @@ uxX oZy orN nmY -luu -gNx -yhQ +lQf +tHk +kyP ajZ aaa bdH @@ -109828,26 +110684,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 @@ -109867,26 +110723,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 @@ -109928,26 +110784,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 @@ -109969,26 +110825,26 @@ qjN qjN xtM baZ -oLv -hop -vMx -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ +sbE +jZe +cbL +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr iZE oqt oZy qhD nmY -wlp -oDf -yhQ +siT +xFt +kyP ajZ aaa bdH @@ -110031,26 +110887,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 @@ -110070,26 +110926,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 @@ -110131,26 +110987,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 @@ -110160,9 +111016,9 @@ tlA nyj vVW vhX -unU +ctJ rlZ -twq +pGE vhX jCK nyj @@ -110172,26 +111028,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 +wDr kJH oqt qlm kRD nmY -scI -oDf -yhQ +uKH +xFt +kyP ajZ aaa bdH @@ -110232,28 +111088,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 @@ -110273,26 +111129,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 @@ -110334,26 +111190,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 @@ -110375,26 +111231,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 +wDr euW rOI aId hQP nmY -suT -oed -yhQ +qpV +bUQ +kyP ajZ aaa bdH @@ -110435,28 +111291,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 @@ -110476,22 +111332,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 @@ -110538,25 +111394,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 @@ -110578,25 +111434,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 +wDr sJI aId aId hQP nmY -scI -oed +uKH +bUQ bVU bVU bVU @@ -110638,28 +111494,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 @@ -110679,23 +111535,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 @@ -110741,30 +111597,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 +wDr +hwH +hwH +hwH +wDr +qPk +hKe +qPk kan -sKO -vRE -bWF -opc +mBk +oDJ +vaQ +iTt rlZ buu rlZ @@ -110781,25 +111637,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 +wDr ePN aId aId hQP nmY -nyz -tVB +xUY +wGe bSf bWe bWn @@ -110841,28 +111697,28 @@ 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 anp wjz @@ -110870,8 +111726,8 @@ fnA jZY jZY sqf -vPj -aot +wpu +okO ajl ajl ajl @@ -110882,23 +111738,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 @@ -110951,23 +111807,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 -vvi -thD +vou +dYU kan -mai +cWm soK gDW rlZ @@ -110984,18 +111840,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 @@ -111044,28 +111900,28 @@ 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 sOZ oNJ @@ -111073,8 +111929,8 @@ eDo eDo eDo sqf -jUG -awM +vXv +wub gXl ajl wqW @@ -111085,23 +111941,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 @@ -111154,18 +112010,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 @@ -111187,18 +112043,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 @@ -111247,28 +112103,28 @@ 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 anq awn @@ -111276,8 +112132,8 @@ xsz jTj jTj sqf -xRh -umC +lmi +xgP dwA wJo cyU @@ -111288,22 +112144,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 @@ -111357,18 +112213,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 @@ -111379,8 +112235,8 @@ bJw rlZ hBc hzs +bHg hzs -kDj aZK rlZ hYn @@ -111390,18 +112246,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 @@ -111450,28 +112306,28 @@ 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 anr awn @@ -111491,23 +112347,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 @@ -111560,18 +112416,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 @@ -111593,18 +112449,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 @@ -111653,28 +112509,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 @@ -111694,23 +112550,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 @@ -111763,18 +112619,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 @@ -111796,18 +112652,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 @@ -111856,28 +112712,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 @@ -111897,23 +112753,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 @@ -111966,18 +112822,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 @@ -111999,18 +112855,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 @@ -112059,28 +112915,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 @@ -112100,23 +112956,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 @@ -112169,18 +113025,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 @@ -112202,18 +113058,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 @@ -112262,28 +113118,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 @@ -112303,23 +113159,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 @@ -112365,25 +113221,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 @@ -112393,7 +113249,7 @@ bst cjW rlZ rlZ -hrJ +oRy kan biy boX @@ -112405,25 +113261,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 @@ -112465,28 +113321,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 @@ -112506,23 +113362,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 @@ -112568,25 +113424,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 @@ -112608,25 +113464,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 @@ -112669,11 +113525,11 @@ aaa aaa aaa aaa -lYA -aet -aet +acf biV +aet biV +aet ekY aet ekY @@ -112687,9 +113543,9 @@ abE abE abE abE -jKK -pjM -aim +cXq +bXc +vZJ vOy nos fcy @@ -112703,33 +113559,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 @@ -112770,26 +113626,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 @@ -112811,26 +113667,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 @@ -112872,7 +113728,7 @@ aaa aaa aaa aaa -ahx +acv aiH alf arp @@ -112890,9 +113746,9 @@ gwo aed aeG abE -atL -akV -atL +rSW +dNv +rSW vOy oNp aSn @@ -112912,27 +113768,27 @@ niL kXw pxo sqf -atL -bkQ -atL -qVM -iBt -iBt -iBt -iBt -iUZ +rSW +dYl +rSW +pBG +rdZ +rdZ +rdZ +rdZ +bCs pBG rLp ttX -qVM -csz -qVM -nLb -pUi -wLk -bIN -lbb -czu +pBG +vpf +mRU +vor +qnA +vkI +gNN +lyz +woU aaa aaa aaa @@ -112973,10 +113829,10 @@ aaa aaa bdH aad -aKW -uDB -aLf -hhw +kyw +xwd +lfx +bwG weR aPE weR @@ -112990,9 +113846,9 @@ aQF aQF aQF aQF -esi -byI -beB +mNG +pSF +eZC kan avW bZn @@ -113002,7 +113858,7 @@ vhX gDW rlZ rlZ -pFe +wYr dBH bky ryt @@ -113014,9 +113870,9 @@ xIk cLA xIk kan -bJz -bHT -quI +hBW +ltv +qEz bJt bJt bJt @@ -113024,16 +113880,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 @@ -113075,7 +113931,7 @@ aaa aaa aaa aaa -ahx +acv aiH alg bBC @@ -113093,9 +113949,9 @@ adF aef dWw agA -ago -snm -cwJ +mRJ +fjA +gqH vOy anz vgx @@ -113115,27 +113971,27 @@ aCC kXw pxo asn -ago -asW -cwJ -qVM -iBt -iBt -iBt -iBt -iBt +mRJ +oEn +gqH +pBG +rdZ +rdZ +rdZ +rdZ +rdZ pBG jZU jAe -qVM -vGk -qVM -fdj -qYW -oTz -vGk -xae -czu +pBG +jtU +mRU +tNw +ebI +ukC +jtU +fCi +woU aaa aaa aaa @@ -113176,14 +114032,14 @@ aaa aaa bdH aad -aKW -aSm -aVt -hhw -aNr -aOi -pbb -pbb +kyw +deq +cGY +bwG +rUq +rUq +sab +sab izk aWD cWr @@ -113193,9 +114049,9 @@ eKT wan cTC aQF -pno -aYO -bad +syj +wKN +qqf xMs xMs xMs @@ -113205,7 +114061,7 @@ xMs cjW rlZ rlZ -jbO +kSC kan quv rZB @@ -113217,9 +114073,9 @@ vMo vMo vMo vMo -bGe -bHL -smn +tzw +sPY +hkC bJt xOL gGI @@ -113227,16 +114083,16 @@ eeu 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 @@ -113278,7 +114134,7 @@ aaa aaa aaa aaa -lYA +acf aet avx ahN @@ -113296,9 +114152,9 @@ adF aef aef uZZ -bYe -amO -avj +muW +lGh +bBH vOy awQ oLU @@ -113318,27 +114174,27 @@ edv kXw pxo asn -ayT -akU -avj -qVM -iBt -iBt -iBt -iBt -iBt +lXl +yiu +bBH +pBG +rdZ +rdZ +rdZ +rdZ +rdZ pBG cVq nOb -qVM -oLw -qVM -qVM -qVM -xeG -qVM -qVM -czu +pBG +vpI +mRU +mRU +mRU +gBs +mRU +mRU +woU aaa aaa aaa @@ -113379,12 +114235,12 @@ aaa aaa bdH aad -aKW -bhC -bPT -hhw -jKh -pbb +kyw +deq +veq +bwG +pKh +sab rDv bmW jWu @@ -113396,9 +114252,9 @@ aRy aRy nIj aQF -aWM -aZi -aLG +rWv +hKe +qPk xMs aSO feY @@ -113420,9 +114276,9 @@ wZE iGn byd vMo -buH -bHL -buH +knm +sPY +knm lhB pOY bDs @@ -113430,16 +114286,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 @@ -113481,7 +114337,7 @@ aaa aaa aaa aaa -lYA +acf aet avV uli @@ -113499,9 +114355,9 @@ adF bls aeH agq -ahM -kSJ -avj +ijd +efV +bBH vOy hng dnC @@ -113521,27 +114377,27 @@ aCt kXw pxo asn -ayT -aii -avm -qVM -iBt -iBt -iBt -iBt -iBt +lXl +poD +qmW +pBG +rdZ +rdZ +rdZ +rdZ +rdZ pBG dzp ngV -qVM -vGk -vGk -gYS -weU -csz -eGz -csz -czu +pBG +jtU +jtU +uBx +fLi +vpf +prf +vpf +woU aaa aac aaf @@ -113582,10 +114438,10 @@ aaa aaa bdH aad -aKW -aSm -xCm -hhw +kyw +deq +deF +bwG mTi lJK kYV @@ -113599,9 +114455,9 @@ bQU bQU bjD dqE -aem -mUa -uLv +htl +vaq +vTX xMs lOH dUS @@ -113623,9 +114479,9 @@ bof vit dxu vMo -buH -bHL -buH +knm +sPY +knm lhB xCb bDs @@ -113633,16 +114489,16 @@ 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 @@ -113684,7 +114540,7 @@ aaa aaa aaa aaa -ahx +acv aez uli aIx @@ -113702,9 +114558,9 @@ adF aef kqN agA -ayT -ajt -avm +lXl +qdJ +qmW vOy xyt wiW @@ -113724,10 +114580,10 @@ vOy mFq vqW sqf -ybf -aii -avj -qVM +rnM +poD +bBH +pBG pBG pBG pBG @@ -113736,15 +114592,15 @@ pBG pBG saL pBG -qVM -qVM -qVM -qVM -qVM -qVM -vGk -csz -czu +pBG +mRU +mRU +mRU +mRU +mRU +jtU +vpf +woU aaa aad aag @@ -113785,15 +114641,15 @@ aaa aaa bdH aad -aKW -aSm -xnY -hhw +kyw +deq +oWq +bwG aQF aQF aPH xIQ -hvQ +tmX aWD rrK aRy @@ -113802,9 +114658,9 @@ brb cpp buv aWF -aLG -aZi -aLG +qPk +hKe +qPk xMs akE qGF @@ -113826,9 +114682,9 @@ ggz dka bye vMo -buH -bHL -buH +knm +sPY +knm lhB aQW bDs @@ -113843,9 +114699,9 @@ bJt bJt bJt bJt -oed -eHf -yhQ +xbg +otW +lyW ajZ avo avo @@ -113887,7 +114743,7 @@ aaa aaa aaa aaa -ahx +acv aez uli uli @@ -113905,9 +114761,9 @@ aef aef tRD abE -aTL -ajt -avj +tkF +qdJ +bBH vOy iYf bIM @@ -113927,15 +114783,15 @@ hPe sdu btC vLj -ahM -kSJ -avj -cGr +ijd +efV +bBH +rRT pBG -hqJ +gqQ cHG nQA -wph +dAl pyx lKO pBG @@ -113944,10 +114800,10 @@ gel gel gel fkX -qVM -vGk -ofs -czu +mRU +jtU +tMU +woU aaf aag aag @@ -113988,10 +114844,10 @@ bdH bdH bdH aad -aKW -uDB -aLf -hhw +kyw +xwd +lfx +bwG weR aPE izk @@ -114005,9 +114861,9 @@ aTY iCF gJP aQF -qcl -aZi -aLG +uNf +hKe +qPk xMs aYR dUS @@ -114029,9 +114885,9 @@ jZd vit bzo vMo -buH -bHL -buH +knm +sPY +knm lhB pxD bDs @@ -114046,9 +114902,9 @@ iIl bDs ujV bJt -oed -oed -yhQ +xbg +xbg +lyW ajZ avo avs @@ -114090,7 +114946,7 @@ aaa aaa aaa aaa -lYA +acf ahy avZ ipK @@ -114108,9 +114964,9 @@ adF aef afs agA -ayT -akU -avj +lXl +yiu +bBH vOy mTp wiW @@ -114130,10 +114986,10 @@ lON dVu oDR vOP -bYe -bnD -aWH -aYn +muW +cDI +tru +uXE qvL wmP wmP @@ -114147,10 +115003,10 @@ cXF rLU dKp cHu -qVM -vGk -csz -czu +mRU +jtU +vpf +woU aag aag aag @@ -114191,12 +115047,12 @@ bdH bdH bdH aad -aKW -aSm -gfS -hhw -lHc -pbb +kyw +deq +sJa +bwG +pGG +sab izk hds aQF @@ -114208,9 +115064,9 @@ qZH bsN buB aWD -aLG -aZi -aLG +qPk +hKe +qPk xMs bXw eiw @@ -114232,9 +115088,9 @@ boh qDP wbP vMo -buH -bHL -vMx +knm +sPY +cbL bJt qom bDs @@ -114249,8 +115105,8 @@ idx hAz gHj bJt -vhI -oed +oqI +xbg avo avo avo @@ -114293,7 +115149,7 @@ aaa aaa aaa aaa -lYA +acf aet aIx ipK @@ -114311,9 +115167,9 @@ adD sOw afs agA -ayT -akU -avj +lXl +yiu +bBH vOy axn dRh @@ -114333,10 +115189,10 @@ vOy aRd aIo vOy -qLK -akU -avj -eAT +whc +yiu +bBH +mxq pBG lvb eAN @@ -114350,10 +115206,10 @@ bHk vZw bHk cHu -qVM -csz -qVM -czu +mRU +vpf +mRU +woU aag aag aag @@ -114394,10 +115250,10 @@ bdH bdH bdH aad -aKW -aLf -aSm -tps +kyw +lfx +deq +jgK aNs aNs hyw @@ -114411,9 +115267,9 @@ fHF bml buB aWD -beB -byI -beB +eZC +pSF +eZC xMs xMs xMs @@ -114435,9 +115291,9 @@ vMo vMo vMo vMo -bJz -bHT -uFP +hBW +ltv +kGw bJt bJt nFI @@ -114452,8 +115308,8 @@ gSk bDs bpI bJt -kTq -oed +jLH +xbg lpy avC avC @@ -114496,7 +115352,7 @@ aaa aaa aaa aaa -lYA +acf aet uli ipK @@ -114514,9 +115370,9 @@ adF aef afs agA -ayT -akU -avj +lXl +yiu +bBH vOy aAr pGK @@ -114536,9 +115392,9 @@ aCD hFC qmy vOy -ayT -akU -avj +lXl +yiu +bBH pBG pBG hEl @@ -114553,10 +115409,10 @@ vzp vZw erd cHu -qVM -hoX -qVM -czu +mRU +vzB +mRU +woU aag aag aag @@ -114597,10 +115453,10 @@ bdH bdH bdH aad -aKW -eWY -aSm -hhw +kyw +txp +iGc +bwG vMr vMr izk @@ -114614,9 +115470,9 @@ htL aUL buB aWD -aLG -aZi -aLG +qPk +hKe +qPk nyw iXU hDw @@ -114638,9 +115494,9 @@ vEH uFH tQd nyw -buH -bHL -buH +knm +sPY +knm yfS sEi dck @@ -114655,8 +115511,8 @@ gSk reL wiI bJt -nnr -eep +tqV +dSm avo avo avo @@ -114699,7 +115555,7 @@ aaa aaa aaa aaa -lYA +acf aet avx ipK @@ -114717,9 +115573,9 @@ aef aef pHG abE -aTL -aii -avj +tkF +poD +bBH vOy aID gLc @@ -114728,9 +115584,9 @@ iit kZV vOy vOy -oIr +jpl vOy -wdo +wKL vOy vOy vOy @@ -114739,9 +115595,9 @@ aoM aoM vgB kgs -ayT -aii -avj +lXl +poD +bBH bvX ojQ eAN @@ -114756,10 +115612,10 @@ bHk vZw bHk cHu -qVM -csz -qVM -czu +mRU +vpf +mRU +woU aah aag aag @@ -114800,10 +115656,10 @@ bdH bdH bdH aad -aKW -wyO -lpX -hhw +kyw +cme +whm +bwG mTi lJK izk @@ -114817,9 +115673,9 @@ aTZ aUM gJP aQF -lRU -aYO -aLG +rmz +wKN +qPk nyw beH dcd @@ -114841,9 +115697,9 @@ beH beH beH nyw -buH -bHL -buH +knm +sPY +knm yfS hgL swt @@ -114858,9 +115714,9 @@ gSk bDs vwI bJt -koz -oDf -yhQ +lAa +mgb +lyW ajZ avo avs @@ -114902,7 +115758,7 @@ aaa bdH aaa aaa -ahx +acv aez uli uli @@ -114920,9 +115776,9 @@ adF aef aGS agA -ayT -aii -avj +lXl +poD +bBH vOy aMd pGK @@ -114942,9 +115798,9 @@ prx fpT eVT kgs -ayT -aii -avj +lXl +poD +bBH bvX kVV vQR @@ -114959,10 +115815,10 @@ pRy wwW mRW cHu -qVM -vGk -csz -czu +mRU +jtU +vpf +woU aaa aad aag @@ -115003,15 +115859,15 @@ bdH bdH bdH aad -aKW -aVt -eZz -hhw +kyw +cGY +ipn +bwG aQF aQF sPc xIQ -pbb +sab aWD olM aRy @@ -115020,9 +115876,9 @@ eXr iFH buv aWE -aLG -avX -aem +qPk +ckh +htl aum emr emr @@ -115044,9 +115900,9 @@ rCO rCO rCO eVv -bFu -lAO -buH +wwE +mDZ +knm ykj rlQ ven @@ -115061,9 +115917,9 @@ gSk bDs fUB bJt -oDf -uqH -yhQ +mgb +nhw +lyW ajZ avo avo @@ -115105,7 +115961,7 @@ aaa bdH bdH aaa -ahx +acv aez aIB aKg @@ -115123,9 +115979,9 @@ adF aef nIS uZZ -bYe -aii -avj +muW +poD +bBH vOy aMg aSo @@ -115145,16 +116001,16 @@ ger aoM aFf mmN -ayT -aii -avj +lXl +poD +bBH bvX maO lPm iZV fdx cuq -edn +eQJ fVF pBG qWR @@ -115162,10 +116018,10 @@ wJH wJH wJH sNR -qVM -vGk -csz -czu +mRU +jtU +vpf +woU aaa aae aah @@ -115206,10 +116062,10 @@ bdH bdH bdH aad -aKW -cmq -aSm -hhw +kyw +oif +deq +bwG weR aPE izk @@ -115223,9 +116079,9 @@ pOi pOi nVF aWF -aLG -aYO -aLG +qPk +wKN +qPk nyw eGZ ieX @@ -115247,9 +116103,9 @@ bhq dcd eTd nyw -buH -vdW -qLp +knm +rDO +hqp kKk rDt gpI @@ -115264,9 +116120,9 @@ gSk bDs nqO bJt -sIx -bxX -yhQ +nQo +pgJ +lyW ajZ aaa avo @@ -115308,7 +116164,7 @@ aaa bdH aaa aaa -lYA +acf aet aJJ aIB @@ -115326,9 +116182,9 @@ adF aef nIS eWF -bYe -aii -avj +muW +poD +bBH vOy aQZ bkT @@ -115346,11 +116202,11 @@ ggl jjS qMP kBP -aSl +kqo vOy -aTL -aii -avm +tkF +poD +qmW pBG pBG pBG @@ -115361,14 +116217,14 @@ pBG pBG pBG pBG -qVM -qVM -qVM -qVM -qVM -vGk -ofs -czu +mRU +mRU +mRU +mRU +mRU +jtU +tMU +woU bdH bdH bdH @@ -115409,12 +116265,12 @@ bdH bdH bdH aad -aKW -xxe -aLf -hhw -aQI -aQI +kyw +byt +lfx +bwG +iWQ +iWQ uFd mUq qwt @@ -115426,9 +116282,9 @@ tou tou jhy aQF -beB -aYT -jfD +eZC +hMk +mkw bdd bdd bdd @@ -115450,9 +116306,9 @@ bdd bdd bdd bdd -fZx -bHT -bJz +xwm +ltv +hBW yfS ape ven @@ -115467,9 +116323,9 @@ cnu bDs knK bJt -oed -vgQ -yhQ +xbg +oUZ +lyW ajZ bdH bdH @@ -115511,7 +116367,7 @@ aaa bdH aaa aaa -lYA +acf aet avx ahN @@ -115529,9 +116385,9 @@ adF aef kqN agA -ayT -akU -avj +lXl +yiu +bBH vOy dVd lea @@ -115551,27 +116407,27 @@ vti vti aEZ vOy -ayT -akU -avj +lXl +yiu +bBH fKh gQk trU oNY fdx pBG -eNw +pVF ppF fiE pBG -vGk -vGk -gYS -vzl -csz -vGk -csz -czu +jtU +jtU +uBx +ycM +vpf +jtU +vpf +woU bdH bdH bdH @@ -115612,14 +116468,14 @@ bdH bdH bdH aad -aKW -dgN -aLf -hhw -aQI -aQI -aQI -hcZ +kyw +jNo +lfx +bwG +iWQ +iWQ +sab +aNr pQY aWD bll @@ -115629,9 +116485,9 @@ dVO bsR aQr aQF -aLG -aYO -aLG +qPk +wKN +qPk tda ngI dkq @@ -115653,9 +116509,9 @@ qby btY bAJ huU -buH -bHL -buH +knm +sPY +knm yfS ape ven @@ -115670,9 +116526,9 @@ gSk ljG tSp bJt -oed -sHg -yhQ +xbg +ssk +lyW ajZ bdH bdH @@ -115714,7 +116570,7 @@ aaa bdH aaa aaa -ahx +acv aiH uli bLO @@ -115732,9 +116588,9 @@ fcE aef uNN abE -giB -akU -avj +dfA +yiu +bBH vOy vOy vOy @@ -115743,9 +116599,9 @@ mSK mSK vOy vOy -ccc +voV wKP -ylc +hLr vOy vOy rhO @@ -115754,9 +116610,9 @@ nPE oqZ uaI vOy -atV -akU -avj +hUu +yiu +bBH fKh iuG sOv @@ -115767,14 +116623,14 @@ dzp rMT dzp pBG -vGk -qVM -qVM -qVM -qVM -csz -qVM -czu +jtU +mRU +mRU +mRU +mRU +vpf +mRU +woU bdH bdH bdH @@ -115815,10 +116671,10 @@ bdH bdH bdH aad -aKW -bhC -aLf -hhw +kyw +deq +lfx +bwG mTi lJK mTi @@ -115832,9 +116688,9 @@ aQF aQF aQF aQF -ePA -akO -bwd +ldb +rYI +fzc bdg vyg bni @@ -115856,9 +116712,9 @@ snb xbd bAU bdg -bCi -bCo -ivB +jlD +pYN +raE bJt wbC lHu @@ -115873,9 +116729,9 @@ gSk oDE bJt bJt -oed -oDf -yhQ +xbg +mgb +lyW ajZ bdH bdH @@ -115917,7 +116773,7 @@ aaa aaa aaa aaa -ahx +acv aiH aiH bWd @@ -115935,11 +116791,11 @@ aeI eva xzf abE -aTL -aii -ali -amD -cwJ +tkF +poD +dSI +iLL +gqH vOy vOy vOy @@ -115957,9 +116813,9 @@ vOy vOy vOy vOy -vIN -aii -avj +qQD +poD +bBH fKh ubI nQA @@ -115970,14 +116826,14 @@ nTR gDp rwq pBG -vGk -qVM -riM -rGl -qVM -hoX -qVM -czu +jtU +mRU +oyO +nve +mRU +vzB +mRU +woU bdH bdH bdH @@ -116018,10 +116874,10 @@ bdH bdH bdH aad -aKW -efU -aLf -hhw +kyw +xbI +lfx +bwG aQF aQF aQF @@ -116031,13 +116887,13 @@ aQF aQF aQF aQF -ktB -gCd -eJg -hhw -aeb -alx -aeb +wYG +yhR +gHi +bwG +pzj +uhq +pzj bdg apz dyd @@ -116059,9 +116915,9 @@ vPw bvr bBQ bdg -bCj -bDx -bCj +sgL +aRL +sgL rde vjC iMm @@ -116075,10 +116931,10 @@ bDs gSk luS bJt -iGg -oed -oDf -yhQ +uCw +xbg +mgb +lyW ajZ bdH bdH @@ -116120,11 +116976,11 @@ aaa aaa aaa aaa -lYA -aar -tiM -aar -aar +vHn +cGd +moK +cGd +cGd aNi aNi bWr @@ -116138,11 +116994,11 @@ aNi aNi aNi aNi -atV -aii -abx -abx -avj +hUu +poD +tsn +tsn +bBH vOy elR xXh @@ -116160,9 +117016,9 @@ dMK vOy vOy vOy -ayT -aii -avj +lXl +poD +bBH pBG mGT nQA @@ -116173,14 +117029,14 @@ pBG pBG pBG pBG -vGk -xCX -vGk -hoX -qVM -sCC -qVM -czu +jtU +rXF +jtU +vzB +mRU +kuK +mRU +woU aaa aaa aaa @@ -116221,26 +117077,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 @@ -116262,9 +117118,9 @@ bpv tMW bBY bCh -bCi -bCo -bCi +mPM +esd +mPM ejw xML iMm @@ -116278,10 +117134,10 @@ bDs gSk vSp lHG -qgH -oDf -oDf -yhQ +kOJ +mgb +mgb +lyW ajZ bdH bdH @@ -116323,11 +117179,11 @@ aaf aaf aaf aaf -lYA -aiS -aao -aao -acD +vHn +ejV +hoT +hoT +vyh aNi cYT aNm @@ -116341,11 +117197,11 @@ bhx vif aOR bsw -ayT -xGk -all -amK -avj +lXl +hPZ +bPi +ava +bBH vOy wWz vHO @@ -116361,29 +117217,29 @@ ruc xOY wTM vOy -nzA -amD -ajr -aii -avm +uWk +iLL +lRh +poD +qmW pBG -bfO +tGT nQA nQA jDO pBG aYH cHG -wEe +cOY pBG -ieH -qVM -tUI -mcV -qVM -vGk -csz -czu +mSM +mRU +gRc +oOp +mRU +jtU +vpf +woU aaf aaf aaf @@ -116417,33 +117273,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 @@ -116465,9 +117321,9 @@ mng wTm wCI tda -buH -bHL -buH +oSM +ter +oSM bJt swE wpI @@ -116481,17 +117337,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 @@ -116526,11 +117382,11 @@ aag aag aag aag -lYA -aiT -aap -aao -aap +vHn +dGg +tob +hoT +tob aNi aZe aNm @@ -116544,11 +117400,11 @@ aco aco dYu bsw -mQH -hee -aEX -aii -avm +cOe +vwT +akh +poD +qmW vOy wWz anw @@ -116564,11 +117420,11 @@ wLy eiE wTM vOy -ayT -akT -amC -bKe -avj +lXl +mfO +mHY +yei +bBH fKh eYn nQA @@ -116579,14 +117435,14 @@ eAN eAN eAN pBG -csz -qVM -qVM -qVM -qVM -oLw -csz -czu +vpf +mRU +mRU +mRU +mRU +vpI +vpf +woU aag aag aag @@ -116619,22 +117475,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 @@ -116644,9 +117500,9 @@ bdd bdd bdd bdd -teH -mUa -xNB +nhE +naa +nVQ bdd vuA vuA @@ -116668,9 +117524,9 @@ vuA vuA vuA bdd -bSj -bHL -bIR +fvV +ter +gvK bdd bdd bdd @@ -116685,17 +117541,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 @@ -116729,11 +117585,11 @@ aag aag aag aag -lYA -aiU -aap -aap -aap +vHn +oSG +tob +tob +tob aNi aZr aNm @@ -116749,9 +117605,9 @@ cCa aNi aNi aNi -ybf -ajt -avj +rnM +qdJ +bBH vOy wWz ovG @@ -116767,11 +117623,11 @@ gxP aOe wTM vOy -atU -akU -abg -abg -avj +piQ +yiu +xIj +xIj +bBH fKh wvo nQA @@ -116782,14 +117638,14 @@ skR oxc nBi pBG -hoX -qVM -oks -wdH -qVM -vGk -ofs -czu +vzB +mRU +pGh +xEs +mRU +jtU +tMU +woU aag aag aag @@ -116822,22 +117678,22 @@ 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 uvU xZk @@ -116847,9 +117703,9 @@ eYj aSp mho bdg -aLG -awb -aLG +fZE +iLm +fZE bdg bqZ bqZ @@ -116871,9 +117727,9 @@ bqZ bqZ bqZ bdg -buH -hOR -buH +oSM +xub +oSM bdg lCE oZD @@ -116888,17 +117744,17 @@ 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 @@ -116932,11 +117788,11 @@ aag aag aag aag -lYA -aiZ -aap -aao -aap +vHn +oeH +tob +hoT +tob aNi aZs aNm @@ -116952,9 +117808,9 @@ qiy ahR ahR egt -ait -ani -avj +shC +vIZ +bBH vOy woh vgO @@ -116970,13 +117826,13 @@ qxm vgO xAe vOy -aOP -aii -aow -hee -ioX +psk +poD +sin +vwT +gsJ fKh -sSP +lDa eAN eAN vEG @@ -116985,14 +117841,14 @@ pBG pBG pBG pBG -csz -iid -csz -hoX -qVM -noV -csz -czu +vpf +tra +vpf +vzB +mRU +iJT +vpf +woU aag aag aag @@ -117025,9 +117881,9 @@ bdH bdH bdH bdH -aKW -aSm -aLf +kyw +deq +lfx nsY nsY pRT @@ -117037,10 +117893,10 @@ nsY nsY nsY nsY -hhw -hhw -umv -hhw +bwG +bwG +msC +bwG bdd xwE dAQ @@ -117050,9 +117906,9 @@ tGG bpA mho bdg -aLG -aYO -aLG +fZE +naa +fZE bdg bqZ beH @@ -117074,9 +117930,9 @@ beH beH bqZ bdg -buH -bHL -buH +oSM +ter +oSM bdg lCE uek @@ -117099,9 +117955,9 @@ nsY nsY nsY nsY -upt -oDf -yhQ +kqb +mgb +lyW aaa aaa aaa @@ -117135,11 +117991,11 @@ aag aag aag aag -lYA -adf -aao -aao -aao +vHn +mId +hoT +hoT +hoT aNi jWr aNm @@ -117155,9 +118011,9 @@ hpY aOR aOR bgK -bYe -ajt -avj +muW +qdJ +bBH vOy vOy vOy @@ -117173,29 +118029,29 @@ aoK vOy vOy vOy -asp -aii -avj -qVM -qVM +pLE +poD +bBH +mRU +mRU pBG aGs eAN eAN vEG vrJ -tQM +xOs kOH hIs pBG -ieH -qVM -dYK -csz -iid -csz -qVM -czu +mSM +mRU +tCd +vpf +tra +vpf +mRU +woU aag aag aag @@ -117228,9 +118084,9 @@ aaa aaa aaa aaa -aKW -aLf -aSm +kyw +lfx +deq nsY xWT kxd @@ -117240,10 +118096,10 @@ rSG rur oqS nsY -lhu -btk -aSm -eoM +hsh +cPP +deq +eLH bdd eUZ lCr @@ -117253,9 +118109,9 @@ tGG lJD mho bdg -aLG -aYO -aLG +fZE +naa +fZE bdg bqZ beH @@ -117277,9 +118133,9 @@ gBo beH bqZ bdg -buH -bHL -buH +oSM +ter +oSM bdg lCE fMe @@ -117302,9 +118158,9 @@ rSG qkP oqS nsY -oDf -oDf -yhQ +mgb +mgb +lyW aaa aaa aaa @@ -117338,11 +118194,11 @@ aag aag aag aag -lYA -fZF -aWs -aar -tiM +vHn +eDq +jFI +cGd +moK aNi aNi aNi @@ -117358,9 +118214,9 @@ aOR aOR agr aNi -ayT -amO -avj +lXl +lGh +bBH vOy vOy vOy @@ -117376,11 +118232,11 @@ vOy vOy vOy vOy -meJ -amO -avj -qVM -csz +mIR +lGh +bBH +mRU +vpf pBG xiU xUa @@ -117391,14 +118247,14 @@ pZH nnL lgt pBG -oLw -qVM -jmR -vGk -qVM -hoX -qVM -czu +vpI +mRU +bhV +jtU +mRU +vzB +mRU +woU aag aag aag @@ -117431,9 +118287,9 @@ aaa aaa aaa aaa -aKW -aLf -aSm +kyw +lfx +deq nsY xWT kxd @@ -117443,10 +118299,10 @@ iIP kxd dDt nsY -xiz -aSm -aSm -kOf +exb +deq +deq +qLY bdd ljW bDP @@ -117456,9 +118312,9 @@ lCr mpn pZR bdd -beB -aYT -beB +atH +iEM +atH bCx bqZ beH @@ -117480,9 +118336,9 @@ bgO beH bqZ bCx -buH -bHL -buH +oSM +ter +oSM bdd tSF lsn @@ -117505,9 +118361,9 @@ dmR kxd dDt nsY -oDf -oed -yhQ +mgb +xbg +lyW aaa aaa aaa @@ -117541,15 +118397,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 @@ -117561,9 +118417,9 @@ aNi aNi aNi aNi -asp -amO -avj +pLE +lGh +bBH bPF aqG ata @@ -117576,14 +118432,14 @@ vYz awR uoi vOy -aMh -biB -alH -aTL -akU -avj -qVM -csz +jyJ +niF +bPF +tkF +yiu +bBH +mRU +vpf pBG pBG pBG @@ -117594,14 +118450,14 @@ pBG pBG pBG pBG -vGk -qVM -qVM -qVM -qVM -csz -qVM -czu +jtU +mRU +mRU +mRU +mRU +vpf +mRU +woU aag aag aag @@ -117634,9 +118490,9 @@ aaa aaa aaa aaa -aKW -aLa -aSm +kyw +lfx +deq nsY gsg vHq @@ -117646,10 +118502,10 @@ rNb bxC jiU nsY -glr -mhl -aSm -ylY +jvt +hiu +deq +vSr bdd asr asr @@ -117659,9 +118515,9 @@ nYp fZG phd pmv -tBF -fSK -aLG +mzv +yfg +fZE nyw bqZ beH @@ -117683,9 +118539,9 @@ tmB eBg vKe eVv -bFu -omW -bFu +cVZ +xdf +cVZ hLS vKe vKe @@ -117708,9 +118564,9 @@ iSm bxC jiU nsY -oDf -oed -yhQ +mgb +xbg +lyW aaa aaa aaa @@ -117734,39 +118590,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 @@ -117779,42 +118635,42 @@ paa sXd gVq vOy -aMi -biB -apI -bYe -akU -bYe -xCX -vGk -vGk -csz -vzl -ljt -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 @@ -117837,9 +118693,9 @@ aaa aac aaf aaf -aKW -aLf -aSm +kyw +lfx +deq nsY nsY qxC @@ -117849,10 +118705,10 @@ nsY ntx nsY nsY -jFe -sxe -xZI -mNZ +qWL +kIk +eXD +kMr bdd bdd bdd @@ -117862,9 +118718,9 @@ bdd bdd bdd bdd -aLG -awb -aLG +fZE +iLm +fZE bdg bqZ beH @@ -117886,9 +118742,9 @@ bgO beH bqZ bdg -buH -hOR -buH +oSM +xub +oSM bdd bdd bdd @@ -117911,9 +118767,9 @@ nsY gLZ nsY nsY -oDf -uqH -yhQ +mgb +nhw +lyW aaf aaf ajY @@ -117937,7 +118793,7 @@ aaa aaa aaa aaa -lYA +gxm dxF dxF aaH @@ -117948,28 +118804,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 aej -iiC -amO -tHh +gpT +lGh +cQF vOy vOy vOy @@ -117985,28 +118841,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 @@ -118017,7 +118873,7 @@ aeT nnD aZF aZF -czu +gxm aaa aaa aaa @@ -118038,11 +118894,11 @@ aaa aaa aaa aad -aKW -aKW -aKW -aSm -aLf +kyw +kyw +kyw +deq +caq nsY tUS bNh @@ -118052,10 +118908,10 @@ fPp lqN vlO nsY -xCN -pOB -hfk -aLf +xxG +smA +ktR +lfx bdd dJI jaf @@ -118065,9 +118921,9 @@ mPR osU vKe dYX -tBF -lBz -aLG +mzv +xhW +fZE bdg bqZ beH @@ -118089,9 +118945,9 @@ bgO beH bqZ bdg -buH -uXu -bFu +oSM +iOo +cVZ iUk cIx fUC @@ -118114,11 +118970,11 @@ iQt uZo xmJ nsY -oed -oDf -yhQ -yhQ -yhQ +xbg +mgb +lyW +lyW +lyW ajZ aaa aaa @@ -118140,7 +118996,7 @@ aaa aaa aaa aaa -lYA +gxm dxF dxF aaH @@ -118151,28 +119007,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 @@ -118188,28 +119044,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 @@ -118220,7 +119076,7 @@ aeT nnD aZF aZF -czu +gxm aaa aaa aaa @@ -118240,12 +119096,12 @@ aaa aaa aaa aaa -aKW -aKW -bPT -jiX -aSm -aLf +kyw +kyw +veq +deq +deq +lfx nsY kio sJY @@ -118255,10 +119111,10 @@ xTW oGP cnM nsY -nEA -lQu -lQu -aSm +kqB +txH +txH +deq bdd fva lkL @@ -118268,9 +119124,9 @@ cHB hDV vmP bdd -aLG -awb -aLG +fZE +iLm +fZE bdg bqZ bqZ @@ -118292,9 +119148,9 @@ bgO bqZ bqZ bdg -buH -hOR -buH +oSM +xub +oSM bdd oNP tge @@ -118317,12 +119173,12 @@ pyc uMn ivz nsY -oed -oDf -oed -oed -yhQ -yhQ +xbg +mgb +xbg +xbg +lyW +lyW aaa aaa aaa @@ -118343,7 +119199,7 @@ aaa aaa aaa aaa -lYA +gxm dxF dxF aaH @@ -118354,28 +119210,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 @@ -118391,28 +119247,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 @@ -118423,7 +119279,7 @@ aeT nnD aZF aZF -czu +gxm aaa aaa aaa @@ -118443,12 +119299,12 @@ aaa aaa aaa aaa -aKW -ygK -aLf -aLf -aLf -aLf +kyw +lHB +lfx +lfx +lfx +lfx heK kam axc @@ -118458,10 +119314,10 @@ vHh pvh sZs nsY -hhw -yfy -ugV -vUi +bwG +erL +scX +caq bdd cDH cHB @@ -118471,9 +119327,9 @@ wmz rhy rec bdg -aLG -aYO -bad +fZE +naa +onn bdd bdd bDQ @@ -118495,9 +119351,9 @@ bgO cab bdd bdd -bGe -bHL -buH +tmE +ter +oSM bdg jLS xdP @@ -118520,12 +119376,12 @@ xuQ uPW kYv oDx -tbK -tbK -tbK -lNy -oed -yhQ +sAS +sAS +sAS +rCh +xbg +lyW aaa aaa aaa @@ -118546,39 +119402,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 @@ -118594,39 +119450,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 @@ -118646,14 +119502,14 @@ aaa aaa aaa aaa -aKW -jwD -aLf -uig -hhw -hhw +kyw +eqm +lfx +vvH +bwG +bwG nsY -wpz +gAP oEX irT tyb @@ -118661,10 +119517,10 @@ xxm qSK ieu nsY -sSe -aLf -qce -aSm +mZc +lfx +neH +deq bdd xXW gVu @@ -118674,10 +119530,10 @@ wmz vbI rec bdg -beB -aYT -beB -beB +atH +iEM +atH +ppV bdd bqZ bgO @@ -118697,10 +119553,10 @@ gAj bgO bqZ bdd -bJz -bJz -bHT -bJz +eoy +brq +jnc +brq bdg jLS frb @@ -118723,12 +119579,12 @@ mzV pML ivz nsY -jZO -oDf -oed -wlp -ndQ -yhQ +iZd +mgb +xbg +jPx +xQd +lyW aaa aaa aaa @@ -118749,7 +119605,7 @@ aaa aaa aaa aaa -lYA +gxm ojH ojH taV @@ -118763,25 +119619,25 @@ ouf aLc wBI hGG -aar -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ +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 @@ -118797,25 +119653,25 @@ xQm tfH wTM vOy -aEK -aSv -ioX -ltK -nXF -vGk -bqG -qVM -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -qVM +piQ +poD +bBH +aQx +viv +xzh +syp +nIN +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +nIN vmJ elv vRR @@ -118829,7 +119685,7 @@ qXS hXX xDe xDe -czu +gxm aaa aaa aaa @@ -118849,12 +119705,12 @@ aaa aaa aaa aaa -aKW -cSK -aSm -aSm -bUc -nSN +kyw +htg +deq +deq +qCH +cXm nsY hUz dbn @@ -118864,10 +119720,10 @@ uRM ipe ehR nsY -rix -aLf -tRc -qEW +xEe +lfx +tdH +igw bdd sgm kEg @@ -118877,10 +119733,10 @@ xgN vgn xgN bdg -aLG -aYO -aLG -aLG +fZE +naa +fZE +fZE bdg bqZ qMR @@ -118900,10 +119756,10 @@ tXb fOk bqZ bdg -buH -buH -bHL -buH +oSM +oSM +ter +oSM bdg vLg loy @@ -118926,12 +119782,12 @@ sZH rjV ivz nsY -fuY -sZF -vjD -lFF -ndM -yhQ +qZy +jfS +bUH +ciB +soT +lyW aaa aaa aaa @@ -118952,7 +119808,7 @@ aaa aaa aaa aaa -lYA +gxm ojH ojH taV @@ -118966,25 +119822,25 @@ ouf sdf cRL hGG -aar -aar -aar +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 @@ -119000,26 +119856,26 @@ 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 -cna +nIN +nIN +nIN +vmJ nzD xDV qXS @@ -119032,7 +119888,7 @@ qXS hXX xDe xDe -czu +gxm aaa aaa aaa @@ -119052,12 +119908,12 @@ aaa aaa aaa aaa -aKW -aLf -aLf -xlD -bUc -vrB +kyw +lfx +lfx +yih +qCH +spT nsY nsY nsY @@ -119067,10 +119923,10 @@ nsY nsY nsY nsY -hhw -hhw -hhw -hhw +bwG +bwG +bwG +bwG bdd bdd bdd @@ -119080,10 +119936,10 @@ bdd bdd bdd bdd -hDL -aYO -aNO -aLG +tvl +naa +meQ +fZE bdg bqZ beH @@ -119103,10 +119959,10 @@ gAj beH bqZ bdg -buH -bHa -bHL -bIR +oSM +awE +ter +gvK bdd bdd bdd @@ -119129,12 +119985,12 @@ nsY nsY nsY nsY -gZG -xMh -ril -kRu -hXS -yhQ +ecj +bZf +lZI +faR +wxu +lyW aaa aaa aaa @@ -119155,7 +120011,7 @@ aaa aaa aaa aaa -lYA +gxm ojH ojH taV @@ -119170,8 +120026,8 @@ fTj jOD oOw cPK -oXt -loz +sPb +dlo sAz jZC uyd @@ -119179,15 +120035,15 @@ ito cuN cQW lQa -wjE -aeU -bUE -bYe -bYe -aaO -alp -aio -baB +sPb +gtg +ilq +aMy +aMy +wNC +hOn +sYU +xCs vOy wWz qxP @@ -119203,15 +120059,15 @@ gxP nMe wTM vOy -alp -aio -baB -aEV -bUE -bYe -nBW -bWP -qtj +hOn +sYU +xCs +wNC +kin +oQI +laI +qwU +neZ fpA qUx gUS @@ -119220,7 +120076,7 @@ kMp jkB hlT qNI -hRc +wrX tqO kdn nyS @@ -119235,7 +120091,7 @@ qXS hXX xDe xDe -czu +gxm aaa aaa aaa @@ -119255,38 +120111,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 @@ -119306,38 +120162,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 @@ -119358,22 +120214,22 @@ aaa aaa aaa aaa -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm dho wVt wVt jlc -ngE +sVV kbv dTn kbv @@ -119382,15 +120238,15 @@ kbv jlc kbv dTn -ngE -abg -abg -abg -abg -acC -iWN -amO -dLE +sVV +sVV +sVV +sVV +sVV +wNC +sfz +lGh +xLw vOy woh vgO @@ -119406,15 +120262,15 @@ vgO vgO xAe vOy -aIS -alq -wWk -chu -aZE -aZE -aZE -aZE -usL +uAP +rgO +kak +nOp +cMz +cMz +cMz +cMz +cMz gsC cMz qLg @@ -119423,22 +120279,22 @@ cMz cMz gsC cMz -usL +bTY qLg iup ryY cnn -czu -czu -czu -czu -czu -czu -czu -czu -czu -czu -czu +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm aaa aaa aaa @@ -119458,38 +120314,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 @@ -119509,38 +120365,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 @@ -119568,16 +120424,16 @@ aag aag aag aag -lYA -bRK -aao -aiv +vHn +fbe +hoT +rpG bGa dVn vwC fbR -gcq -xci +xMz +kMV eON gxn vEV @@ -119585,15 +120441,15 @@ xMz sdv xMO wDg -vHA -aaL -aJs -bYe -bYe -aaE -afD -kaA -anh +xMz +lIY +gxn +aMy +aMy +wNC +wlr +xyp +mnf vOy vOy vOy @@ -119609,15 +120465,15 @@ vOy vOy vOy vOy -xFw -iTK -anh -aFF -cjo -bYe -kSN -aTQ -kfo +gPA +eWf +mnf +wNC +gVW +oQI +iaO +vUn +atJ rCl ePM pzd @@ -119626,15 +120482,15 @@ nNx pMA ncT gHh -kfo +oWx dbc cNM ofU njk -xCX -vGk -hoX -czu +rXF +jtU +vzB +woU aag aag aag @@ -119661,38 +120517,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 @@ -119712,38 +120568,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 @@ -119771,73 +120627,73 @@ aag aag aag aag -lYA -bTI -aap -aar -aar -aar -aar -aar -aar -aar +vHn +ggD +tob +cGd +njn +njn +njn +njn +njn +njn hZE sVV oON -aar -aar -lIl -aar -aar +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 +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 -qVM -qVM -qVM -qVM -qVM -qVM -qVM -csz -ofs -czu +nIN +nIN +nIN +nIN +nIN +nIN +mRU +vpf +tMU +woU aag aag aag @@ -119864,18 +120720,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 @@ -119891,11 +120747,11 @@ mWy jeb jeb jeb -aLG -aNO -aYT -aNO -aLG +fZE +meQ +iEM +meQ +fZE bdg bqZ udi @@ -119915,11 +120771,11 @@ veu mDW bqZ bdg -buH -bHa -bHT -bHa -buH +oSM +awE +jnc +awE +oSM vra vra vra @@ -119935,18 +120791,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 @@ -119974,73 +120830,73 @@ aag aag aag aag -lYA -qsd -aao -aao -aar -aIZ -aIZ -aIZ -aLC -aar +vHn +hgk +hoT +hoT +njn +rWz +rWz +rWz +jXN +njn xVe sVV mbx -aar -vUk -sTB -lUA -tqd +njn +tXa +gJg +tSX +lzt ael afE agT agT 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 -aDS +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 -qVM -iBt -iBt -iBt -fgo -qVM -aPX -vGk -vGk -czu +nIN +rgL +rgL +rgL +laD +nIN +upS +jtU +jtU +woU aag aag aag @@ -120067,18 +120923,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 @@ -120094,11 +120950,11 @@ xHp hmF vlX jeb -aNn -aNO -aYT -aNO -aLG +bMf +meQ +iEM +meQ +fZE bdg bqZ udi @@ -120118,11 +120974,11 @@ fIZ mDW bqZ bdg -buH -bHa -bHT -bHa -deH +oSM +awE +jnc +awE +eOx vra asX chf @@ -120138,18 +120994,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 @@ -120177,73 +121033,73 @@ aag aag aag aag -lYA -lYA -aap -aap -aar -aIZ -aIZ -aIZ -aIZ -aar +vHn +vHn +tob +tob +njn +rWz +rWz +rWz +rWz +njn hHe gxn ioH -aar -fQY -aap -elM -vFb +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 +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 -qVM -iBt -iBt -iBt -iBt -qVM -pzQ -csz -czu -czu +nIN +rgL +rgL +rgL +rgL +nIN +oNM +vpf +woU +woU aag aag aag @@ -120270,18 +121126,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 @@ -120297,11 +121153,11 @@ xHp xwl rHf jeb -jgU -aNO -aYT -aNO -aLG +rrU +meQ +iEM +meQ +fZE bdg bqZ ngI @@ -120321,11 +121177,11 @@ xAt nNH bqZ bdg -buH -bHa -bHT -bHa -bKc +oSM +awE +jnc +awE +uNp vra bMq qUq @@ -120341,18 +121197,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 @@ -120381,38 +121237,38 @@ aag aag aag aag -lYA -aao -aao -aar -aIZ -aIZ -aIZ -aIZ +vHn +hoT +hoT +njn +rWz +rWz +rWz +rWz aba aGA kbv fZo -aar -thR -aao -aao -gDP +njn +pKL +jsA +jsA +qTi ael afI agY oxi xfm -als -ani -anc +lDH +vIZ +iCg mOi mOi mOi mOi mOi -mOi -auc +sOK +tAt auc hyE aqU @@ -120421,31 +121277,31 @@ aHq aHq aHq aHq -iWN -ajt -kGI -aPm -qVM -vGk -csz -xCX -vGk -vGk -vGk -csz -qVM +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 @@ -120473,18 +121329,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 @@ -120500,11 +121356,11 @@ gAA fFD vlX jeb -kEb -aNO -aYT -aNO -aLG +wEK +meQ +iEM +meQ +fZE bdg bqZ beH @@ -120524,11 +121380,11 @@ beH beH bqZ bdg -buH -bHa -bHT -bHa -rKy +oSM +awE +jnc +awE +dNW vra asX drj @@ -120544,18 +121400,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 @@ -120584,71 +121440,71 @@ aag aag aag aag -lYA -aao -aap -aar -aIZ -aIZ -aIZ -aIZ -aar +vHn +hoT +tob +njn +rWz +rWz +rWz +rWz +njn mAF ilq pjj -aar -xtQ -aap -aao -sxT +njn +kCl +cGR +jsA +uqs ael afJ agY aiq ajJ -aEX -ajt -aow +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 +wvX +qdJ +nZK +olF +nIN +xzh +lZJ +nIN +lbO +gNo +xzh +vwj +nIN gfN efj sxE -qVM -iBt -iBt -iBt -iBt -qVM -oLw -vGk -czu +nIN +rgL +rgL +rgL +rgL +nIN +vpI +jtU +woU aag aag aag @@ -120676,18 +121532,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 @@ -120703,11 +121559,11 @@ xHp xwl vlX jeb -pGM -aNO -aYT -aNO -bad +dQV +meQ +iEM +meQ +onn bdd bDQ lnm @@ -120727,11 +121583,11 @@ sCA bVw cab bdd -bGe -bHa -bHT -bHa -bIR +tmE +awE +jnc +awE +gvK vra asX qUq @@ -120747,18 +121603,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 @@ -120787,71 +121643,71 @@ aag aag aag aag -lYA -aap -cWA -aar -aIZ -aIZ -aIZ -aIZ -aar +vHn +tob +xLu +njn +rWz +rWz +rWz +rWz +njn hZE kbv mbx -aar -com -aap -aao -sxT +njn +ePz +cGR +jsA +uqs ael afK ahc air ael -isW -ajt -ali +sgH +qdJ +xIj mOi -wCT -sIf -isC -isC +eXy +vRA +ezq +ezq 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 +sfz +qdJ +qTS +nIN +nIN +xzh +oIY +nIN +aGm +qoM +xzh +gNo +nIN aDS aPT hGV -qVM -iBt -iBt -iBt -iBt -qVM -vGk -csz -czu +nIN +rgL +rgL +rgL +rgL +nIN +jtU +vpf +woU aag aag aag @@ -120879,18 +121735,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 @@ -120906,11 +121762,11 @@ xHp diJ rHf jeb -aLG -aNO -aYT -aNO -aLG +fZE +meQ +iEM +meQ +fZE bCx bqZ cNf @@ -120930,11 +121786,11 @@ nuK dVe bqZ bCx -buH -bHa -rrV -bHa -buH +oSM +awE +vOZ +awE +oSM vra bMq drj @@ -120950,18 +121806,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 @@ -120990,71 +121846,71 @@ aag aag aag aag -lYA -aap -amN -aar -aar -aar -aar -aar -aar +vHn +tob +hUb +njn +njn +njn +njn +njn +njn laM kbv nkH -aar -tAV -sTB -xfk -wKn +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 +cDP +qdJ +muW +aZv +gNo +gNo +pga +nIN +nIN +nIN +rBD +nIN +nIN oIa aPT bqY -qVM -qVM -qVM -qVM -qVM -qVM -csz -csz -czu +nIN +nIN +nIN +nIN +nIN +nIN +vpf +vpf +woU aag aag aag @@ -121077,23 +121933,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 @@ -121109,11 +121965,11 @@ xHp xwl vlX jeb -aLG -aNO -aYV -bai -bbg +fZE +meQ +cmL +czR +jzT bCy bDS cNf @@ -121133,11 +121989,11 @@ qnC dVe cac bCy -bzK -bHb -bHV -bHa -rbX +hQf +sTU +xLX +awE +hCf vra asX qUq @@ -121153,23 +122009,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 @@ -121193,71 +122049,71 @@ aag aag aag aag -lYA -wFm -abe -aar -aIZ -aIZ -aIZ -aLC -aar +vHn +tJq +bLf +njn +rWz +rWz +rWz +jXN +njn hZE kbv mbx -aar -lIl -aar -aar -aar +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 +trx +gnK +aNE +nIN +nIN +nIN +nIN +nIN +uig +hPL +xzh +dMj +nIN aDS aPT hGV -qVM -iBt -iBt -iBt -fgo -qVM -lJg -csz -czu +nIN +rgL +rgL +rgL +laD +nIN +wUJ +vpf +woU aag aag aag @@ -121280,43 +122136,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 @@ -121336,11 +122192,11 @@ iXb pzV cad bdd -oLT -iEb -bHW -bHa -buH +vMA +oYi +sIR +awE +oSM vra vra eUh @@ -121349,30 +122205,30 @@ lzq nyQ nhx eiq -teu +oEA wXH xBQ mSU wVy vra vra -cmd -cmh -wAR -bGb -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 @@ -121396,71 +122252,71 @@ aag aag aag aag -lYA -aao -ahk -aar -aIZ -aIZ -aIZ -aIZ -aar +vHn +hoT +rGz +njn +rWz +rWz +rWz +rWz +njn hHe gxn gKd -aar -aao -aao -wkL -mts +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 +nIN +aGm +gNo +xzh +gNo +nIN lCL pMA gcm -qVM -iBt -iBt -iBt -iBt -qVM -hkx -vGk -czu +nIN +rgL +rgL +rgL +rgL +nIN +uNz +jtU +woU aag aag aag @@ -121483,23 +122339,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 @@ -121515,11 +122371,11 @@ gAA cGV tkN jeb -aWM -aNO -aYX -gjn -bbi +hjQ +meQ +fNd +oUi +qdV bdd bDU bqZ @@ -121539,11 +122395,11 @@ bqZ bqZ cae bdd -bGg -bHd -bHX -bHa -buH +huP +nbu +kcg +awE +oSM vra gNq hXb @@ -121559,23 +122415,23 @@ cgo skF gNq vra -ajX -ajX -ajX -bGb -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 @@ -121599,71 +122455,71 @@ aag aag aag aag -lYA -aap -eGF -aar -aIZ -aIZ -aIZ -aIZ +vHn +tob +alh +njn +rWz +rWz +rWz +rWz bWh hmj kbv fZo -aar -hLB -aao -aao -laY +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 +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 @@ -121686,23 +122542,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 @@ -121718,11 +122574,11 @@ xHp cGV nBa jeb -beB -beB -aYW -bzV -cBA +atH +atH +dAm +aCX +suH bdd beQ beQ @@ -121742,11 +122598,11 @@ beQ beQ beQ bdd -bRQ -cbS -bHW -bJz -bJz +oCb +wwv +sIR +brq +brq vra bMu hXb @@ -121762,23 +122618,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 @@ -121802,71 +122658,71 @@ aag aag aag aag -lYA -cIU -aao -aar -aIZ -aIZ -aIZ -aIZ -aar +vHn +btV +hoT +njn +rWz +rWz +rWz +rWz +njn mAF ilq pjj -aar -xYe -kZH -aao -frY +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 +nIN +xzh +gNo +xzh +lbO +nIN gfN efj sxE -qVM -iBt -iBt -iBt -iBt -qVM -toE -ofs -czu +nIN +rgL +rgL +rgL +rgL +nIN +kUL +tMU +woU aag aag aag @@ -121889,23 +122745,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 @@ -121921,11 +122777,11 @@ xHp aUi iow jeb -aLG -aNO -aYY -bal -bbj +fZE +meQ +rTA +tAW +stR bCz bDV bGw @@ -121945,18 +122801,18 @@ bGw bGw bGw bCz -buH -iEb -bHW -bHa -vMx +oSM +oYi +sIR +awE +dnP vra wTw bNE wDJ ivs nyQ -wPa +vqI vWB bSK nyQ @@ -121965,23 +122821,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 @@ -122005,71 +122861,71 @@ aag aag aag aag -lYA -aap -aap -aar -aIZ -aIZ -aIZ -aIZ -aar +vHn +tob +tob +njn +rWz +rWz +rWz +rWz +njn xXT sVV tkR -aar -mko -uaZ -aap -svC +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 +nIN +xzh +gNo +dMj +vNo +nIN nme sfT vAH -qVM -iBt -iBt -iBt -iBt -qVM -gKS -csz -czu +nIN +rgL +rgL +rgL +rgL +nIN +edG +vpf +woU aag aag aag @@ -122092,23 +122948,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 @@ -122124,11 +122980,11 @@ aQL aQL aQL aQL -pGM -aNO -aYW -sLE -aLG +dQV +meQ +dAm +fEF +fZE bCA bCA bdj @@ -122148,11 +123004,11 @@ bCA bdj bCA bCA -buH -iEb -bHW -bHa -bIR +oSM +oYi +sIR +awE +gvK bJC bJC bJC @@ -122168,23 +123024,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 @@ -122208,71 +123064,71 @@ aag aag aag aag -lYA -aao -aao -aar -aar -aar -aar -aar -aar +vHn +hoT +hoT +njn +njn +njn +njn +njn +njn ehL kyr chb -aar -aar -aar -tiM -aar -aar +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 +nIN +rBD +nIN +nIN +nIN +nIN tCx ncG tZg -qVM -qVM -qVM -qVM -qVM -qVM -vGk -vGk -czu +nIN +nIN +nIN +nIN +nIN +nIN +jtU +jtU +woU aag aag aag @@ -122295,23 +123151,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 @@ -122327,11 +123183,11 @@ aQL mJP bSn aQL -vHs -ehH -aYZ -sLE -bAV +hEm +kti +eFa +fEF +exQ bCB bCB bCB @@ -122351,11 +123207,11 @@ bCB bCB bCB bCB -cbv -iEb -bHY -mru -syP +uuI +oYi +mkx +bIW +eMZ bJC jSp lAQ @@ -122371,23 +123227,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 @@ -122411,31 +123267,31 @@ aag aag aag aag -lYA -aao -aap -gXh -aao -aap -aap -ahg -aiv +vHn +hoT +tob +lso +hoT +tob +tob +hqm +rpG cSa aeA sjz -aiv -ahg -aap -aap -aao -rfg +hbl +qYz +cGR +cGR +jsA +cdZ aiw ahh aiw nph -aiC -ajF -aiC +xIj +poD +xIj ioU mSz nIG @@ -122451,31 +123307,31 @@ iKf aGN qrv aHq -cgJ -ajG -aiC +vcG +qdJ +xIj aGz ckd mQC aHM -xCX -vGk -vGk -aip -vzl -xCX +aZv +xzh +xzh +kya +qoM +aZv wcm lJY guo -xCX -weU -csz -gYS -vGk -vGk -csz -csz -czu +rXF +fLi +vpf +uBx +jtU +jtU +vpf +vpf +woU aag aag aag @@ -122498,23 +123354,23 @@ aKQ aaa aaa aab -aKW -rJb -yaG -aKW -bbC -aan -aan -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -hhw -hhw +kyw +vaV +qxJ +wDr +lFw +wWt +wWt +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +aLT +aLT aLT sXt aMQ @@ -122530,11 +123386,11 @@ aTw aUj kLk aQL -mTn -aiy -aYZ -sLE -bbk +npw +vzi +eFa +fEF +rbd bdk bdk bgR @@ -122554,11 +123410,11 @@ myJ eKI bdk bdk -bGh -iEb -bHY -njy -hkE +cxF +oYi +mkx +fic +kjW bJC ojF bNG @@ -122575,22 +123431,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 @@ -122615,30 +123471,30 @@ aag aag aag abh -aar -aar -tiM -aar -aar -aar -aar -aar +cGd +cGd +moK +cGd +cGd +cGd +cGd +cGd wYa nBK mzS -aar -aar -aar -aar -aap -aar +njn +njn +njn +njn +cGR +njn afP ahh aiw nph -aiC -anG -aiC +xIj +yiu +xIj ioU ioU ioU @@ -122654,30 +123510,30 @@ aGN aGN pSU aHq -czM -ajG -aiC +upW +qdJ +xIj aGz drk mQC mkG -qVM -oLw -qVM -qVM -qVM -qVM +nIN +qHT +nIN +nIN +nIN +nIN nuM uHr xwX -qVM -qVM -qVM -qVM -qVM -xeG -qVM -qVM +mRU +mRU +mRU +mRU +mRU +gBs +mRU +mRU uOi aag aag @@ -122701,10 +123557,10 @@ aKQ aaa aaa aab -aKW -aLf -aaz -aKW +kyw +lfx +gUn +wDr bdY bdY bdY @@ -122715,8 +123571,8 @@ aaF aaF aaF aaF -aKW -hhw +wDr +aLT aLT aLT aLT @@ -122734,10 +123590,10 @@ aQL aQL aQL aQL -uQn -aYZ -sLE -bbl +uBj +eFa +fEF +wMB bdl bdl bdl @@ -122746,9 +123602,9 @@ bdl bdl bGo bGo -bPB +qjY pCr -bRR +jpD cpK cpK bdl @@ -122757,10 +123613,10 @@ bdl bdl bdl bdl -bGi -iEb -bHY -oyy +opd +oYi +mkx +jwP bJC bJC bJC @@ -122778,8 +123634,8 @@ bSJ bSJ bSJ bSJ -fiq -yhQ +ljv +wDr anm anm anm @@ -122790,10 +123646,10 @@ anm pfp pfp pfp -yhQ -scI -oed -yhQ +wDr +nEl +xbg +lyW aaa aab aaa @@ -122832,16 +123688,16 @@ aeA bbe aeA aeA -aar -aap -aar +njn +cGR +njn afQ aiw aiw nph -aiC -anG -aiC +xIj +yiu +xIj ioU lPO vJg @@ -122857,16 +123713,16 @@ eEo aGN rub aHq -cES -ajG -aiC +sgH +qdJ +xIj aGz eqB obC hcf -qVM -lau -qVM +nIN +nhN +nIN lJY lJY lFK @@ -122904,10 +123760,10 @@ aKQ aaa aaa aab -aKW -aSm -aLf -aKW +kyw +oxn +oxn +wDr bdY bdY bdY @@ -122918,8 +123774,8 @@ aaF aaF aaF aaF -aKW -hhw +wDr +aLT aLT bbY bdr @@ -122937,17 +123793,17 @@ brn aRT buM aQL -aLG -aYZ -sLE -bbl +fZE +eFa +fEF +wMB bdl bEr bEs bIs bdm rbY -gwD +eAG bOK bPD bYa @@ -122960,10 +123816,10 @@ bYu nmK caf bdl -bGj -iEb -bHY -buH +oDU +oYi +mkx +oSM bJC cdT cfo @@ -122981,8 +123837,8 @@ clI clg clW bSJ -fiq -yhQ +ljv +wDr anm anm anm @@ -122993,10 +123849,10 @@ anm pfp pfp pfp -yhQ -wlp -oed -yhQ +wDr +cZI +xGT +lyW aaa aab aaa @@ -123035,16 +123891,16 @@ asA amF kmE aeA -aar -awJ -aar +njn +xzx +njn ahJ ahJ ahJ adO -aiC -ajF -aiC +xIj +poD +xIj ioU dnS viN @@ -123060,16 +123916,16 @@ aRi aGN qrv aHq -aOS -ajG -aiC +fsh +qdJ +xIj aUH aGz aGz aGz -qVM -hoX -qVM +nIN +lZJ +nIN lJY qbx dcp @@ -123107,10 +123963,10 @@ aKQ aaa aaa aab -aKW -bhC -aSm -aKW +emA +vIg +vIg +wDr bdY bdY bdY @@ -123121,8 +123977,8 @@ aaF aaF aaF aaF -aKW -hhw +wDr +aLT aLT bca aMC @@ -123140,10 +123996,10 @@ aQL aUY buN aQL -aLG -aYZ -sLE -bbl +fZE +eFa +fEF +wMB bdl bDX bCA @@ -123163,10 +124019,10 @@ rIH tUh cag bdl -bGk -iEb -bHY -buH +jDz +oYi +mkx +oSM bJC cdU bMy @@ -123184,8 +124040,8 @@ bSJ bVo clX bSJ -fiq -yhQ +ljv +wDr anm anm anm @@ -123196,10 +124052,10 @@ anm pfp pfp pfp -yhQ -scI -uqH -yhQ +wDr +cOo +rJf +tcO aaa aab aaa @@ -123238,16 +124094,16 @@ 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 @@ -123263,16 +124119,16 @@ 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 @@ -123310,22 +124166,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 @@ -123343,10 +124199,10 @@ aQL aQL aQL aQL -pGM -aYZ -sLE -bbm +dQV +eFa +fEF +fNH bdl bDY bCA @@ -123366,10 +124222,10 @@ jac bCA cah bdl -bGl -iEb -bHY -bIR +wPi +oYi +mkx +gvK bJC bJC bJC @@ -123387,22 +124243,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 @@ -123441,16 +124297,16 @@ aeC aeC ajs aeC -aGD -aWd -eTO -anR -anR -lNl -aFW -aSy -anH -aoB +mzS +aeC +oZI +fjo +fjo +opu +hlj +iso +dPB +mrO alL alL alL @@ -123466,16 +124322,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 @@ -123513,22 +124369,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 @@ -123546,10 +124402,10 @@ brr aUZ buO aQL -aLG -aYZ -sLE -jJs +fZE +eFa +fEF +tLZ bdl bDZ bdj @@ -123569,10 +124425,10 @@ jac xxa cai bdl -bII -iEb -bHY -buH +tkg +oYi +mkx +oSM bJC cdV bMx @@ -123590,22 +124446,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 @@ -123637,23 +124493,23 @@ 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 +lDH +emL jvY jvY jvY @@ -123669,23 +124525,23 @@ 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 @@ -123716,22 +124572,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 @@ -123749,17 +124605,17 @@ brr aRT buO aQL -aLG -aYZ -sLE -bkY +fZE +eFa +fEF +xpc bdl lOr lOr iwI bdl bdl -bEt +reH bNP bmD bNP @@ -123772,10 +124628,10 @@ bYv tiE tiE bdl -rqw -iEb -bHY -buH +fJt +oYi +mkx +oSM bJC cdV cfo @@ -123793,22 +124649,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 @@ -123840,23 +124696,23 @@ 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 +mGL +qXh jvY arg atf @@ -123872,23 +124728,23 @@ 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 @@ -123919,22 +124775,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 @@ -123952,16 +124808,16 @@ brs aRT bew aQL -beB -aYW -bzV -beB +atH +dAm +aCX +atH mCo iwZ -lBF +jFy bKA -sbM -pWA +oNW +dmF pXV bNP bmD @@ -123975,10 +124831,10 @@ eHa cmo xAB mCo -bJz -cbS -bHW -bJz +brq +wwv +sIR +brq bJC bKX cfo @@ -123996,22 +124852,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 @@ -124043,23 +124899,23 @@ 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 +xIj +oXP jvY arh atm @@ -124075,23 +124931,23 @@ 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 @@ -124126,18 +124982,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 @@ -124155,10 +125011,10 @@ brr aRT buO aQL -aXS -aYZ -kfP -tBF +jpW +eFa +svw +mzv bmv bEg bGU @@ -124178,10 +125034,10 @@ bYw nDM bWL sSa -qLp -lYi -bIb -mHm +bRo +dOG +gKw +tgz bJC cdV cfo @@ -124199,18 +125055,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 @@ -124246,23 +125102,23 @@ 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 +kXD +eol jvY ari aoP @@ -124278,23 +125134,23 @@ 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 @@ -124329,18 +125185,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 @@ -124358,10 +125214,10 @@ brr aUY buO aQL -aLG -aYZ -sLE -jJs +fZE +eFa +fEF +tLZ mCo bEh bNQ @@ -124381,10 +125237,10 @@ bKA cXR cal mCo -pJJ -iEb -bHY -buH +wcD +oYi +mkx +oSM bJC cdV bMy @@ -124402,18 +125258,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 @@ -124456,16 +125312,16 @@ aeC aeC ajs aeC -psm -xlX +cMx +qbw aep afj afk agM aep -alG -aYj -aoD +lLt +jrc +wdE jvY arj atm @@ -124481,16 +125337,16 @@ bzD atm aOs jvY -alG -anG -apd +lLt +yiu +vCv aep aHS afk sHo aep -sFR -vuv +cnm +yat vcE kUV vcE @@ -124532,18 +125388,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 @@ -124561,10 +125417,10 @@ aQL aQL aQL aQL -aLG -aYZ -sLE -qFb +fZE +eFa +fEF +bNr bdl bEi bZr @@ -124584,10 +125440,10 @@ bKA cir bdl bdl -lgX -iEb -bHY -buH +sXC +oYi +mkx +oSM bJC bJC bJC @@ -124605,18 +125461,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 @@ -124659,16 +125515,16 @@ aeC aeA ajk aeA -psm -xlX +cMx +qbw aep afk afk afk aep -alG -aYj -aoD +lLt +jrc +wdE jvY ark atm @@ -124684,16 +125540,16 @@ axo atm thv jvY -alG -anG -apd +lLt +yiu +vCv aep afk aHl afk aep -kMq -vuv +rZZ +yat lJY itR kKR @@ -124744,9 +125600,9 @@ aaa aaa aaa aaa -wVb -eFH -hlz +emA +ikT +jEM aLT bcE aMB @@ -124764,10 +125620,10 @@ brt aUZ buS aQL -aLG -aYZ -sLE -jJs +fZE +eFa +fEF +tLZ bdl brp bZr @@ -124786,11 +125642,11 @@ bNQ bNQ bNQ bGz -hMs -cbw -iEb -bHY -buH +egD +oQn +oYi +mkx +oSM bJC cdX bMx @@ -124808,9 +125664,9 @@ clL bVn clZ bSJ -dGz -cAH -vTK +tgm +xhO +tcO aaa aaa aaa @@ -124862,16 +125718,16 @@ asA amF ohL aeA -psm -dmQ +cMx +oVo aep aep aep aep aep -alJ -aYj -aoD +umI +ddO +sRC jvY alL atk @@ -124887,16 +125743,16 @@ jvY aAy alL jvY -alG -anG -apd +umI +juj +umI aep aep aep aep aep -cBi -vuv +lla +yat lJY ucw dcp @@ -124936,6 +125792,8 @@ aaa aab aaa aaa +bdH +bdH aaa aaa aaa @@ -124945,11 +125803,9 @@ aaa aaa aaa aaa -aaa -aaa -wVb -iDm -hlz +emA +qGC +jEM aLT bcE bdr @@ -124967,10 +125823,10 @@ brt bpC buS aQL -aNn -aYZ -sLE -jJs +bMf +eFa +fEF +tLZ bdl bEl wup @@ -124989,11 +125845,11 @@ krN krN krN oqY -can -buH -iEb -bHY -buH +lde +oSM +oYi +mkx +oSM bJC cdX cfo @@ -125011,19 +125867,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 @@ -125065,16 +125921,16 @@ ntI aeA aeC puO -psm -xlX -egS +cMx +qbw +xnh aep aep aep aep -alG -aYj -aoD +sHI +cNC +cla jvY arl atm @@ -125090,16 +125946,16 @@ alL aMo aOt jvY -alG -anG -apf +sHI +lOn +wCe oIB jgr -gGp -dMf +cXz +rtc oIB -sFR -vuv +cnm +yat lJY uxC lJY @@ -125139,6 +125995,8 @@ aaa aab aaa aaa +bdH +bdH aaa aaa aaa @@ -125148,11 +126006,9 @@ aaa aaa aaa aaa -aaa -aaa -wVb -eFH -hlz +emA +ikT +jEM aLT abS bdr @@ -125170,10 +126026,10 @@ brs bpC abT aQL -beB -aYW -bzV -beB +atH +dAm +aCX +atH bdl buz bZr @@ -125192,11 +126048,11 @@ ibc uly bNN vbR -pky -cbv -cbS -bHW -bJz +eGq +uuI +wwv +sIR +brq bJC ack cfo @@ -125214,19 +126070,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 @@ -125262,22 +126118,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 +cNC +cla jvY abF atm @@ -125293,22 +126149,22 @@ aIT atm aVF jvY -alG -aYD -uPI +sHI +aPC +pKH oIB fXE kaS aiQ oIB -sFR -vuv -vuv -vuv -vuv -sdw -vuv -vuv +cnm +yat +yat +kNq +kNq +qDB +kNq +kNq vcE bXe vcE @@ -125342,6 +126198,8 @@ aaa aab aaa aaa +bdH +bdH aaa aaa aaa @@ -125351,11 +126209,9 @@ aaa aaa aaa aaa -aaa -aaa -wVb -hlz -eFH +emA +jEM +ikT aLT bcE aMC @@ -125373,10 +126229,10 @@ brt aUY buS aQL -aLG -aYZ -sLE -uBw +fZE +eFa +fEF +hvz bdl bEm bZr @@ -125396,10 +126252,10 @@ uys uys uys uys -iRr -iEb -bHY -buH +bfd +oYi +mkx +oSM bJC cdX bMy @@ -125417,19 +126273,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 @@ -125465,22 +126321,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 +pqY +cla jvY jvY jvY @@ -125496,22 +126352,22 @@ jvY jvY jvY jvY -sUF -anG -apd +sjG +lOn +qhT oIB wqr bZw xUV oIB -sFR -hPo -vuv -dnk -rCp -fbx -cEO -vuv +cnm +cjm +yat +toD +wDq +aPO +sNP +kNq vcE bXe vcE @@ -125556,9 +126412,9 @@ aaa aaa aaa aaa -wVb -qnP -jPf +emA +rIV +dYc aLT aLT aLT @@ -125576,10 +126432,10 @@ aQL aQL aQL aQL -bxx -byF -bzW -bxx +edn +qRd +gtH +edn bdl bpT bNN @@ -125599,10 +126455,10 @@ dyx eYr bUo uys -cbz -cbU -ccu -cbz +kKB +rsL +jts +kKB bJC bJC bJC @@ -125620,19 +126476,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 @@ -125668,22 +126524,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 +pqY +cla alL urM dBG @@ -125699,22 +126555,22 @@ jvY wjv fDG alL -alG -aYD -aTS +sHI +aPC +tzF qgK tEB uBM dXo oIB -lBR -nVu -vuv -jvI -cxo -fbx -jnk -vuv +fME +kon +yat +swG +jei +aPO +hIX +kNq vcE pxJ swM @@ -125759,9 +126615,9 @@ aaa aaa aaa aaa -wVb -hlz -moE +emA +jEM +kDd aLT bdJ bds @@ -125779,14 +126635,14 @@ aQL bsS mqK aQL -aLG -aYZ -sLE -jJs +bqc +tcS +mww +sZe bdl bEp bCA -bCA +wlh cvb bmC nwG @@ -125802,10 +126658,10 @@ dyx hGN pVx uys -ttM -iEb -ccv -bIS +wKm +ekM +aVM +wVm bJC cfp cgu @@ -125823,19 +126679,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 @@ -125865,28 +126721,28 @@ 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 +fTl +taw +taw +taw +mRI +taw +cMx +vPT +iAI +cMx +wTn +cMx +cLd +qbw +pTI +cMx +oVo +oVo +cMx +nWf +cNC +igC aqe amw anO @@ -125902,28 +126758,28 @@ arq anO qaV kwd -aSB -anG -mPX +acQ +lOn +qhT oIB wKF 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 @@ -125962,9 +126818,9 @@ aaa aaa aaa aaa -wVb -hlz -eFH +emA +jEM +ikT aLT beT bdr @@ -125982,15 +126838,15 @@ ihY bpC dnE aQL -kgr -aYW -bzV -beB +qfI +dpA +ggo +lhs bdl ycp ycp tPj -mnf +ycp ycp bdl bdl @@ -126005,10 +126861,10 @@ uys uys uys uys -bJz -cbS -bJz -bHW +gyw +bFX +gyw +hza bJC bMA cfo @@ -126026,19 +126882,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 @@ -126068,28 +126924,28 @@ 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 +wHr +vGi aqg arr atn @@ -126105,28 +126961,28 @@ atn atn aOB aRj -aSC -aZH -iAB +rUN +hft +swn oIB 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 @@ -126165,9 +127021,9 @@ aaa aaa aaa aaa -wVb -tAi -eFH +emA +sEg +ikT aLT aLT aLT @@ -126185,17 +127041,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 @@ -126208,10 +127064,10 @@ sgc xCa bUy bdl -qYt -iEb -bHa -bIT +eTx +ekM +cJs +pOW bJC bJC bJC @@ -126229,9 +127085,9 @@ bSJ bSJ bSJ bSJ -nOG -cAH -vTK +cZp +xhO +tcO aaa aaa aaa @@ -126271,28 +127127,28 @@ 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 +tof +jao kwd amA atq @@ -126308,28 +127164,28 @@ atq atq aoT kwd -rFY -ctC -gPF +acQ +tof +wCe oIB -opI +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 @@ -126368,9 +127224,9 @@ aaa aaa aaa aaa -wVb -hlz -eFH +emA +jEM +ikT aLT beT bdr @@ -126388,10 +127244,10 @@ mUx bpC dnE aQL -aLG -aYZ -sLE -jJs +bqc +tcS +mww +sZe bdl fgm bdj @@ -126411,10 +127267,10 @@ fYZ vYC noj hpS -pJJ -iEb -bHa -bIT +gyE +ekM +cJs +pOW bJC bMA cfo @@ -126432,9 +127288,9 @@ clH oFV bVq bSJ -fTx -lGr -vTK +vUJ +hCq +tcO aaa aaa aaa @@ -126474,28 +127330,28 @@ 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 +tof +eLV alO ars amx @@ -126511,9 +127367,9 @@ amx amx aOC alO -aEp -lIw -aEp +sHI +tof +qhT loP loP loP @@ -126522,17 +127378,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 @@ -126571,9 +127427,9 @@ aaa aaa aaa aaa -wVb -eFH -hlz +emA +ikT +jEM aLT beU bdv @@ -126591,13 +127447,13 @@ aQL bsW xvX aQL -aLG -txe -baq -jJs +bqc +noI +dJG +sZe bdl ntd -iVj +jCm eqb mLR hdE @@ -126614,10 +127470,10 @@ scH nzO kxL hpS -pJJ -vzu -vYi -bIT +gyE +nzt +jhs +pOW bJC cfq cgv @@ -126635,9 +127491,9 @@ bSJ clN clT bSJ -cJP -vuR -vTK +xsv +gEh +tcO aaa aaa aaa @@ -126677,28 +127533,28 @@ 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 +tof +eLV inw amA amx @@ -126714,9 +127570,9 @@ atq amx aoT inw -aiB -anJ -mnG +sHI +tof +nii loP iwB tOC @@ -126725,17 +127581,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 @@ -126774,9 +127630,9 @@ aaa aaa aaa aaa -wVb -iDm -hlz +emA +qGC +jEM aLT aLT aLT @@ -126794,10 +127650,10 @@ aQL aQL aQL aQL -aLG -aYO -kBK -hyt +bqc +ubQ +fpM +bEk bdl tFS bdj @@ -126817,10 +127673,10 @@ jaR mJa wWP rsK -aGc -kkE -iEb -bIT +cBC +feo +ekM +pOW bJC bJC bJC @@ -126838,9 +127694,9 @@ bSJ bSJ bSJ bSJ -wGi -woG -vTK +goM +tfQ +tcO aaa aaa aaa @@ -126880,28 +127736,28 @@ 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 +fTl +taw +taw +taw +wTn +wOv +tuJ +iKV +oxy +oQL +oFr +cMx +xnX +qbw +oVo +cMx +oVo +oVo +cMx +sHI +tof +ycA aqj arw anP @@ -126917,9 +127773,9 @@ atq atq wwJ inw -alG -aYj -apd +sHI +cNC +qhT loP joG sDu @@ -126928,17 +127784,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 @@ -126973,13 +127829,13 @@ aaa aaa aaa aaa -wVb -wVb -wVb -wVb -wVb -eFH -eFH +emA +emA +emA +emA +emA +ikT +ikT aLT vZb tnY @@ -126997,10 +127853,10 @@ aUZ uqA bES kcl -aLG -aYO -sou -bAX +bqc +ubQ +uPX +rHr bdl wIr aQy @@ -127020,10 +127876,10 @@ nPT bdl bdl bdl -dhU -vzq -iEb -bIT +jLg +uEO +ekM +pOW hNw wos bMC @@ -127041,13 +127897,13 @@ hcI hcI vPK bSJ -nOG -vuR -vTK -vTK -vTK -vTK -vTK +cZp +gEh +tcO +tcO +tcO +tcO +tcO aaa aaa aaa @@ -127083,28 +127939,28 @@ 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 +tof +cla inw qHM emn @@ -127120,9 +127976,9 @@ amx amx aBs inw -alG -aYj -apd +sHI +cNC +qhT loP kxo wSn @@ -127131,17 +127987,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 @@ -127176,13 +128032,13 @@ aaa aaa aaa aaa -wVb -fTR -qaD -jeU -dHk -hlz -eFH +emA +hyb +kjY +kcG +tIF +jEM +ikT aWT aMH beV @@ -127200,9 +128056,9 @@ aSE aVf bES kcl -aLG -aZg -bar +bqc +sUk +slo bdl bdl bdl @@ -127217,16 +128073,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 @@ -127244,13 +128100,13 @@ aMI wGE erG ewO -bWb -cAH -luk -rQj -ngs -gai -vTK +sEu +xhO +ffx +jhK +srl +lWY +tcO aaa aaa aaa @@ -127286,28 +128142,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 +vTE +kGS +tof +dFB alO alO alO @@ -127323,9 +128179,9 @@ atq atq aBs alO -alG -aDZ -aWd +sHI +tof +kGS fTF xBY xBY @@ -127334,17 +128190,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 @@ -127379,13 +128235,13 @@ aaa aaa aaa aaa -wVb -vjx -eFH -eFH -eFH -eFH -eFH +emA +jkN +ikT +ikT +ikT +ikT +ikT aLT aZf duV @@ -127403,33 +128259,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 @@ -127447,13 +128303,13 @@ jGR jGR oqu bSJ -vuR -vuR -vuR -vuR -vuR -cAH -vTK +gEh +gEh +gEh +gEh +gEh +xhO +tcO aaa aaa aaa @@ -127489,28 +128345,28 @@ 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 +tof +sJN alO gKZ vTv @@ -127526,9 +128382,9 @@ atq atq aBs alO -alJ -aYj -apd +uSk +cNC +qhT gdS wSn kXN @@ -127537,17 +128393,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 @@ -127582,9 +128438,9 @@ aaa aaa aaa aaa -wVb -ilZ -eFH +emA +fGi +ikT aLT aLT aLT @@ -127606,16 +128462,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 @@ -127623,16 +128479,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 @@ -127654,9 +128510,9 @@ bSJ bSJ bSJ bSJ -vuR -ydx -vTK +gEh +dFL +tcO aaa aaa aaa @@ -127692,28 +128548,28 @@ 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 +tof +sJN alO arz atq @@ -127729,28 +128585,28 @@ auB 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 @@ -127785,9 +128641,9 @@ aaa aaa aaa aaa -wVb -hlz -eFH +emA +jEM +ikT aLT bBg vPv @@ -127809,9 +128665,9 @@ brA aVf lQz aQL -aLG -aZi -aLG +bqc +qIf +bqc bbs cbh xYP @@ -127833,9 +128689,9 @@ tez gsm bCM bbr -buH -iEb -bIT +uPE +ekM +pOW bJC jht jZv @@ -127857,9 +128713,9 @@ qNd hzu hcI bSJ -cAH -cAH -vTK +xhO +xhO +tcO aaa aaa aaa @@ -127895,28 +128751,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 +tof +sJN alO arz atq @@ -127932,9 +128788,9 @@ aIU aMq aOG alO -alG -aDZ -apd +sHI +tof +qhT loP loP loP @@ -127944,16 +128800,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 @@ -127988,9 +128844,9 @@ aaa aaa aaa aaa -wVb -hlz -hlz +emA +jEM +jEM aLT nuN nuN @@ -128012,9 +128868,9 @@ bOG aVf iaq aQL -aLG -aZi -aLG +bqc +qIf +bqc bbs bKD vTS @@ -128036,9 +128892,9 @@ tez ccQ bCN bbr -buH -iEb -bIT +uPE +ekM +pOW bJC cjC jZv @@ -128060,9 +128916,9 @@ rYp oEo oEo bSJ -cAH -cea -vTK +xhO +lMO +tcO aaa aaa aaa @@ -128098,28 +128954,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 +tof +sJN alO arz atq @@ -128135,9 +128991,9 @@ xBe xBe xBe xBe -alG -aDZ -apd +sHI +tof +qhT jWh eFK wGd @@ -128147,16 +129003,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 @@ -128191,9 +129047,9 @@ aaa aaa aaa aaa -wVb -rVo -hlz +emA +oPF +jEM aLT vug vug @@ -128215,9 +129071,9 @@ bRg aVf aQL aQL -fvK -aZi -aLG +ylN +qIf +bqc bbs ydM xYP @@ -128239,9 +129095,9 @@ tez ccQ cdn bbr -buH -iEb -bIT +uPE +ekM +pOW bJC bJC kGF @@ -128263,9 +129119,9 @@ yle wWX wWX bSJ -cAH -bpJ -vTK +xhO +xHa +tcO aaa aaa aaa @@ -128301,29 +129157,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 +tof +sJN +xHt arm ats auO @@ -128338,9 +129194,9 @@ aIV qqr arH xBe -alG -aDZ -apd +sHI +tof +qhT vXd duF hSk @@ -128350,16 +129206,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 @@ -128394,9 +129250,9 @@ aaa aaa aaa aaa -wVb -qnP -uia +emA +rIV +nvI aLT iPS vAE @@ -128418,9 +129274,9 @@ jOi aVf bES kcl -aLG -aZi -aLG +bqc +qIf +bqc bbs dvs xYP @@ -128442,9 +129298,9 @@ tez ccQ bCM bbr -buH -iEb -bIT +uPE +ekM +pOW hNw sZq lef @@ -128466,9 +129322,9 @@ vSW scy kPJ bSJ -cAH -ubd -vTK +xhO +eeR +tcO aaa aaa aaa @@ -128504,28 +129360,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 +qSp alO arA att @@ -128541,9 +129397,9 @@ azo aJg abR xBe -alG -aDZ -apf +sHI +tof +wCe jWh oih khE @@ -128553,16 +129409,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 @@ -128597,9 +129453,9 @@ aaa aaa aaa aaa -wVb -tAi -moE +emA +sEg +kDd aLT aLT aLT @@ -128621,9 +129477,9 @@ vfx aVf bES kcl -beB -byI -beB +lhs +uvh +lhs kFY jmK bDL @@ -128645,9 +129501,9 @@ tez ccQ bCN jhb -jiw -cbS -bHW +kAj +bFX +hza hNw sZq ltI @@ -128669,9 +129525,9 @@ bSJ bSJ bSJ bSJ -pUY -emG -vTK +qid +lNk +tcO aaa aaa aaa @@ -128707,28 +129563,28 @@ 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 +fTl +oxy +cMx +cMH +qvF +lat +cMx +aOS +tlM +dan +cMx +cMx +cMx +fVk +cMx +cMx +cMx +cMx +cMx +nWf +tof +qhT wDM wDM wDM @@ -128744,9 +129600,9 @@ atv auV amE xBe -alG -aDZ -apd +sHI +tof +qhT jWh jWh uUz @@ -128756,16 +129612,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 @@ -128800,9 +129656,9 @@ aaa aaa aaa aaa -wVb -wzg -eFH +emA +eTD +ikT aLT bBg vPv @@ -128824,9 +129680,9 @@ bRV bSe bES kcl -aLG -aZi -aLG +bqc +qIf +bqc bBd aPr bfl @@ -128848,9 +129704,9 @@ bSb bEa bFp bBd -buH -iEb -bIT +uPE +ekM +pOW hNw sZq lwJ @@ -128872,9 +129728,9 @@ mAV hzu hcI bSJ -jea -cAH -vTK +rqz +xhO +tcO aaa aaa aaa @@ -128910,17 +129766,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 @@ -128929,9 +129785,9 @@ tfb tfb tfb ptK -alG -aYj -apd +sHI +cNC +qhT wDM aOM aoW @@ -128947,9 +129803,9 @@ atv auV amE xBe -alG -aYj -apd +sHI +cNC +qhT jWh xXa xXa @@ -128959,16 +129815,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 @@ -129003,9 +129859,9 @@ aaa aaa aaa aaa -wVb -jMi -eFH +emA +efP +ikT aLT cjc cjc @@ -129027,9 +129883,9 @@ csZ odB aQL aQL -aLG -aZg -tBF +bqc +sUk +ade bBe bFq bfm @@ -129051,9 +129907,9 @@ bCD bEb bFq bBe -bFu -fpO -bIT +hWD +iyC +pOW bJC bJC rbH @@ -129075,9 +129931,9 @@ yfm fXN fXN bSJ -vuR -cAH -vTK +gEh +xhO +tcO aaa aaa aaa @@ -129113,17 +129969,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 @@ -129132,9 +129988,9 @@ jhx jhx dnH gpc -aWd -aYj -apd +tzF +pqY +qhT wDM uto aoX @@ -129150,9 +130006,9 @@ nNY qKi abR xBe -alJ -ajR -aTS +uSk +wHr +tzF dEt soP pDr @@ -129162,16 +130018,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 @@ -129206,9 +130062,9 @@ aaa aaa aaa aaa -wVb -pQG -eFH +emA +uzv +ikT aLT cjc cjc @@ -129230,9 +130086,9 @@ vil bpC qZX aQL -kEb -aZi -bad +pjP +qIf +lfz bbs cdp cdp @@ -129254,9 +130110,9 @@ fJO fJO fJO bbs -nmD -iEb -twT +wMI +ekM +oHt bJC lbf cft @@ -129278,9 +130134,9 @@ yfm fXN fXN bSJ -cAH -ydx -vTK +xhO +dFL +tcO aaa aaa aaa @@ -129316,13 +130172,13 @@ aag aag aag aag -pVZ -ano -meS -cbA -aRG -bsF -psm +fTl +wTn +mOE +sWp +nUm +moL +taw mDJ owg xUA @@ -129335,9 +130191,9 @@ nwU owg owg ptK -wOh -ajP -apd +sHI +cNC +qhT wDM aOQ fxI @@ -129353,9 +130209,9 @@ azp qJf anV xBe -alG -aYj -apd +sHI +cNC +qhT jWh iqH khE @@ -129365,16 +130221,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 @@ -129409,9 +130265,9 @@ aaa aaa aaa aaa -wVb -fhA -eFH +emA +hfO +ikT aLT iPS vAE @@ -129433,9 +130289,9 @@ vil bpC qDq kbc -aLG -aYO -aLG +bqc +ubQ +bqc bbs bdw bfo @@ -129457,9 +130313,9 @@ lJu bEd bFs bbs -buH -iEb -bIT +uPE +ekM +pOW fzq oXb cft @@ -129481,9 +130337,9 @@ gEo scy kPJ bSJ -vuR -ebO -vTK +gEh +pFr +tcO aaa aaa aaa @@ -129519,13 +130375,13 @@ aag aag aag aag -pVZ -xlX -xlX -ePs -xlX -xlX -hSu +fTl +oxy +oxy +tIN +oxy +oxy +kiR owg owg uKV @@ -129538,9 +130394,9 @@ eNi eNi eNi eNi -alG -aDZ -apf +sHI +tof +wCe wDM aOH aJf @@ -129556,9 +130412,9 @@ xBe xBe xBe xBe -alG -aYj -wSk +sHI +cNC +xmP jWh jWh jlQ @@ -129568,16 +130424,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 @@ -129612,9 +130468,9 @@ aaa aaa aaa aaa -wVb -vjx -eFH +emA +jkN +ikT aLT aLT aLT @@ -129636,9 +130492,9 @@ ngA koC koC xGE -aem -mUa -aLG +jno +fqw +bqc lgy ccb xYP @@ -129660,9 +130516,9 @@ rXk xYP jew laU -buH -jGN -bJb +uPE +dEL +rzy uCM lNw eFj @@ -129684,9 +130540,9 @@ bSJ bSJ bSJ bSJ -vuR -tAR -vTK +gEh +kMR +tcO aaa aaa aaa @@ -129722,13 +130578,13 @@ aah aag aag aag -pVZ -alT -iHF -voA -aRV -aRV -psm +fTl +pWw +hbE +cbc +qIa +qIa +taw ptK afX ptK @@ -129741,9 +130597,9 @@ olO wiG nWN eNi -alG -aYj -apd +sHI +cNC +qhT wDM wDM wDM @@ -129759,9 +130615,9 @@ aJh arq ufx alR -alG -aYj -apf +sHI +cNC +wCe jWh hSk hSk @@ -129771,16 +130627,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 @@ -129815,14 +130671,14 @@ aaa aaa aaa aaa -wVb -fTR -hlz -hlz -hlz -hlz -fTR -hlz +emA +hyb +jEM +jEM +jEM +jEM +hyb +jEM aLT cjc cjc @@ -129839,9 +130695,9 @@ jOx bpC qDq aQL -jKA -aYT -beB +nYR +bww +lhs lgy bsG xYP @@ -129863,9 +130719,9 @@ lJu xYP hLI laU -drt -rZF -bJz +gyw +uNQ +gyw bJC oXb cfo @@ -129882,14 +130738,14 @@ kPJ fXN fXN bSJ -rHs -ngs -vuR -cAH -cAH -cAH -fKl -vTK +enY +srl +gEh +xhO +xhO +xhO +jay +tcO aaa aaa aaa @@ -129925,13 +130781,13 @@ aaa aad aag aag -pVZ -anu -auD -tIU -nEG -jXY -psm +fTl +prX +oYs +odG +biC +qlu +taw bKm hsr mDJ @@ -129944,9 +130800,9 @@ ueG rPt jyE eNi -alG -aYj -apd +sHI +cNC +qhT hwC rcS amx @@ -129962,9 +130818,9 @@ aJi azs atq alR -alG -aYj -apd +sHI +cNC +qhT jlQ tst uUe @@ -129974,16 +130830,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 @@ -130018,14 +130874,14 @@ aaa aaa aaa aaa -wVb -wVb -wVb -wVb -wVb -hlz -eFH -hlz +emA +emA +emA +emA +emA +jEM +ikT +jEM aLT iPS vAE @@ -130042,9 +130898,9 @@ jOx bpC ksp aQL -aLG -bSY -aWR +bqc +wqO +wxD cau bCG cgE @@ -130064,11 +130920,11 @@ xYP jmK hcw cgE -hLI +yht blq -bIT -jHe -bIS +ddL +eZR +uPE bJC kIP cfo @@ -130085,14 +130941,14 @@ oer vSW scy bSJ -tSr -pUY -lGr -vTK -vTK -vTK -vTK -vTK +mCE +qid +hCq +tcO +tcO +tcO +tcO +tcO aaa aaa aaa @@ -130128,13 +130984,13 @@ aaa aad aag aag -pVZ -pVZ -pVZ -pVZ -pVZ -pVZ -pVZ +fTl +fTl +fTl +fTl +fTl +fTl +fTl qJx hsr mDJ @@ -130147,9 +131003,9 @@ iKD rPt rPt eNi -alG -aYj -apd +sHI +cNC +qhT alR amA atq @@ -130165,9 +131021,9 @@ aJj aMD atq alR -alG -aYj -apd +sHI +cNC +qhT jlQ tZZ gLz @@ -130177,16 +131033,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 @@ -130225,10 +131081,10 @@ aaa aaa aaa aaa -wVb -rVo -eFH -hlz +emA +oPF +ikT +jEM aLT meY meY @@ -130245,9 +131101,9 @@ pyl pDt aQL aQL -aLG -aYO -aLG +bqc +ubQ +bqc lgy ccN xYP @@ -130267,11 +131123,11 @@ wLm wLm lJu xYP -hLI +wbV laU -eUz -iEb -bIT +uPE +vuV +uPE bJC bJC vLA @@ -130288,10 +131144,10 @@ oer oer oer oer -ybr -vuR -ebO -vTK +uVp +gEh +pFr +tcO aaa aaa aaa @@ -130350,9 +131206,9 @@ eNi eNi gIh eNi -geH -aDZ -apd +hGb +tof +qhT alR amA atq @@ -130368,9 +131224,9 @@ amA ayl amx alR -alG -aYj -apd +sHI +cNC +qhT jWh jmQ vcu @@ -130428,18 +131284,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 @@ -130448,9 +131304,9 @@ jOx bpC qZX aQL -aLG -aYO -aLG +bqc +ubQ +bqc lgy ccb xYP @@ -130472,9 +131328,9 @@ rXk xYP jew laU -buH -iEb -bIT +uPE +vuV +uPE bJC lbf cfo @@ -130483,18 +131339,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 @@ -130553,9 +131409,9 @@ aWb dyK vzK wYY -alG -aDZ -apd +sHI +tof +qhT alR amA atq @@ -130571,9 +131427,9 @@ aJl amx atq alR -alG -aYj -apd +sHI +cNC +qhT jlQ snE sGL @@ -130631,18 +131487,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 @@ -130651,9 +131507,9 @@ jOx bpC qDq bTb -aLG -aYO -aLG +bqc +ubQ +bqc bbs ccd ccN @@ -130675,9 +131531,9 @@ lJu huK jeQ bbs -buH -iEb -bIT +uPE +vuV +uPE xSw oXb cfo @@ -130686,18 +131542,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 @@ -130756,9 +131612,9 @@ tii eJX sAC wYY -alG -aDZ -apd +sHI +tof +qhT alR amA amx @@ -130774,9 +131630,9 @@ aJk amx atq alR -alG -aYj -apd +sHI +cNC +qhT jlQ tZZ cBj @@ -130834,18 +131690,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 +oBr aQL qDq qDq @@ -130854,9 +131710,9 @@ osA cHl cHl bTb -beB -aYT -beB +lhs +bww +lhs bbs cdp cdp @@ -130878,9 +131734,9 @@ fJO fJO fJO bbs -bJz -cbS -bHW +gyw +uNQ +gyw xSw ejo ejo @@ -130889,18 +131745,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 @@ -130959,9 +131815,9 @@ sjj fzP sAC wYY -alG -aYj -apd +sHI +cNC +qhT alR amA atq @@ -130977,9 +131833,9 @@ xEO xEO lnP alR -alG -aYj -apf +sHI +cNC +wCe jWh qLs qLs @@ -131046,9 +131902,9 @@ aaa aaa aaa aaa -wVb -iDm -fTR +emA +qGC +hyb aQL ksp ksp @@ -131057,33 +131913,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 @@ -131092,10 +131948,10 @@ kIP qer kIP bJC -cAH -pFP -ebO -vTK +xhO +wYd +pFr +tcO aaa aaa aaa @@ -131162,9 +132018,9 @@ fcM uzE qsL nim -qhc -ajP -apd +noe +pqY +qhT alR amA atq @@ -131180,9 +132036,9 @@ iWR iWR kbx alR -alG -aYj -apd +sHI +cNC +qhT jWh jWh jlQ @@ -131249,9 +132105,9 @@ aaa aaa aaa aaa -wVb -eFH -hlz +emA +ikT +jEM aQL aQL aQL @@ -131260,33 +132116,33 @@ ksp 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 @@ -131295,10 +132151,10 @@ bJC bJC bJC bJC -vuR -vuR -vuR -vTK +gEh +gEh +gEh +tcO aaa aaa aaa @@ -131365,9 +132221,9 @@ xlC gyO kTN eNi -alJ -aYj -apd +uSk +cNC +qhT alR amA atq @@ -131383,14 +132239,14 @@ xEO xEO aOV alR -alG -aYj -apd +sHI +cNC +qhT jWh -kUw -dod -eNv -rxV +wFQ +bop +vyI +jnp thV fCL uIv @@ -131452,56 +132308,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 @@ -131568,9 +132424,9 @@ oNb iFC qAA eNi -alG -aDZ -apd +sHI +tof +qhT alR arK atc @@ -131586,15 +132442,15 @@ aJq aMG aOW alR -alG -aYj -apd +sHI +cNC +qhT jWh -tZP -hSk -hSk +bXy +bop +vyI +vyI vyI -thV fCL uIv hSk @@ -131655,56 +132511,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 +emA +kAv +jEM +ikT +ikT +jEM +jEM +gCu +ikT +ikT +oBr +oBr +qPn +oBr +oBr +jxX +knl +pum +jAj +kKY +kKY oJk lNR lNR -lNR +oJk lNR lNR oJk -bWV -jkd -bYE -bZz -cav -bBa -haq -haq -lAA -haq -haq -cAH -cAH -cAH -cAH -cAH -cAH -cAH -cAH -cAH -ngs -vTK +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 @@ -131771,9 +132627,9 @@ eNi eNi eNi eNi -aEp -lIw -aEp +sHI +tof +qhT alO alO alO @@ -131789,14 +132645,14 @@ alO alO alO alO -aEp -lIw -aEp +sHI +cNC +qhT jWh -nDL -vyI +wFQ +bop vyI -wTJ +wKc thV uWV uIv @@ -131858,22 +132714,22 @@ aaa aaa aaa aaa -wVb -epA -wDm -hlz -hlz -hlz -hlz -gwF -hlz -hlz -rdK -aYc -hlz -hlz -rdK -rdK +emA +qFS +pPG +jEM +jEM +jEM +jEM +gCu +jEM +jEM +oBr +sRM +jEM +jEM +oBr +oBr sqg rPQ sqg @@ -131891,23 +132747,23 @@ oJk sqg mgu sqg -haq -haq -cAH -vuR -cAH -cAH -vuR -vuR -vuR -cAH -cAH -cAH -cAH -vuR -sIV -hBU -vTK +ljv +ljv +xhO +gEh +xhO +xhO +gEh +gEh +gEh +xhO +xhO +xhO +xhO +gEh +aEr +keO +tcO aaa aaa aaa @@ -131974,9 +132830,9 @@ dWX owg owg ptK -aGD -aPb -apj +knU +oOZ +hdP aqq aPa eky @@ -131992,9 +132848,9 @@ eky eky aPa aqq -aGD -aPb -kff +knU +oOZ +doX jWh xXa xXa @@ -132061,22 +132917,22 @@ aaa aaa aaa aaa -wVb -pIk -bNT -wul -eFH -eFH -eFH -ybS -wul -hlz -hlz -hlz -hlz -eFH -eFH -rdK +emA +twp +iyE +ecb +ikT +ikT +ikT +ctp +ecb +jEM +jEM +jEM +jEM +ikT +ikT +oBr fcS gdJ oyR @@ -132094,23 +132950,23 @@ oJk ppn nAY cjt -haq -pFM -hzV -vuR -vuR -vuR -cAH -fXd -cAH -vuR -cAH -vuR -vuR -rgA -brX -mfI -vTK +ljv +ceY +gIm +gEh +gEh +gEh +xhO +wra +xhO +gEh +xhO +gEh +gEh +sOD +eMx +xgr +tcO aaa aaa aaa @@ -132177,9 +133033,9 @@ keR jhx keR dwI -aTS -wqq -agJ +tzF +eIY +vER hal uYg nau @@ -132195,9 +133051,9 @@ uYg nau uYg hal -aGC -wqq -aTS +sVv +eIY +tzF mPh soP tWi @@ -132264,22 +133120,22 @@ aaa aaa aaa aaa -wVb -wVb -wVb -wVb -wVb -wVb -wVb +emA +emA +emA +emA +emA +emA +emA vgw sqg sqg sqg mpP sqg -rdK -iDm -rdK +oBr +qGC +oBr fcS gdJ oyR @@ -132297,23 +133153,23 @@ oJk pkA nAY cjt -haq -vuR -haq +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 @@ -132380,9 +133236,9 @@ kPG kPG cVw ptK -aIe -anR -lNl +eJg +bkb +pvi aqq eky aNl @@ -132398,9 +133254,9 @@ eky aNl eky aqq -aIe -iYj -lNl +eJg +lqL +pvi jWh tim uWV @@ -132481,9 +133337,9 @@ sqg rwB lKM sqg -vsV -rdK -fcS +nSq +oBr +sKf gdJ cjt pRZ @@ -132500,8 +133356,8 @@ pRZ fcS nAY jOE -haq -mHR +ljv +mPc sqg qEL vmE @@ -132583,9 +133439,9 @@ ucp cIW ptK ptK -psm -dKm -psm +xga +kgV +xga aHe jlT exi @@ -132601,9 +133457,9 @@ eky ins wRP aHe -vuv -vuv -vuv +eZm +eZm +eZm jWh jWh sWC @@ -132684,8 +133540,8 @@ sqg eKy wQA sqg -hlz -rdK +jEM +oBr uYn jaM oXM @@ -132703,8 +133559,8 @@ mkP muQ ojh nxx -haq -cAH +ljv +xhO sqg gEC skC @@ -132786,9 +133642,9 @@ gPc trB exy ptK -psm -psm -psm +fLl +fLl +fLl eky eky aNl @@ -132804,9 +133660,9 @@ eky aNl eky rqj -vuv -nfS -emx +eZm +jYm +aZI jWh duz hXG @@ -132989,9 +133845,9 @@ eet fcP pDh ptK -xlX -xlX -hSu +aqZ +aqZ +ptQ aMT aMT dPm @@ -133007,9 +133863,9 @@ okg dPm aMT aMT -iEs -cxo -cxo +hbp +mwP +mwP jWh axR mIP @@ -133192,9 +134048,9 @@ wxj lht rYv ptK -dmQ -jBB -psm +haO +pKB +fLl svf arV wZX @@ -133210,9 +134066,9 @@ eky wZX arV vUh -vuv -xct -cxo +eZm +xUy +mwP jWh vpv pgw @@ -133395,9 +134251,9 @@ ptK afX ptK ptK -dmQ -psm -psm +haO +fLl +fLl lDn arV wZX @@ -133413,9 +134269,9 @@ eky wZX arV wkA -vuv -vuv -cxo +eZm +eZm +mwP jWh jWh kLc @@ -133459,21 +134315,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 @@ -133590,16 +134446,16 @@ bdH uMc bNM ofK -psm -kSd -dmQ -tZm -dmQ -xlX -hWU -dmQ -aeq -psm +fLl +uxl +haO +ebf +haO +aqZ +tot +haO +qqS +fLl xrq vVu arV @@ -133617,16 +134473,16 @@ wZX arV oIt xrq -vuv -ahb -cxo -nJy -boC -cxo -iwh -kfv -vGr -vuv +eZm +qHG +mwP +xQW +vJR +mwP +hkz +ckj +oaw +eZm lbB uIv pql @@ -133662,21 +134518,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 @@ -133793,16 +134649,16 @@ bdH uMc bNM ofK -psm -kSd -dmQ -nwu -dmQ -xlX -rwb -dmQ -jXY -psm +fLl +uxl +haO +uLG +haO +aqZ +pbo +haO +xLn +fLl vlk mKy aMT @@ -133820,16 +134676,16 @@ sQO aMT wNS vlk -vuv -woM -nqD -cxo -boC -cxo -qMf -wUN -jgC -vuv +eZm +oHg +uiK +mwP +vJR +mwP +jrB +eoK +xTG +eZm lbB uIv pql @@ -133865,21 +134721,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 @@ -133902,8 +134758,8 @@ aWZ qAB gEC sqg -rEb -qXR +aIh +eTb kkW iwf uFg @@ -133921,8 +134777,8 @@ vXo gWu xMl lft -qXR -rEb +eTb +aIh sqg siN cjt @@ -133996,21 +134852,21 @@ bdH uMc bNM rtd -hSu -xlX -xlX -xlX -xlX -xlX -aiE -dmQ -atD -psm -psm -vjd -aRp -jBX -akS +ptQ +aqZ +aqZ +aqZ +aqZ +aqZ +leM +haO +iYm +fLl +fLl +wRk +eky +wZX +vUh aHe oxU bsy @@ -134018,21 +134874,21 @@ oir gzw shh aHe -tKf -jBX -aRp -quy -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 @@ -134068,21 +134924,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 @@ -134105,14 +134961,14 @@ ggQ pYS ivS sqg -jqT -qXR +ppM +eTb hbs -vZU +xJV elx jnI oJk -qqJ +xef dPQ ams eni @@ -134124,8 +134980,8 @@ nYn elx mDL fSF -qXR -jqT +eTb +ppM sqg lvh iks @@ -134199,17 +135055,17 @@ bdH cuC htb 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 @@ -134225,17 +135081,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 @@ -134271,21 +135127,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 @@ -134308,8 +135164,8 @@ aep mkL gEC sqg -jqT -qXR +ppM +eTb hsy hsy baJ @@ -134327,8 +135183,8 @@ foC kph hsy hsy -qXR -oGF +eTb +eUe sqg wWl trh @@ -134405,14 +135261,14 @@ tgK tfb wuT lMx -pVZ -pVZ -pVZ -pVZ -pVZ -pVZ -pVZ -pVZ +gJF +gJF +gJF +gJF +gJF +gJF +gJF +gJF aPw avu mhG @@ -134428,14 +135284,14 @@ dxK dPC aMU aPw -qMu -qMu -qMu -qMu -qMu -qMu -qMu -qMu +wxy +wxy +wxy +wxy +wxy +wxy +wxy +wxy jFY qKY jHL @@ -134474,21 +135330,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 @@ -134511,27 +135367,27 @@ wpS fZA fEe sqg -jqT -jqT +ppM +ppM hsy shL uXk mlF hsy -hgV -osM -ghX +ckZ +hmv +hmv dTS -okQ -xIO -nxZ +hmv +hmv +ckZ hsy tos uXk tkn hsy -rEb -jqT +aIh +ppM sqg fEe nqW @@ -134677,21 +135533,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 @@ -134714,8 +135570,8 @@ vgw vgw vgw vgw -rEb -rEb +aIh +aIh hsy wed uXk @@ -134733,8 +135589,8 @@ tos uXk wed hsy -pJt -hAY +qBS +lib vgw vgw vgw @@ -134880,10 +135736,10 @@ aaa aKQ aaa aaa -aab -aaa -aaa -aaa +aak +bdH +bdH +bdH bdH bdH bdH @@ -134916,11 +135772,11 @@ aah aag aag aag -gXZ -gBM -jqT +nic +tmQ +ppM hsy -npn +txS bVN oGJ xpZ @@ -134934,11 +135790,11 @@ coH oTO uqh iAE -gNG +sct hsy -nNC -iuA -gXZ +iWa +fZR +nic aag aag aag @@ -135083,10 +135939,10 @@ aaa aKQ aaa aaa -aab -aaa -aaa -aaa +aak +bdH +bdH +bdH bdH bdH bdH @@ -135119,29 +135975,29 @@ bdH aad aag aag -gXZ -rEb -rEb +nic +aIh +aIh hsy -cGe +fCT uXk rae jIV pzM mtZ -bqP -fyd -qYo +hmv +hmv +hmv fQn pzM nac xNf uXk -fbH +slv hsy -rEb -rEb -gXZ +aIh +aIh +nic aag aag ajZ @@ -135286,10 +136142,10 @@ aaa aKQ aaa aaa -aab -aaa -aaa -aaa +aak +bdH +bdH +bdH bdH bdH bdH @@ -135322,29 +136178,29 @@ bdH aad aag aag -gXZ -jqT -jqT +nic +ppM +ppM hsy -ebt +igs nCn oGJ uSW kzO vaZ kYL -dLi +hmv sCV rjO suY pdK uqh pJr -fbH +slv hsy -rEb -rEb -gXZ +aIh +aIh +nic aag aag ajZ @@ -135489,10 +136345,10 @@ aaa aKQ aaa aaa -aab -aaa -aaa -aaa +aak +bdH +bdH +bdH bdH bdH bdH @@ -135525,29 +136381,29 @@ bdH aad aag aag -gXZ -rEb -jqT +nic +aIh +ppM hsy hsy -vVX +wTB mlF uXk hmw gSa mtZ -nbv +hmv fQn wSV ulp uXk tos -fbH +slv hsy hsy -jqT -oGF -gXZ +ppM +eUe +nic aag aag ajZ @@ -135692,10 +136548,10 @@ aaa aKQ aaa aaa -aab -aaa -aaa -aaa +aak +bdH +bdH +bdH bdH bdH bdH @@ -135728,29 +136584,29 @@ bdH aad aag aag -gXZ -rEb -rEb -rEb +nic +aIh +aIh +aIh hsy -hwd +ygP mlF hsy -kag +hcX fQn mtZ -xxl +hmv fQn mtZ -dKc +hmv hsy beL -hwd +ygP hsy -cGI -rEb -rEb -gXZ +cWb +aIh +aIh +nic aag aag ajZ @@ -135895,10 +136751,10 @@ aaa aKQ aaa aaa -aab -aaa -aaa -aaa +aak +bdH +bdH +bdH bdH bdH bdH @@ -135931,29 +136787,29 @@ bdH aad aag aag -gXZ -jqT -jqT -jqT +nic +ppM +ppM +ppM hsy ylh opH hsy -kJn +pvI fQn qoR aPU rjO mtZ -rDB +njS hsy iEw ylh hsy -xgZ -jqT -xgZ -gXZ +dDT +ppM +dDT +nic aag aag ajZ @@ -136134,29 +136990,29 @@ bdH aad aag aag -gXZ -gXZ -nTi -rEb +nic +nic +wsw +aIh hsy ylh mlF hsy -nFM +hmv eZp kzO pzM hip ptZ -urW +hmv hsy tos ylh hsy -pJt -uTa -gXZ -gXZ +qBS +piJ +nic +nic aag aag ajZ @@ -136300,9 +137156,9 @@ aaa aaa aKQ aaa -aaa -aab -aaa +bdH +aak +bdH bdH bdH bdH @@ -136338,9 +137194,9 @@ aad aag aag aag -gXZ -pJt -hAY +nic +qBS +lib hsy hsy suJ @@ -136356,9 +137212,9 @@ hsy wdv hsy hsy -fiI -jqT -gXZ +yjE +ppM +nic aag aag aag @@ -136503,9 +137359,9 @@ aaa aaa aKQ aaa -aaa -aab -aaa +bdH +aak +bdH bdH bdH bdH @@ -136541,9 +137397,9 @@ aad aag aag aag -gXZ -rEb -pRY +nic +aIh +vsi hsy uiC sIr @@ -136559,9 +137415,9 @@ rlc hfb hUk hsy -jqT -iuA -gXZ +ppM +fZR +nic aag aag aag @@ -136706,9 +137562,9 @@ aaa aaa aKQ aaa -aaa -aab -aaa +bdH +aak +bdH bdH bdH bdH @@ -136744,9 +137600,9 @@ aad aag aag aag -gXZ -jqT -jqT +nic +ppM +ppM hsy thc sIr @@ -136762,9 +137618,9 @@ pAm sIr fZl hsy -nYC -rEb -gXZ +mxV +aIh +nic aag aag aag @@ -136909,9 +137765,9 @@ aaa aaa aKQ aaa -aaa -aab -aaa +bdH +aak +bdH bdH bdH bdH @@ -136947,9 +137803,9 @@ aad aag aag aag -gXZ -rEb -rEb +nic +aIh +aIh hsy tIe uAK @@ -136965,9 +137821,9 @@ bVv nJa jPd hsy -jqT -htP -gXZ +ppM +eeC +nic aag aag aag @@ -137112,9 +137968,9 @@ aaa aaa aKQ aaa -aaa -aab -aaa +bdH +aak +bdH bdH bdH bdH @@ -137150,9 +138006,9 @@ aad aag aag aag -gXZ -jqT -jqT +nic +ppM +ppM hsy dPH sov @@ -137168,9 +138024,9 @@ pAm fZl oex hsy -rEb -rEb -gXZ +aIh +aIh +nic aag aag aag @@ -137315,9 +138171,9 @@ aaa aaa aKQ aaa -aaa -aab -aaa +bdH +aak +bdH bdH bdH bdH @@ -137353,9 +138209,9 @@ aad aag aag aag -gXZ -rEb -rEb +nic +aIh +aIh hsy rBv sov @@ -137371,9 +138227,9 @@ pAm fZl snt hsy -jqT -jqT -gXZ +ppM +ppM +nic aag aag aag @@ -137518,9 +138374,9 @@ aaa aaa aKQ aaa -aaa -aab -aaa +bdH +aak +bdH bdH bdH bdH @@ -137556,9 +138412,9 @@ aad aag aag aag -gXZ -jqT -jqT +nic +ppM +ppM hsy fqW qYq @@ -137574,9 +138430,9 @@ mQn wQD fqW hsy -rEb -rEb -gXZ +aIh +aIh +nic aag aag aag @@ -137720,10 +138576,10 @@ aab aaa aaa aKQ -aaa -aaa -aab -aab +bdH +bdH +aak +aak aak aak aak @@ -137759,9 +138615,9 @@ aad aag aag aag -gXZ -rEb -jqT +nic +aIh +ppM hsy hsy hsy @@ -137777,9 +138633,9 @@ hsy hsy hsy hsy -jqT -jqT -gXZ +ppM +ppM +nic aag aag aag @@ -137962,11 +138818,11 @@ aad aag aag aag -gXZ -rEb -jqT -lhW -lAU +nic +aIh +ppM +csd +dDJ hsy haz fQn @@ -137978,11 +138834,11 @@ pzM mtZ haz hsy -lAU -qqW -rEb -rEb -gXZ +dDJ +rXH +aIh +aIh +nic aag aag aag @@ -138165,11 +139021,11 @@ aad aag aag aag -gXZ -rEb -rEb -rEb -rEb +nic +aIh +aIh +aIh +aIh hsy haz pLt @@ -138181,11 +139037,11 @@ mZL lOX haz hsy -gfs -rEb -rEb -rEb -gXZ +fpi +aIh +aIh +aIh +nic aag aag aag @@ -138322,27 +139178,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 @@ -138368,11 +139224,11 @@ aad aag aag aag -gXZ -gXZ -fBd -uTa -uTa +nic +nic +mem +piJ +piJ hsy mkI aPS @@ -138384,11 +139240,11 @@ nop aPS ddf hsy -juF -jqT -iuA -gXZ -gXZ +atS +ppM +fZR +nic +nic aag aag aag @@ -138572,10 +139428,10 @@ aag aag aag aag -gXZ -rEb -jqT -fYN +nic +aIh +ppM +sER hsy hsy hsy @@ -138587,10 +139443,10 @@ hsy hsy hsy hsy -rEb -rEb -rEb -gXZ +aIh +aIh +aIh +nic aag aag aag @@ -138721,7 +139577,7 @@ aaa aab aaa aaa -aaa +bdH bdH bdH bdH @@ -138775,25 +139631,25 @@ aag aag aag aag -gXZ -rEb -jqT -rEb -jqT -hWS -rEb -hJN -jqT -jqT -jqT -hJN -rEb -cyy -jqT -jqT -jqT -rEb -gXZ +nic +aIh +ppM +aIh +ppM +puT +aIh +xrg +ppM +ppM +ppM +xrg +aIh +erE +ppM +ppM +ppM +aIh +nic aag aag aag @@ -138925,19 +139781,6 @@ aab aaa aaa bdH -bdH -bdH -bdH -bdH -bdH -bdH -lmz -lmz -lmz -lmz -lmz -lmz -lmz lmz lmz lmz @@ -138949,6 +139792,19 @@ lmz lmz lmz lmz +daz +daz +daz +daz +daz +daz +daz +daz +daz +daz +daz +daz +daz lmz lmz lmz @@ -139140,17 +139996,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 @@ -139339,21 +140195,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 +dDp +frM +lcg daz lmz lmz @@ -139533,29 +140389,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 +sEK +sEK +mlb lcg daz lmz @@ -139740,26 +140596,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 +cxc +kBy +kBy +gfu +fPB daz lmz lmz @@ -139942,34 +140798,34 @@ bdH lmz lmz lmz -lmz daz daz -hRW -asZ -vXh +eKJ +yaZ +ffE +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 @@ -140146,210 +141002,7 @@ 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 -daz -lmz -lmz -lmz -bdH -bdH -aak -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -aaa -aaa -aaa -aaa -gFP -lMb -lMb -lMb -lMb -lMb -lMb -lMb -lMb -lMb -lMb -lMb -lMb -lMb -lMb -lMb -gFP -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -"} -(285,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 -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 -bdH -lmz -lmz -lmz -daz -acJ +jYH ubA cck wyQ @@ -140357,19 +141010,19 @@ fmv ubA gMN mRn -itf -mHE -vAU -qwJ -fJY -kzT +dJO +vMt +dkz +aGk +ktQ +teZ wkM -oLm -fcX -kKv -kKv -dGl -dGl +ege +hWP +bZq +bZq +mIi +mIi daz lmz lmz @@ -140460,7 +141113,7 @@ aab aaa aaa "} -(286,1,1) = {" +(285,1,1) = {" aaa aaa aab @@ -140555,24 +141208,24 @@ daz cwS ffE vHa -wpw +nDy ffE ffE ffE jqP cLo -vfB +clw viB dIi qLS -vfB +erN wkM jvB -jvB -ieF -ieF -pJR -gPr +jtj +swx +swx +qKZ +gjv daz lmz lmz @@ -140604,7 +141257,6 @@ aaa aaa aaa gFP -vVI lMb lMb lMb @@ -140618,7 +141270,8 @@ lMb lMb lMb lMb -gsi +lMb +lMb gFP aaa aaa @@ -140663,7 +141316,7 @@ aab aaa aaa "} -(287,1,1) = {" +(286,1,1) = {" aaa aaa aab @@ -140758,24 +141411,24 @@ daz oRV ydI mdW -jaH +ios awu ydI aKs fMt -gOs -kXj -pYi -fMl -gUN -bLv +mEs +gbm +oBD +lFj +vyE +mTr wkM -xvM -osy -cBm -cBm -iZw -dQl +qNc +jdl +dpp +dpp +jgy +eii daz lmz lmz @@ -140807,21 +141460,21 @@ aaa aaa aaa gFP +vVI +lMb +lMb +lMb +lMb +lMb lMb -wgf lMb -qbD lMb -wgf lMb -qbD lMb -wgf lMb -qbD lMb -wgf lMb +gsi gFP aaa aaa @@ -140866,7 +141519,7 @@ aab aaa aaa "} -(288,1,1) = {" +(287,1,1) = {" aaa aaa aab @@ -140963,18 +141616,18 @@ eKJ yaZ ffE hZj -mUC +fQD daz daz daz tHu -rna -rna -gXs ebN ebN +gXs ebN daz +daz +daz wnh wnh daz @@ -141010,6 +141663,209 @@ aaa aaa aaa gFP +lMb +wgf +lMb +qbD +lMb +wgf +lMb +qbD +lMb +wgf +lMb +qbD +lMb +wgf +lMb +gFP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +"} +(288,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 +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 +bdH +lmz +lmz +lmz +lmz +daz +daz +ocB +nJH +rnH +daz +daz +sTV +daz +ebN +ebN +gbg +uVv +xwU +ebN +qQS +kBy +kBy +gfu +kBy +daz +lmz +lmz +lmz +bdH +bdH +bdH +aak +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +aaa +aaa +aaa +aaa +gFP gFP gFP gFP @@ -141069,210 +141925,7 @@ aab aaa aaa "} -(289,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 -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 -bdH -lmz -lmz -lmz -lmz -daz -daz -ocB -nJH -rnH -daz -daz -sTV -daz -rna -rna -gbg -uVv -erN -rna -qQS -kBy -kBy -gfu -kBy -daz -lmz -lmz -lmz -bdH -bdH -bdH -aak -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -"} -(290,1,1) = {" +(289,1,1) = {" aaa aaa aab @@ -141374,10 +142027,10 @@ tte hvw auf hTl -xDC +jrH xDC yaQ -bat +vLz mFN kSy dDp @@ -141475,7 +142128,7 @@ aab aaa aaa "} -(291,1,1) = {" +(290,1,1) = {" aaa aaa aab @@ -141567,20 +142220,20 @@ bdH lmz lmz lmz -lmz -lmz -lmz -lmz +daz +daz +daz +daz daz sbJ sbJ sbJ daz -jtj -avK -avK +rna +qRX +qQS aCd -avK +qQS mFN igr sEK @@ -141678,7 +142331,7 @@ aab aaa aaa "} -(292,1,1) = {" +(291,1,1) = {" aaa aaa aab @@ -141765,30 +142418,30 @@ aaa aaa aab aaa -aaa bdH -lmz -lmz -lmz -lmz +bdH lmz lmz lmz daz -ltc -eXk -xns -pTt -gAe -rCi +hWM +hWM +hWM +ebN +daz +ocL +qpY +daz +drU +itg gba -mUz +kRQ our -rna +ebN cxc kBy kBy -khJ +dzt gyN daz lmz @@ -141805,11 +142458,11 @@ bdH bdH bdH bdH -aaa -aaa -aaa -aaa -aaa +bdH +bdH +bdH +bdH +bdH bdH bdH bdH @@ -141881,7 +142534,7 @@ aab aaa aaa "} -(293,1,1) = {" +(292,1,1) = {" aaa aaa aab @@ -141973,18 +142626,18 @@ bdH lmz lmz lmz -lmz -lmz -lmz -lmz daz +hWM +fVx +hWM +ebN tId -wJB -tJN -daz -daz -daz +ltc +ltc daz +ebN +fCI +ebN daz daz daz @@ -142013,13 +142666,13 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bdH +bdH +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -142084,7 +142737,7 @@ aab aaa aaa "} -(294,1,1) = {" +(293,1,1) = {" aaa aaa aab @@ -142176,10 +142829,18 @@ bdH bdH bdH bdH -bdH -bdH -bdH -lmz +izf +hWM +qQS +hWM +ebN +tId +fVx +qQS +ebN +naj +itg +qQS daz daz daz @@ -142192,7 +142853,202 @@ lmz lmz lmz lmz -lmz +bdH +bdH +bdH +aak +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +"} +(294,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 +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 +aaa +bdH +bdH +bdH +vVk +cJI +fVx +hWM +ebN +tId +qQS +mIJ +wiu +xDC +yaQ +jtj +oZx +irr +irr +xsi +daz lmz lmz lmz @@ -142379,23 +143235,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 @@ -142578,27 +143434,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..3ffdaf8a1814 100644 --- a/maps/map_files/USS_Runtime/USS_Runtime.dmm +++ b/maps/map_files/USS_Runtime/USS_Runtime.dmm @@ -92,7 +92,7 @@ }, /area/event) "z" = ( -/obj/effect/landmark/start/pilot, +/obj/effect/landmark/start/pilot/dropship_pilot, /turf/open/floor/almayer{ icon_state = "plating" }, @@ -145,6 +145,12 @@ icon_state = "plating" }, /area/event) +"M" = ( +/obj/effect/landmark/start/pilot/cas_pilot, +/turf/open/floor/almayer{ + icon_state = "plating" + }, +/area/event) "N" = ( /obj/effect/landmark/start/nurse, /turf/open/floor/almayer{ @@ -289,7 +295,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 b593cfbd943a..5a4ce7045021 100644 --- a/maps/map_files/Whiskey_Outpost_v2/Whiskey_Outpost_v2.dmm +++ b/maps/map_files/Whiskey_Outpost_v2/Whiskey_Outpost_v2.dmm @@ -700,6 +700,13 @@ /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{ + dir = 10; + icon_state = "floor_plate" + }, +/area/whiskey_outpost/inside/engineering) "cC" = ( /obj/structure/sign/poster, /turf/closed/wall/r_wall, @@ -1397,76 +1404,6 @@ "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 - }, -/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 = 5; - icon_state = "whitegreen" - }, -/area/whiskey_outpost/inside/hospital) "fl" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/sentry, @@ -1929,13 +1866,6 @@ icon_state = "floor_plate" }, /area/whiskey_outpost/inside/cic) -"gX" = ( -/obj/structure/machinery/gel_refiller, -/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, @@ -2177,6 +2107,13 @@ icon_state = "whitegreen" }, /area/whiskey_outpost/inside/hospital) +"hH" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/whiskey_outpost/inside/engineering) "hI" = ( /turf/open/gm/grass/gbcorner/south_west, /area/whiskey_outpost/outside/lane/one_north) @@ -4286,6 +4223,13 @@ /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{ + dir = 10; + icon_state = "floor_plate" + }, +/area/whiskey_outpost/inside/engineering) "pm" = ( /obj/effect/decal/cleanable/blood/writing, /obj/item/weapon/gun/pistol/m4a3, @@ -4898,6 +4842,10 @@ "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, @@ -5058,16 +5006,6 @@ }, /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{ @@ -5446,13 +5384,6 @@ /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 @@ -5485,14 +5416,6 @@ icon_state = "darkyellowfull2" }, /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; @@ -5898,6 +5821,13 @@ }, /turf/open/floor/prison, /area/whiskey_outpost/inside/supply) +"uM" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/whiskey_outpost/inside/engineering) "uN" = ( /obj/structure/disposalpipe/sortjunction/untagged/flipped{ dir = 1 @@ -6554,6 +6484,14 @@ "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{ + dir = 10; + icon_state = "floor_plate" + }, +/area/whiskey_outpost/inside/engineering) "xg" = ( /turf/open/floor/prison{ dir = 4; @@ -7438,6 +7376,13 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/whiskey_outpost/inside/bunker) +"Ay" = ( +/obj/structure/machinery/gel_refiller, +/turf/open/floor{ + dir = 4; + icon_state = "whitegreen" + }, +/area/whiskey_outpost/inside/hospital) "AA" = ( /turf/open/jungle, /area/whiskey_outpost/outside/south/far) @@ -9779,6 +9724,14 @@ /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{ + dir = 10; + icon_state = "floor_plate" + }, +/area/whiskey_outpost/inside/engineering) "JB" = ( /obj/structure/disposalpipe/sortjunction{ dir = 1; @@ -11094,6 +11047,17 @@ }, /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{ + dir = 10; + icon_state = "floor_plate" + }, +/area/whiskey_outpost/inside/engineering) "PT" = ( /obj/structure/machinery/medical_pod/sleeper, /turf/open/floor{ @@ -12545,6 +12509,76 @@ icon_state = "floor_plate" }, /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 + }, +/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 + }, +/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 = 5; + icon_state = "whitegreen" + }, +/area/whiskey_outpost/inside/hospital) "Wk" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -19565,13 +19599,13 @@ WK ak ak ak -ak -mT -mT -mT -mT -mT -mT +nK +nK +nK +nK +nK +nK +nK mT mT mT @@ -19767,13 +19801,13 @@ aC qe ih Nr -ak -mT -mT -mT -mT -mT -mT +nK +uM +rq +fG +rq +PR +nK mT mT mT @@ -19970,11 +20004,11 @@ PB PM Ed nK -nK -nK -nK -nK -nK +pk +sP +rV +sP +cB nK nK nK @@ -20174,9 +20208,9 @@ PM nK qu re -rR +rV sP -tt +hH nK vl vR @@ -20376,9 +20410,9 @@ uI nK qx ri -rf +rV sP -ty +JA nK vl rV @@ -20578,9 +20612,9 @@ mh nK qu re -rf +rV sP -tt +hH nK vl rV @@ -20780,9 +20814,9 @@ nI Kr qC rs -fG +rV sP -ty +xc nK vl rV @@ -26217,8 +26251,8 @@ bG cb pq qz -fk -gX +Wj +Ay hD im iO diff --git a/maps/shuttles/dropship_alamo.dmm b/maps/shuttles/dropship_alamo.dmm index d23036afdea3..dd799ca7cd6e 100644 --- a/maps/shuttles/dropship_alamo.dmm +++ b/maps/shuttles/dropship_alamo.dmm @@ -18,14 +18,6 @@ /obj/structure/shuttle/part/dropship1/transparent/nose_center, /turf/template_noop, /area/shuttle/drop1/sulaco) -"bc" = ( -/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) "be" = ( /obj/structure/shuttle/part/dropship1/transparent/upper_right_wing, /turf/template_noop, @@ -81,15 +73,6 @@ icon_state = "floor8" }, /area/shuttle/drop1/sulaco) -"ed" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds1{ - dir = 1; - id = "starboard_door" - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shuttle/drop1/sulaco) "eD" = ( /obj/structure/shuttle/part/dropship1/transparent/engine_right_cap, /turf/template_noop, @@ -101,7 +84,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{ @@ -218,7 +201,7 @@ /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{ @@ -229,17 +212,9 @@ /obj/structure/shuttle/part/dropship1/transparent/left_outer_bottom_wing, /turf/template_noop, /area/shuttle/drop1/sulaco) -"sm" = ( -/obj/effect/attach_point/fuel/dropship1{ - attach_id = 10 - }, -/turf/closed/shuttle/dropship1/transparent{ - icon_state = "28" - }, -/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{ @@ -279,7 +254,7 @@ /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{ @@ -288,7 +263,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, @@ -319,6 +294,14 @@ icon_state = "63" }, /area/shuttle/drop1/sulaco) +"BM" = ( +/obj/effect/attach_point/crew_weapon/dropship1/floor{ + attach_id = 9 + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin15" + }, +/area/shuttle/drop1/sulaco) "BS" = ( /turf/closed/shuttle/dropship1{ icon_state = "48" @@ -358,7 +341,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, @@ -369,6 +352,15 @@ 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{ + icon_state = "rasputin15" + }, +/area/shuttle/drop1/sulaco) "Ho" = ( /obj/structure/machinery/computer/dropship_weapons/dropship1, /obj/structure/transmitter/rotary{ @@ -401,6 +393,23 @@ 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" @@ -408,23 +417,17 @@ /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) -"Kk" = ( -/obj/effect/attach_point/crew_weapon/dropship1/floor{ - attach_id = 7 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" +"Kt" = ( +/obj/structure/machinery/door/airlock/hatch/cockpit{ + dir = 1 }, -/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" @@ -442,30 +445,13 @@ /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{ icon_state = "64" }, /area/shuttle/drop1/sulaco) -"Nv" = ( -/obj/effect/attach_point/crew_weapon/dropship1/floor{ - attach_id = 8 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shuttle/drop1/sulaco) -"ND" = ( -/obj/effect/attach_point/fuel/dropship1{ - pixel_x = -32; - attach_id = 11 - }, -/turf/closed/shuttle/dropship1/transparent{ - icon_state = "33" - }, -/area/shuttle/drop1/sulaco) "NQ" = ( /obj/structure/shuttle/part/dropship1/transparent/left_inner_bottom_wing, /turf/template_noop, @@ -506,9 +492,9 @@ icon_state = "rasputin15" }, /area/shuttle/drop1/sulaco) -"PV" = ( +"PA" = ( /obj/effect/attach_point/crew_weapon/dropship1/floor{ - attach_id = 9 + attach_id = 7 }, /turf/open/shuttle/dropship{ icon_state = "rasputin15" @@ -539,7 +525,7 @@ /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, @@ -598,6 +584,14 @@ icon_state = "rasputin15" }, /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{ icon_state = "78" @@ -609,7 +603,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{ @@ -634,7 +628,15 @@ icon_state = "rasputin7" }, /area/shuttle/drop1/sulaco) -"XP" = ( +"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 @@ -643,13 +645,13 @@ icon_state = "rasputin15" }, /area/shuttle/drop1/sulaco) -"Ye" = ( -/obj/effect/attach_point/electronics/dropship1{ - dir = 1; - attach_id = 6 +"YV" = ( +/obj/effect/attach_point/crew_weapon/dropship1/floor{ + attach_id = 8 + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin15" }, -/obj/structure/shuttle/part/dropship1/transparent/inner_right_weapons, -/turf/template_noop, /area/shuttle/drop1/sulaco) "Za" = ( /turf/closed/shuttle/dropship1{ @@ -683,7 +685,7 @@ mb mb FA Oq -sm +XH iz EN mb @@ -700,7 +702,7 @@ Et iI JP il -XP +XI mW qn sA @@ -717,7 +719,7 @@ NQ mb mb mb -bc +UN oo TK ws @@ -787,7 +789,7 @@ ax EB Py tR -KC +Kt dU Ph BB @@ -796,11 +798,11 @@ BB OK OU il -Kk +PA il -Nv +YV il -PV +BM il mb mb @@ -855,7 +857,7 @@ Wg mb mb mb -Ye +IP oo TK cr @@ -884,7 +886,7 @@ iv zV MP il -ed +GQ nC nE rl @@ -913,7 +915,7 @@ mb mb eD Gw -ND +Iu qy Jm mb diff --git a/maps/shuttles/dropship_normandy.dmm b/maps/shuttles/dropship_normandy.dmm index e64fbe62372d..969e5927d3f8 100644 --- a/maps/shuttles/dropship_normandy.dmm +++ b/maps/shuttles/dropship_normandy.dmm @@ -15,6 +15,16 @@ icon_state = "rasputin15" }, /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" = ( /obj/structure/shuttle/part/dropship2/transparent/left_outer_bottom_wing, /turf/template_noop, @@ -36,6 +46,14 @@ /obj/structure/shuttle/part/dropship2/transparent/right_outer_bottom_wing, /turf/template_noop, /area/shuttle/drop2/sulaco) +"db" = ( +/obj/effect/attach_point/crew_weapon/dropship2/floor{ + attach_id = 7 + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin3" + }, +/area/shuttle/drop2/sulaco) "eu" = ( /turf/closed/shuttle/dropship2{ icon_state = "75" @@ -51,6 +69,14 @@ icon_state = "29" }, /area/shuttle/drop2/sulaco) +"ft" = ( +/obj/effect/attach_point/crew_weapon/dropship2/floor{ + attach_id = 8 + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin3" + }, +/area/shuttle/drop2/sulaco) "fx" = ( /turf/closed/shuttle/dropship2{ icon_state = "69" @@ -63,7 +89,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{ @@ -79,14 +105,6 @@ icon_state = "54" }, /area/shuttle/drop2/sulaco) -"gH" = ( -/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) "gP" = ( /obj/structure/bed/chair/dropship/pilot{ dir = 1 @@ -95,12 +113,22 @@ icon_state = "rasputin15" }, /area/shuttle/drop2/sulaco) -"hn" = ( -/obj/effect/attach_point/crew_weapon/dropship2/floor{ - attach_id = 8 +"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{ - icon_state = "rasputin3" + icon_state = "rasputin15" }, /area/shuttle/drop2/sulaco) "it" = ( @@ -118,7 +146,7 @@ /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{ @@ -151,6 +179,15 @@ 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{ + icon_state = "rasputin15" + }, +/area/shuttle/drop2/sulaco) "lz" = ( /obj/effect/attach_point/weapon/dropship2/right_fore, /obj/structure/shuttle/part/dropship2/transparent/outer_right_weapons, @@ -175,14 +212,6 @@ icon_state = "62" }, /area/shuttle/drop2/sulaco) -"mn" = ( -/obj/effect/attach_point/fuel/dropship2{ - attach_id = 10 - }, -/turf/closed/shuttle/dropship2/transparent{ - icon_state = "28" - }, -/area/shuttle/drop2/sulaco) "mz" = ( /obj/structure/machinery/camera/autoname/almayer/dropship_two{ dir = 4; @@ -200,15 +229,6 @@ icon_state = "rasputin15" }, /area/shuttle/drop2/sulaco) -"mA" = ( -/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) "nq" = ( /obj/effect/attach_point/weapon/dropship2/left_fore, /obj/structure/shuttle/part/dropship2/transparent/outer_left_weapons, @@ -216,7 +236,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, @@ -267,18 +287,26 @@ /obj/structure/shuttle/part/dropship2/transparent/upper_left_wing, /turf/template_noop, /area/shuttle/drop2/sulaco) -"vd" = ( +"ut" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ + id = "port_door"; + dir = 2 + }, /turf/open/shuttle/dropship{ - icon_state = "rasputin3" + icon_state = "rasputin15" }, /area/shuttle/drop2/sulaco) -"vh" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ - dir = 1; - id = "starboard_door" +"uC" = ( +/obj/effect/attach_point/crew_weapon/dropship2/floor{ + attach_id = 9 }, /turf/open/shuttle/dropship{ - icon_state = "rasputin15" + icon_state = "rasputin3" + }, +/area/shuttle/drop2/sulaco) +"vd" = ( +/turf/open/shuttle/dropship{ + icon_state = "rasputin3" }, /area/shuttle/drop2/sulaco) "wX" = ( @@ -325,14 +353,6 @@ icon_state = "56" }, /area/shuttle/drop2/sulaco) -"Bg" = ( -/obj/effect/attach_point/crew_weapon/dropship2/floor{ - attach_id = 7 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, -/area/shuttle/drop2/sulaco) "Bi" = ( /turf/closed/shuttle/dropship2/transparent{ icon_state = "97" @@ -362,6 +382,14 @@ icon_state = "rasputin4" }, /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{ icon_state = "35" @@ -477,14 +505,6 @@ /obj/structure/shuttle/part/dropship2/transparent/nose_top_left, /turf/template_noop, /area/shuttle/drop2/sulaco) -"MA" = ( -/obj/effect/attach_point/crew_weapon/dropship2/floor{ - attach_id = 9 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, -/area/shuttle/drop2/sulaco) "ME" = ( /turf/closed/shuttle/dropship2/transparent{ icon_state = "96" @@ -514,16 +534,7 @@ /area/shuttle/drop2/sulaco) "NM" = ( /obj/structure/shuttle/part/dropship2/left_outer_wing_connector, -/turf/open/space/basic, -/area/shuttle/drop2/sulaco) -"Od" = ( -/obj/effect/attach_point/fuel/dropship2{ - pixel_x = -32; - attach_id = 11 - }, -/turf/closed/shuttle/dropship2/transparent{ - icon_state = "33" - }, +/turf/template_noop, /area/shuttle/drop2/sulaco) "Ov" = ( /obj/structure/shuttle/part/dropship2/transparent/right_inner_bottom_wing, @@ -587,7 +598,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, @@ -607,7 +618,7 @@ /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, @@ -672,13 +683,6 @@ 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; @@ -715,7 +719,7 @@ Rr Rr BG SQ -mn +gV sk Xr Rr @@ -732,7 +736,7 @@ OI GE lJ PJ -mA +ut jc pU nS @@ -819,7 +823,7 @@ LY Bi MQ VZ -VW +lj GN bJ ZK @@ -828,11 +832,11 @@ Bb Iv rc vd -Bg +db vd -hn +ft vd -MA +uC PJ Rr Rr @@ -887,7 +891,7 @@ RJ Rr Rr Rr -gH +Dq yl SY it @@ -916,7 +920,7 @@ fI fx Tp PJ -vh +he gG RG QK @@ -945,7 +949,7 @@ Rr Rr yh UP -Od +ba zt Uu Rr diff --git a/maps/shuttles/escape_shuttle_e.dmm b/maps/shuttles/escape_shuttle_e.dmm index 0ba589df217e..65efffe43619 100644 --- a/maps/shuttles/escape_shuttle_e.dmm +++ b/maps/shuttles/escape_shuttle_e.dmm @@ -9,10 +9,10 @@ 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{ + icon_state = "floor0"; + dir = 8 }, /area/shuttle/escape_pod) "i" = ( @@ -53,10 +53,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,16 +63,16 @@ 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{ + icon_state = "floor4" }, -/turf/open/shuttle/escapepod, /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" = ( @@ -87,6 +83,15 @@ icon_state = "floor0" }, /area/shuttle/escape_pod) +"T" = ( +/obj/structure/machinery/cryopod/evacuation, +/obj/structure/sign/safety/cryo{ + pixel_x = -18 + }, +/turf/open/shuttle/escapepod{ + icon_state = "floor4" + }, +/area/shuttle/escape_pod) "W" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall4" @@ -98,20 +103,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..4b605503d7de 100644 --- a/maps/shuttles/escape_shuttle_e_cl.dmm +++ b/maps/shuttles/escape_shuttle_e_cl.dmm @@ -25,31 +25,24 @@ icon_state = "wall13" }, /area/shuttle/escape_pod) -"i" = ( -/obj/structure/machinery/cryopod/evacuation, -/obj/structure/sign/safety/cryo{ - pixel_x = -18 +"n" = ( +/turf/open/shuttle/escapepod{ + icon_state = "floor0"; + dir = 8 }, -/turf/open/shuttle/escapepod, /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, -/area/shuttle/escape_pod) -"v" = ( -/obj/structure/machinery/computer/shuttle/escape_pod_panel/liaison{ - pixel_y = 30 - }, /turf/open/shuttle/escapepod{ - icon_state = "floor0" + icon_state = "floor4" }, /area/shuttle/escape_pod) -"y" = ( +"D" = ( /obj/structure/machinery/door/airlock/evacuation/liaison{ name = "\improper Evacuation Airlock CL-1"; id_tag = "cl_evac" @@ -68,11 +61,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 +76,28 @@ 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{ + icon_state = "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{ + icon_state = "floor0" + }, +/area/shuttle/escape_pod) (1,1,1) = {" h @@ -103,22 +108,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..3095517f4bac 100644 --- a/maps/shuttles/escape_shuttle_n.dmm +++ b/maps/shuttles/escape_shuttle_n.dmm @@ -1,48 +1,64 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( +"g" = ( +/turf/closed/shuttle/escapepod, +/area/shuttle/escape_pod) +"i" = ( /turf/closed/shuttle/escapepod{ - icon_state = "wall6" + icon_state = "wall1" }, /area/shuttle/escape_pod) -"c" = ( -/obj/docking_port/mobile/crashable/escape_shuttle/n, +"k" = ( +/obj/structure/machinery/door/airlock/evacuation{ + dir = 2; + name = "\improper Evacuation Airlock PU-3" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/shuttle/escape_pod) +"l" = ( /turf/closed/shuttle/escapepod{ - icon_state = "wall9" + icon_state = "wall2" + }, +/area/shuttle/escape_pod) +"n" = ( +/turf/open/shuttle/escapepod{ + icon_state = "floor0" }, /area/shuttle/escape_pod) -"f" = ( +"p" = ( /obj/structure/machinery/computer/shuttle/escape_pod_panel{ pixel_y = 30 }, /turf/open/shuttle/escapepod{ - icon_state = "floor7" + icon_state = "floor2" }, /area/shuttle/escape_pod) -"g" = ( -/turf/closed/shuttle/escapepod, -/area/shuttle/escape_pod) -"i" = ( +"v" = ( +/obj/docking_port/mobile/crashable/escape_shuttle/n, /turf/closed/shuttle/escapepod{ - icon_state = "wall1" + icon_state = "wall9" }, /area/shuttle/escape_pod) -"j" = ( +"x" = ( +/obj/structure/machinery/cryopod/evacuation, /turf/open/shuttle/escapepod{ - icon_state = "floor9" + icon_state = "floor4" }, /area/shuttle/escape_pod) -"k" = ( -/obj/structure/machinery/door/airlock/evacuation{ - dir = 2; - name = "\improper Evacuation Airlock PU-3" +"z" = ( +/obj/structure/machinery/cryopod/evacuation, +/obj/structure/sign/safety/cryo{ + pixel_x = 8; + pixel_y = -28 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/shuttle/escapepod{ + icon_state = "floor4" }, /area/shuttle/escape_pod) -"l" = ( -/turf/closed/shuttle/escapepod{ - icon_state = "wall2" +"D" = ( +/turf/open/shuttle/escapepod{ + dir = 4 }, /area/shuttle/escape_pod) "F" = ( @@ -50,9 +66,10 @@ 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 +81,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 +91,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..db3f602bdb5a 100644 --- a/maps/shuttles/escape_shuttle_s.dmm +++ b/maps/shuttles/escape_shuttle_s.dmm @@ -4,20 +4,29 @@ icon_state = "wall1" }, /area/shuttle/escape_pod) -"f" = ( +"c" = ( +/obj/structure/machinery/cryopod/evacuation, /turf/open/shuttle/escapepod{ - icon_state = "floor12" + icon_state = "floor4" }, /area/shuttle/escape_pod) -"g" = ( -/obj/structure/machinery/cryopod/evacuation, -/turf/open/shuttle/escapepod, -/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{ + icon_state = "floor0"; + dir = 1 + }, +/area/shuttle/escape_pod) "v" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall15" @@ -33,11 +42,26 @@ 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{ + icon_state = "floor4" + }, +/area/shuttle/escape_pod) "D" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall10" }, /area/shuttle/escape_pod) +"I" = ( +/turf/open/shuttle/escapepod{ + dir = 8 + }, +/area/shuttle/escape_pod) "J" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall14" @@ -48,9 +72,13 @@ icon_state = "wall4" }, /area/shuttle/escape_pod) -"P" = ( +"N" = ( +/obj/structure/machinery/computer/shuttle/escape_pod_panel{ + pixel_x = 30 + }, /turf/open/shuttle/escapepod{ - icon_state = "floor11" + icon_state = "floor0"; + dir = 8 }, /area/shuttle/escape_pod) "Q" = ( @@ -58,14 +86,6 @@ 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; @@ -75,43 +95,29 @@ 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, -/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..b6b7452c798f 100644 --- a/maps/shuttles/escape_shuttle_w.dmm +++ b/maps/shuttles/escape_shuttle_w.dmm @@ -1,20 +1,25 @@ //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" }, /area/shuttle/escape_pod) +"d" = ( +/turf/open/shuttle/escapepod{ + dir = 1 + }, +/area/shuttle/escape_pod) "e" = ( /turf/closed/shuttle/escapepod{ 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 +35,12 @@ icon_state = "wall2" }, /area/shuttle/escape_pod) +"r" = ( +/obj/structure/machinery/cryopod/evacuation, +/turf/open/shuttle/escapepod{ + icon_state = "floor4" + }, +/area/shuttle/escape_pod) "B" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall10" @@ -45,21 +56,19 @@ icon_state = "wall4" }, /area/shuttle/escape_pod) -"H" = ( +"N" = ( +/obj/structure/machinery/computer/shuttle/escape_pod_panel{ + pixel_y = 30 + }, /turf/open/shuttle/escapepod{ - icon_state = "floor5" + icon_state = "floor2" }, /area/shuttle/escape_pod) -"I" = ( -/obj/structure/machinery/cryopod/evacuation, -/obj/structure/sign/safety/cryo{ - pixel_x = 36 +"O" = ( +/turf/open/shuttle/escapepod{ + icon_state = "floor0"; + dir = 1 }, -/turf/open/shuttle/escapepod, -/area/shuttle/escape_pod) -"M" = ( -/obj/structure/machinery/cryopod/evacuation, -/turf/open/shuttle/escapepod, /area/shuttle/escape_pod) "P" = ( /turf/closed/shuttle/escapepod{ @@ -74,39 +83,35 @@ icon_state = "test_floor4" }, /area/shuttle/escape_pod) -"V" = ( -/obj/structure/machinery/computer/shuttle/escape_pod_panel{ - pixel_y = 30 +"T" = ( +/obj/structure/machinery/cryopod/evacuation, +/obj/structure/sign/safety/cryo{ + pixel_x = 36 }, /turf/open/shuttle/escapepod{ icon_state = "floor4" }, /area/shuttle/escape_pod) -"W" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor12" - }, -/area/shuttle/escape_pod) (1,1,1) = {" P B S B -a +g "} (2,1,1) = {" F -V -H -W +N +d +O b "} (3,1,1) = {" p -M -I -M +r +T +r j "} (4,1,1) = {" diff --git a/maps/shuttles/lifeboat-port.dmm b/maps/shuttles/lifeboat-port.dmm index 0117730f6971..61b4b6ce54f6 100644 --- a/maps/shuttles/lifeboat-port.dmm +++ b/maps/shuttles/lifeboat-port.dmm @@ -320,7 +320,8 @@ /area/shuttle/lifeboat) "Jg" = ( /turf/open/shuttle/escapepod{ - icon_state = "floor8" + icon_state = "floor1"; + dir = 4 }, /area/shuttle/lifeboat) "Jw" = ( diff --git a/maps/shuttles/lifeboat-starboard.dmm b/maps/shuttles/lifeboat-starboard.dmm index 57e302923131..d4ee3702ff37 100644 --- a/maps/shuttles/lifeboat-starboard.dmm +++ b/maps/shuttles/lifeboat-starboard.dmm @@ -446,7 +446,8 @@ /area/shuttle/lifeboat) "VZ" = ( /turf/open/shuttle/escapepod{ - icon_state = "floor8" + icon_state = "floor1"; + dir = 4 }, /area/shuttle/lifeboat) "Xj" = ( diff --git a/maps/templates/Chinook.dmm b/maps/templates/Chinook.dmm index 077729447e29..bc16f23270fa 100644 --- a/maps/templates/Chinook.dmm +++ b/maps/templates/Chinook.dmm @@ -10,6 +10,23 @@ icon_state = "dark_sterile" }, /area/adminlevel/chinook/medical) +"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{ + dir = 1; + icon_state = "silver" + }, +/area/adminlevel/chinook) "af" = ( /turf/open/floor/almayer_hull{ icon_state = "outerhull_dir" @@ -54,11 +71,9 @@ /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,10 +84,24 @@ /obj/item/reagent_container/food/drinks/cans/waterbottle{ pixel_y = 7 }, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_17"; + pixel_x = 11; + pixel_y = 10 + }, /turf/open/floor/almayer{ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) +"ar" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/cargo) "au" = ( /turf/open/floor/almayer_hull{ dir = 4; @@ -81,25 +110,51 @@ /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/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{ - icon_state = "plate" + dir = 5; + icon_state = "plating" }, -/area/adminlevel/chinook/offices) +/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{ + dir = 8; + icon_state = "blue" + }, +/area/adminlevel/chinook) "aC" = ( -/obj/structure/closet/secure_closet/military_police, +/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{ dir = 4; icon_state = "red" @@ -109,8 +164,8 @@ /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{ @@ -133,12 +188,12 @@ /area/adminlevel/chinook) "aG" = ( /obj/structure/surface/table/almayer, -/obj/item/storage/fancy/cigarettes/kpack{ - pixel_x = -4 - }, /obj/structure/machinery/light{ dir = 1 }, +/obj/item/storage/fancy/cigarettes/kpack{ + pixel_x = -4 + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -192,17 +247,15 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/offices) "aP" = ( -/obj/structure/machinery/vending/cola, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/flora/pottedplant/random, +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" }, -/area/adminlevel/chinook/cargo) +/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{ @@ -239,17 +292,36 @@ name = "\improper 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{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper 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{ + icon_state = "plate" + }, +/area/adminlevel/chinook) "aX" = ( /obj/structure/machinery/door/airlock/almayer/security{ name = "\improper Security Armory" @@ -264,6 +336,16 @@ icon_state = "plating" }, /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,7 +364,7 @@ pixel_x = 3; pixel_y = 8 }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "bb" = ( /obj/structure/machinery/light{ @@ -301,6 +383,14 @@ name = "\improper carpet" }, /area/adminlevel/chinook/offices) +"bd" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/corsat{ + icon_state = "squares" + }, +/area/adminlevel/chinook/cargo) "be" = ( /obj/structure/bed/chair/comfy/black{ dir = 8 @@ -326,6 +416,9 @@ pixel_x = -11; pixel_y = 3 }, +/obj/structure/prop/ice_colony/hula_girl{ + pixel_x = 10 + }, /turf/open/floor/carpet{ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; name = "\improper carpet" @@ -336,8 +429,17 @@ 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{ + dir = 4; + icon_state = "blue" + }, +/area/adminlevel/chinook) "bj" = ( /obj/structure/surface/table/almayer, /obj/item/roller, @@ -359,79 +461,99 @@ }, /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) -"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" - }, +"bq" = ( +/obj/structure/filingcabinet, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) -"bv" = ( +"bu" = ( /obj/structure/surface/table/reinforced/black, -/obj/item/clothing/head/helmet/marine/pilot{ - pixel_x = 6; - pixel_y = 3 +/obj/structure/machinery/light{ + dir = 8 }, -/obj/item/clothing/suit/armor/vest/pilot{ - pixel_x = -5 +/obj/item/toy/beach_ball/holoball{ + 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/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" }, /area/adminlevel/chinook/offices) +"bv" = ( +/obj/structure/surface/table/reinforced/black, +/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{ @@ -444,16 +566,17 @@ /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, @@ -467,6 +590,29 @@ name = "\improper 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, @@ -491,8 +637,11 @@ "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,6 +650,10 @@ pixel_y = 5 }, /obj/item/reagent_container/food/drinks/h_chocolate, +/obj/item/prop/tableflag{ + pixel_x = -9; + pixel_y = 12 + }, /turf/open/floor/carpet{ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; name = "\improper carpet" @@ -521,26 +674,39 @@ }, /area/adminlevel/chinook/medical) "bL" = ( -/obj/structure/machinery/light, -/obj/structure/machinery/disposal, -/turf/open/floor/almayer, -/area/adminlevel/chinook) -"bO" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/radio/marine, -/obj/structure/machinery/light{ - dir = 4 +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_x = 6; + pixel_y = 4 }, -/turf/open/floor/almayer{ - dir = 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/machinery/light{ + dir = 4 + }, +/obj/structure/reagent_dispensers/fueltank/custom, +/turf/open/floor/almayer{ + dir = 4; icon_state = "sterile_green_side" }, /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,10 +717,7 @@ /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, @@ -566,21 +729,26 @@ "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" + dir = 1; + icon_state = "blue" }, -/area/adminlevel/chinook/medical) +/area/adminlevel/chinook) +"bZ" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/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{ @@ -589,10 +757,7 @@ }, /area/adminlevel/chinook/cargo) "cf" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/machinery/cm_vending/sorted/medical/blood, +/obj/structure/machinery/cm_vending/sorted/medical, /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_side" @@ -613,10 +778,10 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) "cj" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/surgical_tray, +/obj/structure/machinery/optable, /turf/open/floor/almayer{ - icon_state = "sterile_green_corner" + dir = 1; + icon_state = "sterile_green_side" }, /area/adminlevel/chinook/offices) "ck" = ( @@ -631,7 +796,6 @@ }, /area/adminlevel/chinook/offices) "cl" = ( -/obj/structure/machinery/iv_drip, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_side" @@ -650,18 +814,36 @@ }, /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/storage/fancy/cigar, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "cs" = ( /obj/structure/machinery/light{ @@ -673,7 +855,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo, /area/adminlevel/chinook/offices) "cu" = ( /obj/structure/machinery/disposal, @@ -694,9 +876,18 @@ name = "\improper carpet" }, /area/adminlevel/chinook/sec) +"cx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "emerald" + }, +/area/adminlevel/chinook/shuttle) "cy" = ( /obj/structure/surface/table/almayer, -/obj/item/tool/weldingtool, +/obj/item/tool/weldingtool/largetank, /turf/open/floor/almayer{ dir = 1; icon_state = "orange" @@ -710,12 +901,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{ @@ -729,37 +935,23 @@ /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{ @@ -771,13 +963,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 @@ -799,42 +993,17 @@ }, /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{ @@ -850,16 +1019,23 @@ /obj/item/device/defibrillator, /obj/item/device/defibrillator, /turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" + icon_state = "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" + icon_state = "sterile_green" }, /area/adminlevel/chinook/offices) "db" = ( @@ -867,7 +1043,7 @@ /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, @@ -911,6 +1087,14 @@ "dh" = ( /obj/structure/surface/table/reinforced/black, /obj/item/paper, +/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{ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; name = "\improper carpet" @@ -932,24 +1116,16 @@ }, /area/adminlevel/chinook/offices) "dk" = ( -/obj/structure/machinery/light{ - dir = 4 +/obj/structure/machinery/cm_vending/sorted/medical{ + layer = 3.5 }, -/obj/structure/bed, -/obj/item/bedsheet/medical, /turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" + icon_state = "silverfull" }, -/area/adminlevel/chinook/offices) +/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, @@ -966,7 +1142,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{ @@ -990,7 +1166,7 @@ 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, @@ -1000,9 +1176,7 @@ }, /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" = ( @@ -1017,8 +1191,14 @@ /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{ + icon_state = "squares" + }, +/area/adminlevel/chinook/cargo) "dA" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/multitool, @@ -1026,6 +1206,18 @@ icon_state = "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{ @@ -1055,11 +1247,13 @@ }, /area/adminlevel/chinook/offices) "dH" = ( -/obj/structure/machinery/light, +/obj/structure/sign/poster{ + pixel_y = -32 + }, /turf/open/floor/almayer{ - icon_state = "dark_sterile" + icon_state = "red" }, -/area/adminlevel/chinook/medical) +/area/adminlevel/chinook/sec) "dJ" = ( /obj/structure/bed/stool, /obj/structure/machinery/light/small{ @@ -1070,27 +1264,50 @@ icon_state = "blue" }, /area/adminlevel/chinook) -"dM" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" +"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{ + icon_state = "kitchen" }, -/area/adminlevel/chinook/sec) +/area/adminlevel/chinook/event) "dN" = ( /turf/open/floor/almayer{ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/offices) "dO" = ( -/obj/structure/machinery/cm_vending/sorted/medical, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/machinery/medical_pod/bodyscanner, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_side" }, /area/adminlevel/chinook/offices) -"dR" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; +"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{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/chinook/event) +"dR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; layer = 2.5 }, /turf/open/floor/almayer{ @@ -1113,9 +1330,9 @@ "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, @@ -1125,20 +1342,20 @@ }, /area/adminlevel/chinook/cargo) "dY" = ( -/obj/structure/machinery/light{ - dir = 1 - }, +/obj/structure/reagent_dispensers/water_cooler/stacks, /turf/open/floor/almayer{ icon_state = "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 @@ -1146,10 +1363,47 @@ /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{ + dir = 1; + icon_state = "sterile_green_side" }, -/area/space) +/area/adminlevel/chinook/offices) +"ee" = ( +/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/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, @@ -1162,6 +1416,11 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) +"ek" = ( +/turf/open/floor/almayer{ + icon_state = "bluecorner" + }, +/area/adminlevel/chinook) "em" = ( /obj/structure/surface/table/almayer, /obj/item/pizzabox/meat{ @@ -1170,14 +1429,16 @@ /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/sec) "en" = ( -/obj/structure/machinery/medical_pod/sleeper{ - dir = 8 - }, +/obj/structure/surface/table/almayer, +/obj/item/roller, /turf/open/floor/almayer{ - dir = 4; icon_state = "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{ dir = 1; @@ -1189,6 +1450,22 @@ icon_state = "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{ + icon_state = "plate" + }, +/area/adminlevel/chinook/offices) "es" = ( /obj/structure/machinery/light{ dir = 4 @@ -1206,6 +1483,15 @@ icon_state = "test_floor5" }, /area/adminlevel/chinook/cryo) +"eu" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/adminlevel/chinook/offices) "ew" = ( /obj/structure/closet/secure_closet{ name = "secure evidence locker"; @@ -1225,17 +1511,16 @@ }, /area/adminlevel/chinook/offices) "ey" = ( -/obj/structure/bed/sofa/south/grey, /obj/structure/machinery/light{ dir = 1 }, +/obj/structure/bed/sofa/south/grey/left, /turf/open/floor/almayer{ dir = 1; icon_state = "blue" }, /area/adminlevel/chinook/offices) "ez" = ( -/obj/structure/bed/sofa/south/grey, /obj/structure/sign/safety/coffee{ pixel_x = 12; pixel_y = 25 @@ -1243,19 +1528,20 @@ /obj/structure/sign/safety/south{ pixel_y = 25 }, +/obj/structure/bed/sofa/south/grey/right, /turf/open/floor/almayer{ dir = 1; icon_state = "blue" }, /area/adminlevel/chinook/offices) "eA" = ( -/obj/structure/machinery/power/fusion_engine, /obj/structure/machinery/light{ dir = 8 }, /obj/structure/platform{ dir = 8 }, +/obj/structure/prop/invuln/fusion_reactor, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -1278,7 +1564,7 @@ /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{ @@ -1291,17 +1577,20 @@ }, /area/adminlevel/chinook/sec) "eF" = ( -/obj/structure/machinery/cryopod, +/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{ - dir = 4; - icon_state = "sterile_green_corner" + icon_state = "plate" }, /area/adminlevel/chinook/medical) "eG" = ( -/obj/structure/machinery/power/fusion_engine, /obj/structure/platform{ dir = 4 }, +/obj/structure/prop/invuln/fusion_reactor, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -1320,10 +1609,10 @@ }, /area/adminlevel/chinook/offices) "eJ" = ( -/obj/structure/machinery/medical_pod/bodyscanner, /obj/structure/machinery/light{ dir = 8 }, +/obj/structure/machinery/medical_pod/bodyscanner, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_side" @@ -1342,21 +1631,27 @@ icon_state = "blue" }, /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" }, /area/adminlevel/chinook/offices) +"eO" = ( +/obj/structure/platform/strata/metal{ + dir = 4 + }, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) "eP" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -1376,7 +1671,7 @@ }, /area/adminlevel/chinook/offices) "eS" = ( -/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/surface/table/reinforced/black, /turf/open/floor/almayer{ icon_state = "blue" }, @@ -1401,9 +1696,29 @@ }, /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{ + icon_state = "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{ + dir = 5; + icon_state = "orange" + }, +/area/adminlevel/chinook/engineering) "fd" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" @@ -1414,6 +1729,27 @@ icon_state = "plating" }, /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{ + icon_state = "ai_floors" + }, +/area/adminlevel/chinook/offices) "fg" = ( /obj/structure/sign/safety/storage{ pixel_y = -28 @@ -1422,6 +1758,11 @@ icon_state = "blue" }, /area/adminlevel/chinook/offices) +"fh" = ( +/turf/open/floor/almayer/uscm/directional{ + dir = 8 + }, +/area/adminlevel/chinook/shuttle) "fi" = ( /obj/effect/decal/cleanable/liquid_fuel, /turf/open/floor/almayer{ @@ -1474,9 +1815,15 @@ /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{ + dir = 4; + icon_state = "sterile_green_side" + }, +/area/adminlevel/chinook/medical) "fu" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, @@ -1517,55 +1864,41 @@ /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" +/obj/structure/machinery/vending/cola, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" }, -/area/adminlevel/chinook/offices) +/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{ @@ -1573,37 +1906,14 @@ }, /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, @@ -1615,25 +1925,22 @@ /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, /obj/item/clothing/glasses/hud/health, +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) "fI" = ( -/obj/structure/sign/prop1{ - pixel_y = 32 - }, -/obj/structure/closet/secure_closet/commander{ - name = "colonel's locker" +/obj/structure/barricade/metal{ + dir = 4 }, -/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" +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/area/adminlevel/chinook/offices) +/area/adminlevel/chinook) "fJ" = ( /obj/structure/machinery/autolathe/full, /turf/open/floor/almayer{ @@ -1642,15 +1949,22 @@ }, /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{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" }, /area/adminlevel/chinook/offices) +"fL" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/adminlevel/chinook) "fM" = ( /obj/structure/machinery/body_scanconsole, /turf/open/floor/almayer{ @@ -1659,12 +1973,19 @@ /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{ @@ -1681,32 +2002,12 @@ }, /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, @@ -1744,28 +2045,24 @@ }, /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" + dir = 1; + icon_state = "green" }, /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 - }, +/obj/structure/machinery/cm_vending/clothing/synth, /turf/open/floor/almayer{ icon_state = "cargo" }, @@ -1784,48 +2081,31 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) "ge" = ( -/obj/structure/machinery/recharge_station, /turf/open/floor/almayer{ - icon_state = "cargo" + dir = 4; + icon_state = "green" }, /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, +/obj/structure/machinery/disposal, /turf/open/floor/almayer{ - icon_state = "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" + dir = 4; + icon_state = "sterile_green_side" }, /area/adminlevel/chinook/offices) -"gk" = ( -/obj/structure/sign/goldenplaque{ - pixel_y = 27 - }, +"gj" = ( +/obj/structure/barricade/handrail/strata, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "blue" }, /area/adminlevel/chinook) "gl" = ( @@ -1849,6 +2129,13 @@ }, /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/offices) +"gp" = ( +/obj/structure/largecrate/supply/supplies/metal, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/cargo) "gq" = ( /obj/item/storage/box/drinkingglasses, /obj/structure/surface/table/reinforced/black, @@ -1877,12 +2164,14 @@ }, /area/adminlevel/chinook/event) "gw" = ( -/obj/effect/decal/cleanable/ash, +/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" }, -/area/adminlevel/chinook/offices) +/area/adminlevel/chinook) "gy" = ( /turf/closed/shuttle/ert{ icon_state = "stan20" @@ -1896,10 +2185,13 @@ /obj/item/reagent_container/food/snacks/fishandchips, /obj/item/reagent_container/food/snacks/grilledcheese, /obj/item/reagent_container/food/snacks/grilledcheese, +/obj/structure/machinery/light{ + dir = 8 + }, /turf/open/floor/prison{ icon_state = "kitchen" }, -/area/space) +/area/adminlevel/chinook/event) "gA" = ( /turf/open/floor/almayer{ dir = 8; @@ -1919,6 +2211,31 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook) +"gD" = ( +/obj/structure/machinery/disposal, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) +"gF" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "\improper Provost Offices" + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/adminlevel/chinook/sec) +"gG" = ( +/obj/structure/sign/safety/security{ + pixel_y = -25 + }, +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/adminlevel/chinook) "gH" = ( /obj/structure/sign/safety/press_area_ag{ pixel_y = 24 @@ -1942,17 +2259,23 @@ }, /area/adminlevel/chinook/engineering) "gK" = ( -/obj/structure/kitchenspike, -/turf/open/floor/prison{ - icon_state = "kitchen" +/turf/open/floor/almayer{ + dir = 4; + icon_state = "blue" }, -/area/space) +/area/adminlevel/chinook) "gL" = ( /turf/open/floor/almayer{ dir = 9; icon_state = "red" }, /area/adminlevel/chinook) +"gM" = ( +/obj/structure/platform_decoration/strata/metal, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) "gN" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, /turf/open/floor/almayer{ @@ -1960,6 +2283,14 @@ icon_state = "red" }, /area/adminlevel/chinook/sec) +"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{ dir = 5; @@ -1982,11 +2313,15 @@ }, /area/adminlevel/chinook/engineering) "gT" = ( -/obj/structure/machinery/telecomms/relay/preset/centcom, +/obj/structure/machinery/telecomms/relay, /turf/open/floor/almayer{ icon_state = "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{ @@ -2011,6 +2346,10 @@ pixel_y = 8 }, /obj/structure/machinery/light, +/obj/item/stack/cable_coil{ + pixel_x = 20; + pixel_y = 5 + }, /turf/open/floor/almayer{ icon_state = "orange" }, @@ -2026,6 +2365,17 @@ icon_state = "orange" }, /area/adminlevel/chinook/offices) +"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{ + icon_state = "kitchen" + }, +/area/adminlevel/chinook/event) "hc" = ( /turf/open/shuttle/dropship{ icon_state = "rasputin6" @@ -2033,14 +2383,43 @@ /area/adminlevel/chinook/shuttle/unpowered) "hd" = ( /obj/structure/largecrate/random, +/obj/item/circuitboard/airlock, /turf/open/floor/almayer{ icon_state = "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{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper 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, @@ -2058,40 +2437,31 @@ /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 - }, -/turf/open/floor/almayer, -/area/adminlevel/chinook) -"ho" = ( -/obj/structure/closet{ - name = "boxing attire" +"hl" = ( +/obj/structure/closet/secure_closet/personal/patient{ + name = "morgue closet" }, -/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" }, +/area/adminlevel/chinook/medical) +"hm" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/adminlevel/chinook/event) +"ho" = ( +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2 + }, +/turf/open/floor/wood, /area/adminlevel/chinook) "hp" = ( /obj/structure/machinery/disposal, @@ -2104,6 +2474,7 @@ /obj/structure/machinery/light{ dir = 1 }, +/obj/structure/machinery/cm_vending/sorted/marine_food, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -2117,14 +2488,33 @@ icon_state = "plate" }, /area/adminlevel/chinook) -"hw" = ( -/obj/structure/machinery/door_control{ - id = "provostinterrog"; - name = "Interrogation Shutters"; - pixel_x = -25; - req_one_access_txt = "2;3;12;19" +"ht" = ( +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2 }, -/turf/open/floor/almayer{ +/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"; + name = "Interrogation Shutters"; + pixel_x = -25; + req_one_access_txt = "2;3;12;19" + }, +/turf/open/floor/almayer{ icon_state = "plate" }, /area/adminlevel/chinook/sec) @@ -2173,6 +2563,12 @@ icon_state = "blue" }, /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 @@ -2187,7 +2583,9 @@ }, /area/adminlevel/chinook/offices) "hI" = ( -/obj/structure/machinery/microwave, +/obj/structure/machinery/microwave{ + pixel_y = 6 + }, /obj/structure/surface/table/reinforced/almayer_B, /turf/open/floor/almayer{ dir = 5; @@ -2198,10 +2596,7 @@ /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, @@ -2217,31 +2612,21 @@ name = "\improper 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 +/obj/structure/barricade/metal{ + 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/almayer{ + icon_state = "cargo" }, -/area/adminlevel/chinook/offices) +/area/adminlevel/chinook) "hP" = ( /turf/open/floor/almayer{ dir = 10; @@ -2341,12 +2726,14 @@ icon_state = "plating" }, /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{ + icon_state = "dark_sterile" + }, +/area/adminlevel/chinook/medical) "ih" = ( /obj/structure/machinery/light{ dir = 4 @@ -2376,10 +2763,7 @@ 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" = ( @@ -2402,7 +2786,15 @@ }, /area/adminlevel/chinook) "is" = ( -/obj/structure/machinery/disposal, +/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{ icon_state = "plate" }, @@ -2413,12 +2805,24 @@ 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{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/engineering) "ix" = ( /obj/structure/machinery/door_control{ id = "chinookarmory1"; @@ -2440,18 +2844,36 @@ icon_state = "plate" }, /area/adminlevel/chinook/engineering) +"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/target{ - name = "punching bag" +/obj/structure/morgue, +/obj/structure/machinery/light{ + dir = 8 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/adminlevel/chinook) +/area/adminlevel/chinook/medical) "iD" = ( /obj/structure/platform_decoration, /turf/open/floor/kutjevo, /area/adminlevel/chinook/event) +"iF" = ( +/obj/structure/sign/prop2{ + pixel_y = 30 + }, +/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) "iG" = ( /obj/structure/platform, /obj/structure/stairs/perspective{ @@ -2465,6 +2887,15 @@ dir = 4 }, /area/adminlevel/chinook/event) +"iK" = ( +/obj/structure/largecrate/machine/autodoc, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "iL" = ( /obj/structure/platform, /obj/structure/stairs/perspective{ @@ -2480,16 +2911,12 @@ /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{ @@ -2521,12 +2948,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{ @@ -2537,14 +2960,18 @@ /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 + }, +/obj/structure/sign/safety/security{ + pixel_x = 32; + pixel_y = 12 }, /turf/open/floor/almayer{ - dir = 1; + dir = 4; icon_state = "silver" }, /area/adminlevel/chinook) @@ -2578,15 +3005,12 @@ "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, -/area/adminlevel/chinook/offices) -"jd" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 4 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/area/adminlevel/chinook/shuttle) +/area/adminlevel/chinook/offices) "je" = ( /obj/item/clothing/head/welding, /turf/open/floor/almayer, @@ -2600,9 +3024,11 @@ "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{ + icon_state = "plate" }, -/turf/open/floor/almayer, /area/adminlevel/chinook/offices) "ji" = ( /obj/structure/machinery/door/airlock/almayer/command{ @@ -2665,9 +3091,7 @@ icon_state = "p_stair_ew_full_cap"; layer = 3.5 }, -/obj/structure/platform{ - dir = 1 - }, +/obj/structure/platform/stair_cut/alt, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -2677,12 +3101,18 @@ /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" +/obj/structure/cargo_container/arious/right, +/turf/open/floor/corsat{ + icon_state = "squares" }, -/area/adminlevel/chinook/medical) +/area/adminlevel/chinook/cargo) +"js" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/condiment/enzyme, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/chinook/event) "ju" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Gym" @@ -2700,12 +3130,19 @@ /turf/open/floor/prison{ icon_state = "kitchen" }, -/area/space) +/area/adminlevel/chinook/event) "jy" = ( /obj/structure/sign/safety/fridge{ pixel_x = 7; pixel_y = 24 }, +/obj/structure/machinery/microwave{ + pixel_y = -4 + }, +/obj/structure/machinery/microwave{ + layer = 2.83; + pixel_y = 10 + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -2722,6 +3159,19 @@ icon_state = "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; @@ -2732,11 +3182,16 @@ icon_state = "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, @@ -2749,15 +3204,9 @@ }, /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, @@ -2768,10 +3217,6 @@ "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" = ( @@ -2791,9 +3236,6 @@ pixel_x = 12; pixel_y = 25 }, -/obj/structure/sign/safety/west{ - pixel_y = 25 - }, /turf/open/floor/almayer{ dir = 1; icon_state = "silver" @@ -2805,18 +3247,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; @@ -2880,11 +3315,9 @@ }, /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{ @@ -2894,9 +3327,11 @@ "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{ + icon_state = "plate" }, -/turf/open/floor/almayer, /area/adminlevel/chinook/offices) "kj" = ( /obj/structure/machinery/shower{ @@ -2906,7 +3341,7 @@ 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, @@ -2914,13 +3349,6 @@ icon_state = "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 @@ -2969,9 +3397,7 @@ }, /area/adminlevel/chinook) "kr" = ( -/obj/structure/machinery/medical_pod/sleeper{ - dir = 8 - }, +/obj/structure/machinery/medical_pod/sleeper, /turf/open/floor/almayer{ dir = 4; icon_state = "sterile_green_side" @@ -2984,14 +3410,13 @@ }, /area/adminlevel/chinook/offices) "ku" = ( -/obj/structure/machinery/medical_pod/bodyscanner, +/obj/structure/machinery/cm_vending/sorted/medical/blood, /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_corner" }, /area/adminlevel/chinook/offices) "kv" = ( -/obj/structure/machinery/light, /obj/structure/largecrate/random/barrel/red, /turf/open/floor/almayer{ dir = 5; @@ -3073,12 +3498,22 @@ name = "\improper 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 + }, +/obj/item/prop/tableflag/uscm{ + pixel_x = -9; + pixel_y = -11 }, /turf/open/floor/carpet{ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; @@ -3154,24 +3589,30 @@ }, /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, +/obj/item/ammo_box/magazine/l42a, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" }, /area/adminlevel/chinook/sec) +"kX" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "silver" + }, +/area/adminlevel/chinook) "kY" = ( /obj/structure/closet/secure_closet/freezer/fridge/full, /turf/open/floor/almayer{ @@ -3216,6 +3657,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) @@ -3236,7 +3681,19 @@ }, /area/adminlevel/chinook/medical) "ll" = ( -/obj/structure/machinery/cm_vending/sorted/medical, +/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_corner" @@ -3296,6 +3753,26 @@ icon_state = "red" }, /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{ + dir = 1; + icon_state = "silver" + }, +/area/adminlevel/chinook) "lC" = ( /turf/closed/wall/almayer/reinforced, /area/adminlevel/chinook/event) @@ -3315,6 +3792,7 @@ /area/adminlevel/chinook/event) "lE" = ( /obj/effect/decal/cleanable/flour, +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ icon_state = "kitchen" }, @@ -3325,11 +3803,21 @@ name = "\improper Cargo Bay"; req_one_access_txt = "1;26" }, +/obj/structure/machinery/door/poddoor/almayer{ + id = "chinookreq"; + name = "Requisitions Lockdown" + }, /turf/open/floor/almayer{ dir = 4; icon_state = "plating_striped" }, /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 @@ -3384,6 +3872,12 @@ icon_state = "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" @@ -3400,6 +3894,12 @@ }, /turf/open/floor/kutjevo/multi_tiles, /area/adminlevel/chinook/event) +"lZ" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "ma" = ( /obj/structure/machinery/vending/coffee, /turf/open/floor/almayer{ @@ -3407,6 +3907,17 @@ icon_state = "sterile_green_side" }, /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{ + icon_state = "cargo" + }, +/area/adminlevel/chinook) "me" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/attachment, @@ -3497,15 +4008,17 @@ }, /area/adminlevel/chinook/offices) "mt" = ( -/obj/structure/machinery/light{ - dir = 8 +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 }, -/obj/structure/machinery/cryopod, /turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" + dir = 5; + icon_state = "plating" }, -/area/adminlevel/chinook/medical) +/area/adminlevel/chinook/engineering) "mu" = ( /obj/structure/machinery/vending/security, /turf/open/floor/almayer{ @@ -3518,6 +4031,12 @@ icon_state = "plating_striped" }, /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 @@ -3540,6 +4059,23 @@ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) +"mC" = ( +/obj/structure/platform_decoration/strata/metal{ + dir = 8 + }, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) +"mD" = ( +/obj/structure/platform/strata/metal{ + dir = 4 + }, +/obj/structure/platform/strata/metal, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) "mF" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/pizzabox/meat{ @@ -3576,11 +4112,7 @@ 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{ @@ -3592,11 +4124,7 @@ /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{ @@ -3619,23 +4147,23 @@ /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{ + icon_state = "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{ @@ -3651,12 +4179,16 @@ /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{ + icon_state = "plate" + }, +/area/adminlevel/chinook) "na" = ( /obj/structure/bed/chair/comfy, /turf/open/floor/almayer{ @@ -3664,15 +4196,25 @@ icon_state = "emerald" }, /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, @@ -3711,6 +4253,12 @@ icon_state = "plating" }, /area/adminlevel/chinook/engineering) +"nk" = ( +/obj/structure/platform/strata/metal, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) "nl" = ( /obj/structure/surface/table/reinforced/black, /obj/structure/sign/prop1{ @@ -3723,11 +4271,7 @@ /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, @@ -3769,9 +4313,7 @@ }, /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, +/obj/structure/machinery/vending/dinnerware, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -3811,15 +4353,6 @@ name = "\improper 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{ @@ -3863,6 +4396,9 @@ pixel_y = 7 }, /obj/structure/surface/table/reinforced/black, +/obj/structure/sign/poster/propaganda{ + pixel_y = 30 + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -3877,15 +4413,24 @@ /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 }, +/obj/structure/machinery/faxmachine/uscm/command/highcom{ + name = "Chinook Fax Machine"; + department = "Chinook 91 GSO Station"; + pixel_y = 5 + }, /turf/open/floor/almayer{ icon_state = "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, @@ -3900,6 +4445,15 @@ icon_state = "wood" }, /area/adminlevel/chinook/offices) +"nL" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "sterile_green_side" + }, +/area/adminlevel/chinook/medical) "nN" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/door_control{ @@ -3927,11 +4481,7 @@ 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, @@ -3954,21 +4504,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{ @@ -3979,11 +4516,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{ @@ -3991,11 +4524,7 @@ }, /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, @@ -4044,11 +4573,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{ @@ -4087,11 +4612,7 @@ }, /area/adminlevel/chinook/event) "om" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/ashtray/glass{ - pixel_y = 4 - }, -/obj/item/clothing/glasses/sunglasses, +/obj/structure/surface/table/reinforced/almayer_B, /turf/open/floor/carpet{ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; name = "\improper carpet" @@ -4120,20 +4641,17 @@ }, /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 +/obj/structure/machinery/door/airlock/almayer/medical/glass{ + id = "medcryobeds"; + id_tag = "medcryobeds"; + name = "Medical Hypersleep Access"; + req_access = null; + req_one_access = null }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/turf/open/floor/almayer{ + icon_state = "dark_sterile" }, -/area/adminlevel/chinook/event) +/area/adminlevel/chinook/medical) "os" = ( /obj/item/tool/wirecutters{ pixel_y = -7 @@ -4154,25 +4672,42 @@ /area/adminlevel/chinook/engineering) "ou" = ( /turf/open/floor/almayer/uscm/directional{ - dir = 9 + dir = 1 }, /area/adminlevel/chinook/shuttle) "ov" = ( /turf/open/floor/almayer/uscm/directional{ - dir = 1 + dir = 5 }, /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{ + icon_state = "plate" }, -/area/adminlevel/chinook/event) +/area/adminlevel/chinook/cargo) +"oy" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/toy/crayon/blue, +/obj/item/stack/cable_coil{ + pixel_x = -8 + }, +/obj/item/device/lightreplacer, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/offices) "oz" = ( /obj/structure/platform{ dir = 8 @@ -4235,6 +4770,23 @@ icon_state = "red" }, /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{ + icon_state = "cargo" + }, +/area/adminlevel/chinook) +"oG" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "blue" + }, +/area/adminlevel/chinook) "oH" = ( /obj/structure/stairs/perspective{ dir = 4; @@ -4242,6 +4794,12 @@ }, /turf/open/floor/kutjevo, /area/adminlevel/chinook/event) +"oI" = ( +/obj/structure/machinery/vending/cola, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/cargo) "oJ" = ( /obj/item/storage/surgical_tray, /obj/structure/surface/table/almayer, @@ -4271,9 +4829,6 @@ /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" }, @@ -4283,10 +4838,10 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/cryo) "oU" = ( -/obj/structure/machinery/medical_pod/autodoc, /obj/structure/sign/safety/autodoc{ pixel_x = -16 }, +/obj/structure/machinery/medical_pod/autodoc, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_side" @@ -4312,6 +4867,25 @@ /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, @@ -4345,11 +4919,7 @@ 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{ @@ -4416,11 +4986,11 @@ /turf/open/floor/plating, /area/adminlevel/chinook/engineering) "pq" = ( -/obj/structure/sign/safety/med_cryo{ - pixel_y = -25 +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 }, /turf/open/floor/almayer{ - icon_state = "sterile_green_side" + icon_state = "plate" }, /area/adminlevel/chinook/medical) "pr" = ( @@ -4438,6 +5008,14 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/sec) +"pv" = ( +/obj/structure/platform/strata/metal{ + dir = 1 + }, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) "pw" = ( /turf/open/floor/almayer{ dir = 5; @@ -4459,21 +5037,21 @@ 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{ + icon_state = "plate" + }, +/area/adminlevel/chinook/cargo) "pA" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/folder/blue{ - pixel_x = -6; - pixel_y = 6 +/obj/structure/machinery/door/airlock/almayer/command{ + dir = 1; + name = "Office of LtCol. Booker Peralta" }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/turf/open/floor/almayer{ + icon_state = "plate" }, /area/adminlevel/chinook/offices) "pB" = ( @@ -4482,15 +5060,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" = ( @@ -4498,14 +5077,12 @@ /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{ + dir = 6 + }, /area/adminlevel/chinook/shuttle) "pF" = ( /obj/structure/surface/table/reinforced/black, @@ -4534,6 +5111,21 @@ icon_state = "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{ + dir = 1; + icon_state = "red" + }, +/area/adminlevel/chinook/sec) "pJ" = ( /obj/structure/machinery/computer/secure_data{ dir = 4 @@ -4578,6 +5170,11 @@ name = "\improper 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, @@ -4589,13 +5186,13 @@ /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 }, +/obj/structure/prop/invuln/fusion_reactor, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -4619,25 +5216,19 @@ /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" +/turf/open/gm/river{ + name = "pool" }, -/area/adminlevel/chinook/medical) +/area/adminlevel/chinook) "pY" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 26 @@ -4652,23 +5243,16 @@ /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, @@ -4678,15 +5262,19 @@ }, /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; @@ -4717,6 +5305,19 @@ name = "\improper carpet" }, /area/adminlevel/chinook/offices) +"ql" = ( +/obj/structure/machinery/vending/coffee, +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "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{ dir = 10; @@ -4725,11 +5326,12 @@ /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{ @@ -4740,6 +5342,11 @@ name = "\improper carpet" }, /area/adminlevel/chinook/offices) +"qq" = ( +/turf/open/floor/corsat{ + icon_state = "squares" + }, +/area/adminlevel/chinook/cargo) "qr" = ( /obj/structure/surface/table/reinforced/black, /obj/item/reagent_container/food/drinks/coffee{ @@ -4752,11 +5359,21 @@ }, /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{ + name = "pool" + }, +/area/adminlevel/chinook) +"qv" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform/strata/metal{ + dir = 8 + }, +/turf/open/gm/river{ + name = "pool" }, -/turf/open/floor/almayer, /area/adminlevel/chinook) "qw" = ( /obj/item/storage/box/m56d/m2c, @@ -4769,18 +5386,14 @@ /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, @@ -4798,6 +5411,25 @@ icon_state = "sterile_green_side" }, /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 @@ -4849,12 +5481,12 @@ icon_state = "plate" }, /area/adminlevel/chinook) -"qJ" = ( -/obj/structure/machinery/light{ - dir = 4 +"qI" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/turf/open/floor/kutjevo, -/area/adminlevel/chinook/event) +/area/adminlevel/chinook) "qK" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ name = "\improper Provost Offices" @@ -4863,12 +5495,6 @@ icon_state = "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 @@ -4878,6 +5504,15 @@ /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{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/cargo) "qP" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -4930,9 +5565,15 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/kutjevo/tan, /area/adminlevel/chinook/event) -"rc" = ( -/obj/structure/closet/crate, -/obj/item/storage/briefcase/inflatable, +"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, /obj/item/storage/briefcase/inflatable, /obj/item/storage/briefcase/inflatable, /obj/item/storage/briefcase/inflatable, @@ -5017,6 +5658,11 @@ icon_state = "kitchen" }, /area/adminlevel/chinook/event) +"rp" = ( +/turf/closed/shuttle/elevator{ + dir = 6 + }, +/area/adminlevel/chinook/offices) "rq" = ( /obj/structure/machinery/light{ dir = 1 @@ -5028,19 +5674,7 @@ /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 - }, +/obj/structure/machinery/cm_vending/sorted/medical, /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_side" @@ -5061,6 +5695,12 @@ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) +"ry" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "cargo_arrow" + }, +/area/adminlevel/chinook/cargo) "rA" = ( /obj/item/stack/sheet/wood/medium_stack, /turf/open/floor/almayer{ @@ -5068,6 +5708,18 @@ icon_state = "plating" }, /area/adminlevel/chinook/cargo) +"rC" = ( +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 6 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/floor/almayer{ + icon_state = "silvercorner" + }, +/area/adminlevel/chinook) "rD" = ( /turf/open/floor/almayer{ dir = 4; @@ -5081,6 +5733,12 @@ icon_state = "sterile_green" }, /area/adminlevel/chinook/medical) +"rF" = ( +/obj/structure/sign/safety/bathmens{ + pixel_x = -17 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) "rG" = ( /turf/open/floor/almayer{ dir = 1; @@ -5114,6 +5772,18 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/kutjevo/tan/plate, /area/adminlevel/chinook/event) +"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{ dir = 1; @@ -5121,9 +5791,8 @@ }, /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) @@ -5140,6 +5809,10 @@ }, /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) @@ -5151,9 +5824,11 @@ "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{ + icon_state = "plate" }, -/turf/open/floor/almayer, /area/adminlevel/chinook/offices) "rY" = ( /obj/structure/machinery/power/smes, @@ -5173,6 +5848,14 @@ }, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) +"se" = ( +/obj/structure/sign/safety/storage{ + pixel_x = -18 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/chinook/medical) "sg" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/reagent_container/food/drinks/drinkingglass, @@ -5192,7 +5875,7 @@ 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, @@ -5208,19 +5891,11 @@ }, /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{ @@ -5250,7 +5925,7 @@ 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, @@ -5259,10 +5934,17 @@ icon_state = "plating" }, /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, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 5; + icon_state = "plating" }, /area/adminlevel/chinook/cargo) "sz" = ( @@ -5286,6 +5968,25 @@ icon_state = "blue" }, /area/adminlevel/chinook/offices) +"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/kutjevo/tan/plate, +/area/adminlevel/chinook/event) "sE" = ( /obj/structure/machinery/door_control{ id = "chinookofficelock"; @@ -5354,21 +6055,52 @@ }, /obj/structure/surface/rack, /obj/item/clothing/head/welding, +/obj/item/stack/sheet/metal/large_stack, /turf/open/floor/almayer{ icon_state = "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, @@ -5418,16 +6150,10 @@ /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"; @@ -5459,6 +6185,12 @@ icon_state = "plating" }, /area/adminlevel/chinook) +"ta" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/adminlevel/chinook/cryo) "tb" = ( /obj/item/device/lightreplacer, /obj/structure/surface/table/reinforced/black, @@ -5506,20 +6238,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) +"to" = ( +/obj/structure/platform/strata/metal{ + dir = 8 + }, +/obj/structure/platform/strata/metal, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) "tp" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/book/manual/barman_recipes{ - pixel_y = 6 +/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/almayer{ + dir = 1; + icon_state = "green" }, -/area/adminlevel/chinook/offices) +/area/adminlevel/chinook) "tq" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "Bathroom" @@ -5541,18 +6284,9 @@ }, /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, +/obj/structure/morgue, /turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" + icon_state = "plate" }, /area/adminlevel/chinook/medical) "tv" = ( @@ -5566,16 +6300,12 @@ }, /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, @@ -5584,6 +6314,15 @@ icon_state = "orange" }, /area/adminlevel/chinook/engineering) +"ty" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/cargo) "tz" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, @@ -5640,11 +6379,9 @@ }, /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, @@ -5653,20 +6390,11 @@ }, /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 +/obj/structure/machinery/body_scanconsole, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" }, -/turf/open/floor/almayer, -/area/adminlevel/chinook) +/area/adminlevel/chinook/offices) "tM" = ( /obj/structure/barricade/handrail{ dir = 8 @@ -5709,6 +6437,9 @@ icon_state = "plating_striped" }, /area/adminlevel/chinook/engineering) +"tT" = ( +/turf/closed/wall/almayer/reinforced, +/area/adminlevel/chinook/shuttle) "tU" = ( /turf/open/floor/almayer{ dir = 8; @@ -5742,22 +6473,19 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/offices) -"tY" = ( +"tZ" = ( /obj/structure/machinery/light{ - dir = 4 + dir = 1 + }, +/obj/structure/machinery/scoreboard_button{ + pixel_y = 24; + id = "chinook"; + name = "scoreboard reset button" }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" + icon_state = "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; @@ -5769,9 +6497,7 @@ /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 }, @@ -5788,9 +6514,14 @@ }, /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{ + icon_state = "blue" + }, +/area/adminlevel/chinook/offices) "uh" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" @@ -5816,12 +6547,6 @@ icon_state = "cargo" }, /area/adminlevel/chinook/cargo) -"uk" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/adminlevel/chinook/cargo) "uo" = ( /obj/structure/sign/safety/opens_up{ pixel_x = 15; @@ -5833,24 +6558,11 @@ /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, @@ -5869,12 +6581,12 @@ 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{ @@ -5888,7 +6600,7 @@ /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{ @@ -5900,26 +6612,16 @@ }, /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 @@ -5998,6 +6700,9 @@ /area/adminlevel/chinook/sec) "uK" = ( /obj/structure/bed/chair/comfy, +/obj/structure/machinery/light{ + dir = 1 + }, /turf/open/floor/almayer{ dir = 5; icon_state = "blue" @@ -6013,15 +6718,6 @@ icon_state = "orange" }, /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 @@ -6049,16 +6745,19 @@ /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" +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2; + pixel_y = -21 }, -/area/adminlevel/chinook/cargo) -"uT" = ( -/obj/structure/machinery/medical_pod/bodyscanner{ - dir = 8 +/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{ dir = 4; icon_state = "sterile_green_corner" @@ -6073,15 +6772,6 @@ name = "\improper 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, @@ -6090,12 +6780,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{ @@ -6203,27 +6890,32 @@ /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, +/obj/item/circuitboard/airlock, /turf/open/floor/almayer{ dir = 1; icon_state = "orange" }, /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{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/chinook) "vu" = ( /turf/open/floor/almayer/uscm/directional{ - dir = 8 + dir = 8; + icon_state = "logo_c" }, /area/adminlevel/chinook/shuttle) "vv" = ( @@ -6233,7 +6925,18 @@ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) +"vw" = ( +/obj/structure/sign/safety/bathmens{ + pixel_x = 15; + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/adminlevel/chinook) "vx" = ( +/obj/structure/flora/pottedplant/random, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -6273,12 +6976,6 @@ icon_state = "rasputin7" }, /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; @@ -6327,11 +7024,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, @@ -6377,6 +7070,18 @@ }, /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{ + icon_state = "sterile_green_side" + }, +/area/adminlevel/chinook/medical) "vT" = ( /obj/item/trash/barcardine, /turf/open/floor/almayer, @@ -6392,11 +7097,7 @@ }, /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 - }, +/obj/structure/machinery/telecomms/processor, /turf/open/floor/almayer{ icon_state = "tcomms" }, @@ -6409,7 +7110,7 @@ }, /area/adminlevel/chinook/medical) "vZ" = ( -/obj/structure/cargo_container/arious/rightmid, +/obj/structure/cargo_container/seegson/mid, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -6459,21 +7160,25 @@ /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" }, /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 }, +/obj/structure/bed/sofa/south/grey/right, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -6483,6 +7188,10 @@ pixel_x = 32; pixel_y = 6 }, +/obj/structure/sign/safety/firingrange{ + pixel_x = 32; + pixel_y = -6 + }, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -6498,6 +7207,15 @@ icon_state = "wood" }, /area/adminlevel/chinook/offices) +"wr" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/adminlevel/chinook) "wt" = ( /obj/structure/sign/safety/synth_storage{ pixel_x = 31; @@ -6529,25 +7247,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" = ( @@ -6570,7 +7283,7 @@ /turf/open/floor/prison{ icon_state = "kitchen" }, -/area/space) +/area/adminlevel/chinook/event) "wE" = ( /obj/structure/machinery/disposal, /turf/open/floor/almayer{ @@ -6602,14 +7315,6 @@ 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" - }, -/area/adminlevel/chinook/event) "wL" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, /turf/open/floor/almayer{ @@ -6635,6 +7340,11 @@ icon_state = "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{ @@ -6650,11 +7360,7 @@ /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{ @@ -6662,12 +7368,31 @@ icon_state = "sterile_green_corner" }, /area/adminlevel/chinook/medical) +"wX" = ( +/obj/structure/platform/strata/metal{ + dir = 8 + }, +/turf/open/gm/river{ + name = "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{ + icon_state = "cargo" + }, +/area/adminlevel/chinook) +"xa" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "blue" + }, +/area/adminlevel/chinook/offices) "xd" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ dir = 1; @@ -6693,6 +7418,27 @@ name = "\improper carpet" }, /area/adminlevel/chinook/event) +"xf" = ( +/obj/structure/platform/strata/metal{ + dir = 1 + }, +/obj/structure/platform/strata/metal{ + dir = 4 + }, +/turf/open/gm/river{ + name = "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{ + icon_state = "redfull" + }, +/area/adminlevel/chinook/offices) "xh" = ( /obj/structure/machinery/light/small, /turf/open/floor/almayer{ @@ -6701,10 +7447,8 @@ }, /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, @@ -6714,6 +7458,25 @@ icon_state = "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{ + icon_state = "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{ @@ -6723,6 +7486,17 @@ icon_state = "cargo" }, /area/adminlevel/chinook/sec) +"xq" = ( +/obj/structure/platform/strata/metal{ + dir = 1 + }, +/obj/structure/platform/strata/metal{ + dir = 8 + }, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) "xr" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ dir = 2; @@ -6745,6 +7519,14 @@ name = "\improper carpet" }, /area/adminlevel/chinook/offices) +"xv" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "xw" = ( /obj/structure/bed/sofa/south/grey, /turf/open/floor/kutjevo/tan, @@ -6759,6 +7541,14 @@ icon_state = "dark_sterile" }, /area/adminlevel/chinook/sec) +"xA" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, +/turf/open/floor/almayer{ + icon_state = "tcomms" + }, +/area/adminlevel/chinook/engineering) "xC" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/folder/black, @@ -6774,8 +7564,8 @@ }, /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{ @@ -6786,13 +7576,23 @@ "xH" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 1; - name = "\improper SCO Offices" + name = "\improper Offices" }, -/turf/open/floor/almayer, -/area/adminlevel/chinook/offices) -"xK" = ( -/turf/closed/shuttle/ert{ - icon_state = "stan23" +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/offices) +"xI" = ( +/obj/structure/sign/safety/bathunisex{ + pixel_y = -25 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/adminlevel/chinook/sec) +"xK" = ( +/turf/closed/shuttle/ert{ + icon_state = "stan23" }, /area/adminlevel/chinook/shuttle/unpowered) "xL" = ( @@ -6827,8 +7627,18 @@ /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{ @@ -6849,17 +7659,24 @@ }, /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{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper 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{ + icon_state = "plate" }, -/turf/open/floor/almayer, /area/adminlevel/chinook/offices) "yb" = ( /obj/structure/machinery/chem_dispenser, @@ -6889,6 +7706,12 @@ 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, @@ -6902,12 +7725,24 @@ icon_state = "red" }, /area/adminlevel/chinook/event) +"yn" = ( +/obj/structure/machinery/door/airlock/almayer/medical{ + name = "\improper Morgue" + }, +/turf/open/floor/almayer{ + icon_state = "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{ @@ -6943,6 +7778,15 @@ }, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook) +"yy" = ( +/obj/structure/closet/secure_closet/guncabinet/red{ + name = "provost armor rack" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/sec) "yz" = ( /obj/structure/surface/table/almayer, /obj/item/stack/sheet/metal/large_stack, @@ -6963,12 +7807,19 @@ /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{ + icon_state = "squares" + }, +/area/adminlevel/chinook/cargo) "yK" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_x = -30 @@ -6977,6 +7828,21 @@ icon_state = "cargo" }, /area/adminlevel/chinook) +"yL" = ( +/obj/structure/cargo_container/arious/leftmid, +/turf/open/floor/corsat{ + icon_state = "squares" + }, +/area/adminlevel/chinook/cargo) +"yM" = ( +/obj/structure/machinery/cryopod, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "sterile_green" + }, +/area/adminlevel/chinook/medical) "yN" = ( /turf/open/floor/almayer{ icon_state = "cargo" @@ -6989,7 +7855,7 @@ icon_state = "p_stair_full" }, /obj/structure/barricade/handrail/strata{ - layer = 3.5 + layer = 4.5 }, /turf/open/floor/almayer{ dir = 5; @@ -7005,16 +7871,35 @@ icon_state = "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"; @@ -7036,11 +7921,7 @@ /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 - }, +/obj/structure/machinery/telecomms/broadcaster, /turf/open/floor/almayer{ icon_state = "tcomms" }, @@ -7067,15 +7948,14 @@ }, /area/adminlevel/chinook) "zd" = ( -/obj/structure/bed/chair/comfy{ - dir = 4 +/obj/structure/sign/safety/med_cryo{ + pixel_x = 31 }, -/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/almayer{ + dir = 4; + icon_state = "sterile_green_side" }, -/area/adminlevel/chinook) +/area/adminlevel/chinook/medical) "zf" = ( /obj/structure/machinery/autodoc_console, /turf/open/floor/almayer{ @@ -7083,6 +7963,29 @@ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) +"zg" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_x = -7; + pixel_y = 11 + }, +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper 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{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/engineering) "zj" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -7092,6 +7995,12 @@ icon_state = "red" }, /area/adminlevel/chinook/sec) +"zl" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" + }, +/area/adminlevel/chinook/offices) "zm" = ( /obj/structure/machinery/door_control{ id = "chinook_solitary3"; @@ -7112,6 +8021,10 @@ /obj/item/tool/pen{ pixel_y = -6 }, +/obj/item/toy/deck/uno{ + pixel_x = 3; + pixel_y = 8 + }, /turf/open/floor/carpet{ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; name = "\improper carpet" @@ -7140,17 +8053,13 @@ }, /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, +/obj/structure/machinery/disposal, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -7205,11 +8114,22 @@ name = "\improper Cargo Bay"; req_one_access_txt = "1;26" }, +/obj/structure/machinery/door/poddoor/almayer{ + id = "chinookreq"; + name = "Requisitions Lockdown" + }, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" }, /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"; @@ -7228,9 +8148,7 @@ }, /area/adminlevel/chinook/sec) "zR" = ( -/obj/structure/machinery/medical_pod/sleeper{ - dir = 8 - }, +/obj/structure/machinery/medical_pod/sleeper, /turf/open/floor/almayer{ dir = 4; icon_state = "sterile_green_corner" @@ -7259,7 +8177,7 @@ icon_state = "p_stair_full" }, /obj/structure/barricade/handrail/strata{ - layer = 3.5 + layer = 4.5 }, /turf/open/floor/almayer{ dir = 5; @@ -7270,8 +8188,8 @@ /turf/closed/wall/almayer/reinforced, /area/adminlevel/chinook/engineering) "zX" = ( -/obj/structure/machinery/power/fusion_engine, /obj/structure/platform, +/obj/structure/prop/invuln/fusion_reactor, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -7368,6 +8286,7 @@ /area/adminlevel/chinook/offices) "Ao" = ( /obj/structure/largecrate/random/barrel/green, +/obj/structure/machinery/light, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -7399,12 +8318,12 @@ }, /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, +/obj/structure/surface/table/reinforced/black, /turf/open/floor/almayer{ icon_state = "blue" }, @@ -7438,6 +8357,15 @@ icon_state = "sterile_green" }, /area/adminlevel/chinook/medical) +"AC" = ( +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/chinook/event) +"AD" = ( +/turf/closed/shuttle/elevator, +/area/adminlevel/chinook/offices) "AE" = ( /obj/structure/bed/chair/office/dark{ dir = 8 @@ -7485,8 +8413,8 @@ }, /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, @@ -7521,8 +8449,15 @@ icon_state = "redfull" }, /area/adminlevel/chinook) +"AR" = ( +/obj/structure/machinery/door/airlock/almayer/command{ + dir = 1; + name = "\improper Courtroom" + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/event) "AS" = ( -/obj/structure/bed/sofa/south/grey/right, +/obj/structure/reagent_dispensers/water_cooler/stacks, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -7533,10 +8468,10 @@ }, /area/adminlevel/chinook/shuttle/unpowered) "AV" = ( -/obj/structure/machinery/power/fusion_engine, /obj/structure/platform{ dir = 8 }, +/obj/structure/prop/invuln/fusion_reactor, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -7549,6 +8484,13 @@ icon_state = "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" @@ -7573,6 +8515,15 @@ "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" @@ -7584,6 +8535,7 @@ /obj/item/device/flashlight/lamp/green{ pixel_y = 7 }, +/obj/item/toy/deck, /turf/open/floor/carpet{ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; name = "\improper carpet" @@ -7600,19 +8552,23 @@ }, /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{ @@ -7624,6 +8580,17 @@ name = "\improper 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{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/chinook/event) "Bn" = ( /obj/structure/surface/table/almayer, /obj/item/storage/belt/utility/full, @@ -7641,10 +8608,7 @@ /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, @@ -7655,15 +8619,10 @@ }, /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/almayer/uscm/directional{ + dir = 10 }, -/turf/open/floor/plating/plating_catwalk, -/area/adminlevel/chinook/sec) +/area/adminlevel/chinook/shuttle) "Bx" = ( /obj/structure/surface/table/reinforced/black, /obj/structure/machinery/computer/emails{ @@ -7721,12 +8680,6 @@ icon_state = "plating" }, /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{ @@ -7754,12 +8707,14 @@ 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{ + name = "pool" + }, +/area/adminlevel/chinook) "BK" = ( /turf/open/floor/almayer{ dir = 5; @@ -7787,6 +8742,12 @@ }, /turf/open/floor/kutjevo, /area/adminlevel/chinook/event) +"BR" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "sterile_green_side" + }, +/area/adminlevel/chinook/medical) "BS" = ( /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/shuttle) @@ -7812,6 +8773,7 @@ /obj/structure/machinery/light{ dir = 4 }, +/obj/structure/machinery/disposal, /turf/open/floor/almayer{ dir = 6; icon_state = "red" @@ -7836,15 +8798,17 @@ }, /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"; @@ -7866,6 +8830,14 @@ }, /area/adminlevel/chinook) "Cf" = ( +/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{ dir = 8; icon_state = "red" @@ -7877,6 +8849,13 @@ }, /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 @@ -7887,7 +8866,7 @@ }, /area/adminlevel/chinook) "Ck" = ( -/obj/structure/surface/table/reinforced/almayer_B, +/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'; @@ -7914,16 +8893,36 @@ /obj/structure/machinery/vending/coffee, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook) -"Cr" = ( -/obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/kutjevo/plate, -/area/adminlevel/chinook) -"Cs" = ( -/obj/structure/surface/table/almayer, +"Cp" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/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, +/area/adminlevel/chinook) +"Cs" = ( +/obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm{ pixel_y = 6 }, /obj/item/tool/pen, +/obj/item/storage/box/matches{ + pixel_x = -2; + pixel_y = 23 + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -7932,19 +8931,27 @@ /obj/structure/machinery/fuelcell_recycler, /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) +"Cu" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/device/motiondetector{ + pixel_y = 9 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "Cw" = ( -/obj/structure/machinery/light{ - dir = 4 +/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/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/turf/open/floor/almayer{ + icon_state = "ai_floors" }, /area/adminlevel/chinook/offices) "Cx" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emeraldcorner" +/turf/open/floor/almayer/uscm/directional{ + dir = 9 }, /area/adminlevel/chinook/shuttle) "Cz" = ( @@ -7956,7 +8963,7 @@ /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, @@ -7966,12 +8973,20 @@ }, /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{ + icon_state = "blue" + }, +/area/adminlevel/chinook) "CH" = ( /obj/structure/machinery/light, /turf/open/floor/kutjevo/plate, @@ -7993,19 +9008,11 @@ /area/adminlevel/chinook/cryo) "CM" = ( /obj/structure/machinery/light, -/obj/structure/machinery/medical_pod/sleeper{ - dir = 8 - }, +/obj/structure/machinery/medical_pod/sleeper, /turf/open/floor/almayer{ icon_state = "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" @@ -8018,6 +9025,20 @@ icon_state = "plating" }, /area/adminlevel/chinook/engineering) +"CS" = ( +/obj/structure/machinery/cryopod, +/turf/open/floor/almayer{ + icon_state = "sterile_green" + }, +/area/adminlevel/chinook/medical) +"CT" = ( +/obj/effect/decal/medical_decals{ + icon_state = "triagedecaldir" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/chinook/medical) "CU" = ( /obj/structure/machinery/vending/snack, /turf/open/floor/kutjevo/plate, @@ -8054,12 +9075,17 @@ }, /area/adminlevel/chinook/event) "Db" = ( -/obj/structure/machinery/cryopod, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ + name = "\improper Engineering" + }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" + dir = 8; + icon_state = "orange" }, -/area/adminlevel/chinook/medical) +/area/adminlevel/chinook/engineering) "Dc" = ( /obj/structure/toilet{ dir = 4 @@ -8067,21 +9093,31 @@ /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/item/storage/bag/plants{ + pixel_x = 3 + }, +/obj/item/storage/bag/plants{ + pixel_y = -3 + }, +/obj/item/tool/scythe, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" }, -/obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/almayer, /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, @@ -8130,6 +9166,15 @@ }, /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{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "Dr" = ( /obj/structure/closet/secure_closet{ name = "\improper Lethal Injection Locker" @@ -8164,23 +9209,53 @@ }, /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 @@ -8234,6 +9309,15 @@ icon_state = "orange" }, /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; @@ -8255,6 +9339,14 @@ icon_state = "orange" }, /area/adminlevel/chinook/engineering) +"DS" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/corsat{ + icon_state = "squares" + }, +/area/adminlevel/chinook/offices) "DT" = ( /obj/structure/machinery/cryopod, /obj/structure/machinery/light{ @@ -8266,9 +9358,6 @@ /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" @@ -8289,6 +9378,15 @@ icon_state = "red" }, /area/adminlevel/chinook/sec) +"Ea" = ( +/obj/structure/sign/safety/security{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/area/adminlevel/chinook) "Ed" = ( /obj/structure/machinery/cm_vending/clothing/dress, /turf/open/floor/almayer{ @@ -8333,12 +9431,31 @@ icon_state = "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" }, /area/adminlevel/chinook/shuttle/unpowered) +"Em" = ( +/turf/open/floor/kutjevo, +/area/adminlevel/chinook/offices) "En" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, @@ -8357,14 +9474,29 @@ /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{ + name = "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{ @@ -8385,6 +9517,13 @@ dir = 1 }, /area/adminlevel/chinook) +"Ex" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/cargo) "Ey" = ( /turf/open/floor/kutjevo/tan/alt_inner_edge{ dir = 1 @@ -8418,10 +9557,21 @@ /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{ + dir = 4; + icon_state = "emerald" }, /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, @@ -8458,7 +9608,7 @@ /turf/open/floor/prison{ icon_state = "kitchen" }, -/area/space) +/area/adminlevel/chinook/event) "ET" = ( /obj/structure/machinery/vending/security, /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ @@ -8475,6 +9625,12 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/event) +"EV" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/adminlevel/chinook) "EZ" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -8482,6 +9638,16 @@ icon_state = "plating" }, /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{ + icon_state = "redfull" + }, +/area/adminlevel/chinook/offices) "Fb" = ( /obj/structure/bed/chair/office/dark{ dir = 1 @@ -8498,6 +9664,7 @@ /obj/structure/sign/safety/ammunition{ pixel_x = -16 }, +/obj/structure/flora/pottedplant/random, /turf/open/floor/almayer{ icon_state = "red" }, @@ -8513,6 +9680,18 @@ icon_state = "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{ + icon_state = "cargo" + }, +/area/adminlevel/chinook) "Fk" = ( /obj/structure/sign/ROsign{ desc = "A metal plaque discussing firearms safety. Its rules say: \n 1. Always keep firearms pointed in a safe direction away from anyone.\n 2. Keep your finger off the trigger until ready to shoot.\n 3. Do not take any firearms outside of the range.\n 4. No smoking, eating or drinking is allowed while on the firing range."; @@ -8536,8 +9715,20 @@ icon_state = "red" }, /area/adminlevel/chinook) +"Fn" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/corsat{ + icon_state = "squares" + }, +/area/adminlevel/chinook/offices) "Fq" = ( /obj/structure/surface/table/reinforced/black, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_27"; + pixel_y = 12 + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -8551,6 +9742,15 @@ name = "\improper carpet" }, /area/adminlevel/chinook/sec) +"Ft" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/area/adminlevel/chinook) "Fu" = ( /obj/structure/closet/toolcloset, /turf/open/floor/almayer{ @@ -8566,6 +9766,9 @@ icon_state = "plating" }, /area/adminlevel/chinook/engineering) +"Fx" = ( +/turf/closed/shuttle/elevator/gears, +/area/adminlevel/chinook/offices) "Fy" = ( /obj/structure/surface/table/almayer, /obj/item/tool/extinguisher, @@ -8584,24 +9787,22 @@ name = "\improper 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" = ( +"FD" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "emerald" }, /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 @@ -8624,6 +9825,14 @@ icon_state = "plate" }, /area/adminlevel/chinook/engineering) +"FK" = ( +/obj/structure/morgue{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "FL" = ( /obj/structure/machinery/body_scanconsole{ dir = 8 @@ -8653,7 +9862,7 @@ /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/sec) "FQ" = ( -/obj/structure/machinery/telecomms/hub/preset_cent, +/obj/structure/machinery/telecomms/hub, /turf/open/floor/almayer{ icon_state = "tcomms" }, @@ -8689,6 +9898,16 @@ dir = 8 }, /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{ dir = 8 @@ -8731,13 +9950,18 @@ icon_state = "redcorner" }, /area/adminlevel/chinook/sec) +"Gc" = ( +/obj/structure/machinery/door/airlock/multi_tile/elevator/freight, +/turf/open/floor/corsat{ + icon_state = "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" }, @@ -8775,6 +9999,10 @@ pixel_x = 24; pixel_y = 25 }, +/obj/structure/sign/safety/security{ + pixel_x = -12; + pixel_y = 25 + }, /turf/open/floor/almayer{ dir = 1; icon_state = "silver" @@ -8802,12 +10030,15 @@ }, /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, @@ -8838,14 +10069,15 @@ }, /area/adminlevel/chinook/sec) "Gz" = ( -/obj/structure/machinery/light{ - dir = 8 +/obj/structure/bed/chair/comfy{ + dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/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/cargo) +/area/adminlevel/chinook/offices) "GA" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -8872,6 +10104,12 @@ icon_state = "rasputin3" }, /area/adminlevel/chinook/shuttle/unpowered) +"GE" = ( +/obj/structure/largecrate/supply/medicine/blood, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "GF" = ( /obj/structure/sign/safety/conference_room{ pixel_y = 25 @@ -8886,11 +10124,8 @@ /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) @@ -9014,14 +10249,6 @@ name = "\improper 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, @@ -9033,6 +10260,13 @@ icon_state = "orange" }, /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 @@ -9050,10 +10284,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" }, @@ -9090,7 +10320,7 @@ }, /area/adminlevel/chinook/engineering) "Hn" = ( -/obj/structure/machinery/power/fusion_engine, +/obj/structure/prop/invuln/fusion_reactor, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -9144,7 +10374,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/obj/item/tool/weldingtool{ +/obj/item/tool/weldingtool/largetank{ pixel_x = 14; pixel_y = -14 }, @@ -9160,6 +10390,26 @@ name = "\improper 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{ + icon_state = "plate" + }, +/area/adminlevel/chinook/event) "HE" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -9173,11 +10423,11 @@ }, /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, @@ -9193,6 +10443,36 @@ }, /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{ + dir = 1; + icon_state = "green" + }, +/area/adminlevel/chinook/event) +"HL" = ( +/obj/structure/bed/chair, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/offices) "HM" = ( /obj/structure/surface/table/reinforced/almayer_B, /turf/open/floor/almayer{ @@ -9243,11 +10523,19 @@ /area/adminlevel/chinook/cargo) "HR" = ( /obj/structure/largecrate/random/case/double, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" }, /area/adminlevel/chinook/cargo) +"HT" = ( +/turf/closed/shuttle/elevator{ + dir = 4 + }, +/area/adminlevel/chinook/offices) "HU" = ( /obj/structure/surface/table/almayer, /obj/item/roller{ @@ -9269,6 +10557,12 @@ icon_state = "plate" }, /area/adminlevel/chinook/engineering) +"HW" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/adminlevel/chinook/engineering) "HX" = ( /obj/structure/machinery/light{ dir = 8 @@ -9294,26 +10588,35 @@ icon_state = "red" }, /area/adminlevel/chinook/sec) +"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{ icon_state = "kitchen" }, /area/adminlevel/chinook/event) +"If" = ( +/obj/structure/sign/safety/bathmens{ + pixel_y = -25 + }, +/turf/open/floor/almayer{ + icon_state = "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 @@ -9373,16 +10676,12 @@ /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" + name = "\improper Men's Bathroom" }, /turf/open/floor/almayer{ icon_state = "plate" @@ -9423,10 +10722,6 @@ icon_state = "red" }, /area/adminlevel/chinook/event) -"IE" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer, -/area/adminlevel/chinook/event) "IF" = ( /obj/structure/bed/chair, /obj/structure/sign/nosmoking_1{ @@ -9452,6 +10747,13 @@ icon_state = "rightengine_1" }, /area/adminlevel/chinook/shuttle/unpowered) +"IL" = ( +/obj/structure/machinery/disposal, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/adminlevel/chinook/event) "IM" = ( /obj/structure/bed/chair/comfy{ dir = 1; @@ -9466,17 +10768,14 @@ /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{ @@ -9489,11 +10788,7 @@ /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{ @@ -9502,13 +10797,12 @@ /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{ @@ -9519,6 +10813,25 @@ icon_state = "plating" }, /area/adminlevel/chinook/sec) +"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{ + icon_state = "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{ dir = 9; @@ -9559,13 +10872,6 @@ icon_state = "blue" }, /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, @@ -9580,6 +10886,26 @@ icon_state = "red" }, /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{ + icon_state = "plate" + }, +/area/adminlevel/chinook) "Jr" = ( /obj/structure/machinery/door_control{ id = "chinookbriglock"; @@ -9598,13 +10924,11 @@ }, /area/adminlevel/chinook/sec) "Ju" = ( -/obj/structure/machinery/sleep_console{ - dir = 8 - }, +/obj/structure/bed/chair/wheelchair, /turf/open/floor/almayer{ - icon_state = "sterile_green_side" + icon_state = "plate" }, -/area/adminlevel/chinook/offices) +/area/adminlevel/chinook/medical) "Jx" = ( /obj/structure/surface/rack, /turf/open/floor/almayer{ @@ -9614,28 +10938,37 @@ /area/adminlevel/chinook/sec) "Jy" = ( /obj/structure/surface/table/almayer, +/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{ dir = 1; icon_state = "sterile_green_corner" }, /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" + dir = 8; + icon_state = "sterile_green_side" }, -/area/adminlevel/chinook/offices) +/area/adminlevel/chinook/medical) +"JA" = ( +/obj/structure/target{ + name = "punching bag" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook) "JB" = ( /obj/structure/platform_decoration{ dir = 8 @@ -9645,6 +10978,25 @@ icon_state = "plating" }, /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{ + icon_state = "cargo" + }, +/area/adminlevel/chinook) +"JE" = ( +/obj/structure/sign/safety/autodoc{ + pixel_x = 12; + pixel_y = 25 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/chinook/medical) "JG" = ( /obj/structure/surface/table/reinforced/black, /obj/item/storage/fancy/cigarettes/emeraldgreen, @@ -9653,6 +11005,13 @@ name = "\improper carpet" }, /area/adminlevel/chinook/sec) +"JH" = ( +/obj/structure/machinery/cryopod, +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "sterile_green" + }, +/area/adminlevel/chinook/medical) "JI" = ( /obj/structure/platform, /obj/structure/stairs/perspective{ @@ -9671,6 +11030,28 @@ "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{ + icon_state = "plate" + }, +/area/adminlevel/chinook) "JO" = ( /obj/structure/surface/rack, /obj/item/device/lightreplacer, @@ -9685,6 +11066,24 @@ "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{ + icon_state = "plate" + }, +/area/adminlevel/chinook) "JU" = ( /obj/structure/platform_decoration, /turf/open/floor/almayer{ @@ -9711,12 +11110,15 @@ dir = 8 }, /area/adminlevel/chinook/event) -"Kb" = ( -/obj/structure/closet/emcloset, +"JY" = ( +/obj/structure/machinery/light{ + dir = 8 + }, /turf/open/floor/almayer{ - icon_state = "cargo" + dir = 5; + icon_state = "plating" }, -/area/adminlevel/chinook) +/area/adminlevel/chinook/cargo) "Kd" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" @@ -9724,16 +11126,41 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/almayer, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, /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{ + dir = 4; + icon_state = "silver" + }, +/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{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/cargo) "Kl" = ( /obj/structure/platform_decoration{ dir = 1 @@ -9797,9 +11224,17 @@ "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" = ( @@ -9852,8 +11287,16 @@ /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{ + icon_state = "dark_sterile" + }, +/area/adminlevel/chinook/medical) "KG" = ( /obj/structure/machinery/cm_vending/sorted/medical, /turf/open/floor/almayer{ @@ -9861,14 +11304,28 @@ icon_state = "sterile_green_corner" }, /area/adminlevel/chinook/medical) +"KH" = ( +/obj/structure/sink{ + pixel_y = 24 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/chinook/event) +"KI" = ( +/obj/structure/machinery/door/airlock/almayer/medical{ + name = "\improper Misc Storage" + }, +/turf/open/floor/almayer{ + icon_state = "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, @@ -9892,10 +11349,10 @@ }, /area/adminlevel/chinook) "KN" = ( -/obj/structure/machinery/medical_pod/bodyscanner, /obj/structure/machinery/light{ dir = 8 }, +/obj/structure/machinery/medical_pod/bodyscanner, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_side" @@ -9911,10 +11368,10 @@ }, /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" = ( @@ -9923,12 +11380,46 @@ icon_state = "silver" }, /area/adminlevel/chinook) +"KV" = ( +/obj/structure/machinery/door/poddoor/almayer{ + dir = 4; + id = "chinookreq"; + name = "Requisitions Lockdown" + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/adminlevel/chinook) "KW" = ( /turf/open/floor/almayer{ dir = 4; icon_state = "green" }, /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{ + dir = 1; + icon_state = "green" + }, +/area/adminlevel/chinook/event) "KY" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -9997,6 +11488,12 @@ icon_state = "plate" }, /area/adminlevel/chinook/engineering) +"Lg" = ( +/obj/structure/machinery/cm_vending/sorted/medical/marinemed, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/chinook/medical) "Li" = ( /turf/open/floor/almayer, /area/adminlevel/chinook/shuttle) @@ -10016,12 +11513,15 @@ }, /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,6 +11542,19 @@ icon_state = "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{ + icon_state = "ai_floors" + }, +/area/adminlevel/chinook/offices) "Ls" = ( /obj/structure/machinery/iv_drip, /turf/open/floor/almayer{ @@ -10069,6 +11582,17 @@ }, /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{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/chinook/offices) "Ly" = ( /obj/structure/machinery/light{ dir = 1 @@ -10104,6 +11628,16 @@ icon_state = "red" }, /area/adminlevel/chinook/sec) +"LC" = ( +/obj/structure/sign/safety/cryo{ + pixel_x = 32; + pixel_y = -8 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/area/adminlevel/chinook) "LD" = ( /obj/structure/machinery/vending/snack, /turf/open/floor/kutjevo/plate, @@ -10168,6 +11702,9 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -10205,6 +11742,12 @@ name = "\improper 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 @@ -10215,8 +11758,8 @@ }, /area/adminlevel/chinook/event) "LU" = ( -/obj/structure/machinery/light{ - dir = 4 +/obj/structure/sign/safety/bathwomens{ + pixel_x = 32 }, /turf/open/floor/almayer{ dir = 4; @@ -10226,6 +11769,20 @@ "LV" = ( /turf/open/floor/almayer, /area/adminlevel/chinook/event) +"LW" = ( +/turf/open/floor/almayer{ + icon_state = "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) @@ -10292,6 +11849,18 @@ icon_state = "orange" }, /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{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "Mp" = ( /obj/structure/prop/almayer/name_stencil{ icon_state = "chinook4"; @@ -10306,18 +11875,6 @@ icon_state = "sterile_green_side" }, /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" @@ -10335,9 +11892,9 @@ }, /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" = ( @@ -10394,13 +11951,36 @@ icon_state = "red" }, /area/adminlevel/chinook/sec) -"MG" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "cargo" +"MD" = ( +/obj/structure/platform_decoration{ + dir = 8 }, -/area/adminlevel/chinook/sec) +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/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" + }, +/area/adminlevel/chinook/sec) "MH" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/almayer{ @@ -10431,9 +12011,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"; @@ -10441,6 +12020,12 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) +"MO" = ( +/obj/structure/machinery/recharge_station, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/adminlevel/chinook) "MQ" = ( /obj/structure/machinery/iv_drip, /turf/open/floor/almayer{ @@ -10486,6 +12071,13 @@ icon_state = "plate" }, /area/adminlevel/chinook/engineering) +"Nb" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/cargo) "Nc" = ( /obj/structure/largecrate/supply/medicine/blood, /turf/open/floor/almayer{ @@ -10556,9 +12148,7 @@ }, /area/adminlevel/chinook/engineering) "Np" = ( -/obj/structure/cargo_container/arious/right{ - indestructible = 1 - }, +/obj/structure/cargo_container/seegson/right, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -10584,16 +12174,13 @@ /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, +/obj/item/stack/sheet/metal/large_stack, /turf/open/floor/almayer{ icon_state = "cargo" }, @@ -10628,9 +12215,7 @@ }, /area/adminlevel/chinook/sec) "Ny" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, +/obj/structure/flora/pottedplant/random, /turf/open/floor/almayer{ dir = 1; icon_state = "blue" @@ -10657,11 +12242,13 @@ }, /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{ + icon_state = "sterile_green_side" + }, +/area/adminlevel/chinook/offices) "NE" = ( /obj/structure/machinery/door/airlock/almayer/security{ dir = 1; @@ -10727,17 +12314,50 @@ icon_state = "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" + icon_state = "plate" }, -/area/adminlevel/chinook/sec) +/area/adminlevel/chinook/offices) +"NW" = ( +/obj/structure/surface/table/reinforced/black, +/obj/structure/machinery/light{ + dir = 8 + }, +/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{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper 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" @@ -10753,27 +12373,12 @@ }, /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, +/obj/structure/reagent_dispensers/fueltank/custom, /turf/open/floor/almayer{ dir = 4; icon_state = "sterile_green_side" }, /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; @@ -10824,6 +12429,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/sec) +"Or" = ( +/obj/structure/reagent_dispensers/fueltank/custom, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "Os" = ( /obj/structure/surface/table/almayer, /obj/item/tool/crowbar{ @@ -10844,13 +12455,6 @@ icon_state = "sterile_green_side" }, /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 @@ -10886,11 +12490,18 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/sec) "OB" = ( -/obj/structure/machinery/cryopod, /turf/open/floor/almayer{ - icon_state = "sterile_green_corner" + icon_state = "plate" }, /area/adminlevel/chinook/medical) +"OC" = ( +/obj/structure/sign/safety/bathunisex{ + pixel_y = -25 + }, +/turf/open/floor/almayer{ + icon_state = "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."; @@ -10939,6 +12550,12 @@ icon_state = "plating" }, /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, /obj/item/reagent_container/glass/bucket, @@ -10961,6 +12578,7 @@ /obj/item/trash/burger{ pixel_x = -20 }, +/obj/structure/machinery/seed_extractor, /turf/open/floor/almayer{ dir = 1; icon_state = "green" @@ -10977,18 +12595,28 @@ /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, +/obj/structure/prop/pred_flight{ + icon_state = "syndishuttle"; + name = "shuttle control console" + }, /turf/open/shuttle/dropship{ icon_state = "rasputin15" }, /area/adminlevel/chinook/shuttle/unpowered) +"OT" = ( +/obj/structure/machinery/cm_vending/clothing/synth/snowflake, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/adminlevel/chinook) "OU" = ( -/obj/structure/sign/safety/reception{ +/obj/structure/sign/safety/debark_lounge{ pixel_x = 32 }, /turf/open/floor/almayer{ @@ -11034,7 +12662,7 @@ "OZ" = ( /obj/structure/platform, /obj/structure/barricade/handrail/strata{ - layer = 3.5 + layer = 4.5 }, /turf/open/floor/almayer{ dir = 5; @@ -11043,6 +12671,13 @@ /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" = ( @@ -11065,11 +12700,25 @@ icon_state = "red" }, /area/adminlevel/chinook/sec) +"Pe" = ( +/obj/structure/platform_decoration/strata/metal{ + dir = 4 + }, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) "Pf" = ( /turf/open/floor/kutjevo/colors/blue/edge{ dir = 4 }, /area/adminlevel/chinook) +"Pg" = ( +/obj/structure/closet/secure_closet/freezer/fridge/groceries, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/chinook/event) "Ph" = ( /obj/structure/filingcabinet/seeds, /turf/open/floor/almayer{ @@ -11078,12 +12727,9 @@ }, /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{ @@ -11101,7 +12747,7 @@ "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,6 +12762,18 @@ icon_state = "plate" }, /area/adminlevel/chinook/engineering) +"Po" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/cargo) "Pp" = ( /obj/item/reagent_container/glass/bucket/janibucket, /turf/open/floor/almayer{ @@ -11139,6 +12797,16 @@ name = "\improper 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, @@ -11162,11 +12830,23 @@ }, /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/corsat{ + icon_state = "squares" }, -/turf/open/floor/almayer, /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" @@ -11191,6 +12871,11 @@ 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" = ( @@ -11257,15 +12942,6 @@ icon_state = "green" }, /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" @@ -11275,6 +12951,9 @@ /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" = ( @@ -11287,13 +12966,6 @@ icon_state = "green" }, /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, @@ -11304,6 +12976,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{ @@ -11375,6 +13053,12 @@ icon_state = "plating" }, /area/adminlevel/chinook/offices) +"Qg" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/chinook/event) "Qh" = ( /obj/structure/largecrate/random, /turf/open/floor/almayer{ @@ -11437,14 +13121,21 @@ }, /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{ @@ -11489,17 +13180,45 @@ name = "\improper carpet" }, /area/adminlevel/chinook/sec) +"QA" = ( +/obj/structure/closet/secure_closet/freezer/fridge/full, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "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) -"QD" = ( -/obj/structure/surface/table/reinforced/almayer_B, /obj/item/paper_bin/uscm{ - pixel_y = 6 + 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{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper 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; @@ -11544,6 +13263,14 @@ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) +"QJ" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/corsat{ + icon_state = "squares" + }, +/area/adminlevel/chinook/cargo) "QL" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 @@ -11587,6 +13314,20 @@ icon_state = "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, @@ -11600,6 +13341,25 @@ icon_state = "green" }, /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{ @@ -11612,19 +13372,18 @@ name = "\improper 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" @@ -11659,6 +13418,15 @@ dir = 8 }, /area/adminlevel/chinook) +"Ro" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/offices) "Rp" = ( /obj/structure/platform{ dir = 4 @@ -11677,8 +13445,16 @@ icon_state = "plating" }, /area/adminlevel/chinook/sec) +"Rs" = ( +/obj/structure/sign/safety/bathwomens{ + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/adminlevel/chinook) "Rt" = ( -/obj/structure/machinery/power/fusion_engine, /obj/structure/platform{ dir = 8 }, @@ -11690,22 +13466,17 @@ pixel_x = -15; pixel_y = -7 }, +/obj/structure/prop/invuln/fusion_reactor, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" }, /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 - }, +/obj/structure/machinery/disposal, /turf/open/floor/almayer{ - icon_state = "dark_sterile" + dir = 4; + icon_state = "sterile_green_corner" }, /area/adminlevel/chinook/medical) "Rx" = ( @@ -11714,12 +13485,24 @@ icon_state = "cargo" }, /area/adminlevel/chinook/sec) +"Ry" = ( +/obj/structure/barricade/handrail/strata{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "blue" + }, +/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; @@ -11731,14 +13514,27 @@ }, /area/adminlevel/chinook/sec) "RD" = ( -/obj/structure/machinery/power/fusion_engine, /obj/structure/machinery/light, /obj/structure/platform, +/obj/structure/prop/invuln/fusion_reactor, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" }, /area/adminlevel/chinook/engineering) +"RE" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/engineering) +"RF" = ( +/turf/open/floor/corsat{ + icon_state = "plate" + }, +/area/adminlevel/chinook/cargo) "RH" = ( /obj/structure/toilet{ dir = 8 @@ -11775,11 +13571,7 @@ 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{ @@ -11794,6 +13586,17 @@ /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{ + icon_state = "plate" + }, +/area/adminlevel/chinook/offices) "RR" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 @@ -11859,27 +13662,15 @@ }, /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 }, +/obj/structure/closet/secure_closet/guncabinet/red{ + name = "provost armor rack" + }, /turf/open/floor/almayer{ - icon_state = "cargo" + dir = 5; + icon_state = "plating" }, /area/adminlevel/chinook/sec) "Sg" = ( @@ -11889,6 +13680,17 @@ icon_state = "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{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/chinook) "Si" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -11928,10 +13730,7 @@ /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) - }, +/obj/structure/machinery/telecomms/bus, /turf/open/floor/almayer{ icon_state = "tcomms" }, @@ -12022,18 +13821,18 @@ "SF" = ( /obj/structure/surface/rack, /obj/item/reagent_container/spray/cleaner, +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, /turf/open/floor/almayer{ dir = 1; icon_state = "green" }, /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{ + icon_state = "plate" }, /area/adminlevel/chinook/offices) "SI" = ( @@ -12058,11 +13857,28 @@ "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{ + dir = 4; + icon_state = "silver" + }, +/area/adminlevel/chinook) "SP" = ( /turf/closed/wall/almayer/outer, /area/adminlevel/chinook) "SQ" = ( -/obj/structure/machinery/telecomms/server/presets/centcomm, +/obj/structure/machinery/telecomms/server, /turf/open/floor/almayer{ icon_state = "tcomms" }, @@ -12071,6 +13887,18 @@ /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{ + icon_state = "kitchen" + }, +/area/adminlevel/chinook/event) "ST" = ( /obj/structure/largecrate/supply/supplies/water, /obj/item/reagent_container/spray/cleaner{ @@ -12098,9 +13926,7 @@ }, /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 @@ -12116,6 +13942,15 @@ icon_state = "test_floor5" }, /area/adminlevel/chinook/engineering) +"SY" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/adminlevel/chinook/engineering) "Ta" = ( /obj/structure/surface/table/almayer, /obj/item/folder/white, @@ -12143,6 +13978,13 @@ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) +"Tg" = ( +/obj/structure/machinery/door/airlock/multi_tile/elevator/freight, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/cargo) "Th" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -12157,6 +13999,12 @@ icon_state = "rasputin15" }, /area/adminlevel/chinook/shuttle/unpowered) +"Tj" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "bluecorner" + }, +/area/adminlevel/chinook) "Tl" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, @@ -12173,10 +14021,10 @@ }, /area/adminlevel/chinook/medical) "Tp" = ( -/obj/structure/machinery/medical_pod/autodoc, /obj/structure/sign/safety/autodoc{ pixel_x = -16 }, +/obj/structure/machinery/medical_pod/autodoc, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_side" @@ -12188,6 +14036,12 @@ }, /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" @@ -12219,7 +14073,7 @@ }, /area/adminlevel/chinook/sec) "TA" = ( -/obj/structure/cargo_container/arious/leftmid, +/obj/structure/cargo_container/seegson/left, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -12251,9 +14105,9 @@ /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{ @@ -12263,6 +14117,20 @@ icon_state = "plating_striped" }, /area/adminlevel/chinook/sec) +"TJ" = ( +/turf/open/floor/corsat{ + icon_state = "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, /obj/structure/machinery/light{ @@ -12274,8 +14142,11 @@ }, /area/adminlevel/chinook/engineering) "TM" = ( -/obj/structure/closet/emcloset, +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, /turf/open/floor/almayer{ + dir = 6; icon_state = "emerald" }, /area/adminlevel/chinook/shuttle) @@ -12291,14 +14162,38 @@ /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{ + dir = 4; + icon_state = "sterile_green_corner" + }, +/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{ + dir = 1; + icon_state = "red" + }, +/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{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/chinook/offices) "TV" = ( /obj/structure/sign/safety/conference_room{ pixel_y = -24 @@ -12374,6 +14269,7 @@ /area/adminlevel/chinook/medical) "Uf" = ( /obj/structure/surface/table/almayer, +/obj/item/storage/surgical_tray, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_corner" @@ -12395,9 +14291,6 @@ /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"; @@ -12406,7 +14299,18 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) -"Ul" = ( +"Uk" = ( +/obj/structure/machinery/light, +/obj/structure/surface/table/almayer, +/obj/item/trash/USCMtray{ + pixel_x = -4; + pixel_y = 10 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/offices) +"Ul" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/paper_bin/uscm{ pixel_y = 6 @@ -12432,12 +14336,6 @@ icon_state = "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{ @@ -12484,9 +14382,19 @@ icon_state = "plate" }, /area/adminlevel/chinook/cryo) +"Uy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silvercorner" + }, +/area/adminlevel/chinook) "Uz" = ( /obj/structure/surface/rack, /obj/item/clothing/suit/storage/hazardvest, +/obj/item/device/lightreplacer, /turf/open/floor/almayer{ icon_state = "cargo" }, @@ -12571,7 +14479,10 @@ }, /area/adminlevel/chinook/sec) "UQ" = ( -/obj/structure/machinery/optable, +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/machinery/iv_drip, /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_side" @@ -12609,18 +14520,22 @@ }, /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{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/chinook/offices) "UX" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/book/manual/surgery, +/obj/structure/machinery/disposal, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_corner" @@ -12669,6 +14584,16 @@ icon_state = "sterile_green_corner" }, /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{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "Ve" = ( /obj/structure/surface/table/reinforced/black, /turf/open/floor/almayer{ @@ -12712,6 +14637,11 @@ }, /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) @@ -12732,6 +14662,9 @@ }, /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{ @@ -12754,6 +14687,12 @@ icon_state = "red" }, /area/adminlevel/chinook/sec) +"Vx" = ( +/obj/structure/largecrate/supply/generator, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "Vz" = ( /turf/open/floor/almayer{ dir = 8; @@ -12787,12 +14726,14 @@ /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{ + dir = 9; + icon_state = "red" + }, +/area/adminlevel/chinook/sec) "VJ" = ( /obj/structure/machinery/light{ dir = 4 @@ -12803,14 +14744,10 @@ }, /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 }, +/obj/structure/machinery/telecomms/receiver, /turf/open/floor/almayer{ icon_state = "tcomms" }, @@ -12825,6 +14762,27 @@ icon_state = "plating" }, /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{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "VQ" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -12854,6 +14812,19 @@ }, /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; @@ -12889,15 +14860,30 @@ icon_state = "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{ + dir = 4; + icon_state = "silver" + }, +/area/adminlevel/chinook) "Wf" = ( /turf/open/space, /area/space) @@ -12971,25 +14957,42 @@ /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, +/obj/item/weapon/gun/rifle/l42a, +/obj/item/weapon/gun/rifle/l42a, +/obj/item/weapon/gun/rifle/l42a, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" }, /area/adminlevel/chinook/sec) +"Wt" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/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/closet/fireaxecabinet{ - pixel_x = -32 +/obj/structure/machinery/disposal, +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/turf/open/floor/almayer, /area/adminlevel/chinook) "Wx" = ( -/obj/structure/bed/sofa/south/grey/left, +/obj/structure/machinery/computer/arcade, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -13085,6 +15088,18 @@ /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{ + icon_state = "plate" + }, +/area/adminlevel/chinook/offices) "WN" = ( /obj/structure/machinery/iv_drip, /turf/open/floor/almayer{ @@ -13197,11 +15212,12 @@ }, /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"; @@ -13342,11 +15358,6 @@ icon_state = "plating" }, /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 @@ -13371,15 +15382,11 @@ }, /area/adminlevel/chinook/offices) "XJ" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 1; - name = "\improper Reactor Bay" - }, +/obj/structure/largecrate/supply/medicine/optable, /turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" + icon_state = "plate" }, -/area/adminlevel/chinook/engineering) +/area/adminlevel/chinook/medical) "XK" = ( /obj/vehicle/powerloader, /obj/structure/platform{ @@ -13403,14 +15410,6 @@ icon_state = "red" }, /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{ @@ -13434,11 +15433,10 @@ pixel_x = 27; serial_number = 11 }, -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 1; - name = "\improper Reactor Bay" +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" }, -/turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/engineering) "XP" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -13488,6 +15486,13 @@ icon_state = "red" }, /area/adminlevel/chinook/sec) +"XW" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/adminlevel/chinook) "XZ" = ( /obj/structure/machinery/chem_dispenser, /turf/open/floor/almayer{ @@ -13496,12 +15501,13 @@ }, /area/adminlevel/chinook/medical) "Ya" = ( -/obj/structure/machinery/light{ - dir = 4 - }, /obj/effect/decal/warning_stripes{ icon_state = "NE-out" }, +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 7 + }, /turf/open/floor/almayer{ dir = 4; icon_state = "red" @@ -13560,9 +15566,6 @@ /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 @@ -13575,9 +15578,6 @@ "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" }, @@ -13601,6 +15601,9 @@ icon_state = "sterile_green_corner" }, /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{ @@ -13610,12 +15613,20 @@ icon_state = "kitchen" }, /area/adminlevel/chinook/event) -"Yq" = ( +"Yp" = ( /turf/open/floor/almayer{ dir = 8; - icon_state = "cargo_arrow" + icon_state = "red" }, -/area/adminlevel/chinook/shuttle) +/area/adminlevel/chinook/sec) +"Yq" = ( +/obj/structure/machinery/door/airlock/almayer/command{ + name = "\improper Male Locker Room" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook) "Yr" = ( /turf/open/floor/almayer_hull{ dir = 5; @@ -13638,20 +15649,13 @@ /obj/item/clothing/head/welding{ pixel_y = 7 }, +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, /turf/open/floor/almayer{ icon_state = "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{ @@ -13806,12 +15810,7 @@ }, /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" - }, +/obj/structure/machinery/telecomms/allinone, /turf/open/floor/almayer{ icon_state = "tcomms" }, @@ -13869,7 +15868,7 @@ /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 }, @@ -13877,6 +15876,25 @@ icon_state = "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{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/chinook/offices) "Zf" = ( /obj/structure/sign/poster{ pixel_y = -32 @@ -13887,7 +15905,10 @@ /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 @@ -13900,7 +15921,11 @@ "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, @@ -14050,9 +16075,16 @@ icon_state = "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 }, @@ -14078,6 +16110,9 @@ /area/adminlevel/chinook/sec) "ZK" = ( /obj/structure/machinery/cryo_cell, +/obj/effect/decal/medical_decals{ + icon_state = "cryotop" + }, /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_side" @@ -14113,7 +16148,18 @@ icon_state = "plating" }, /area/adminlevel/chinook/engineering) -"ZP" = ( +"ZO" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/reagentgrinder{ + pixel_y = 3 + }, +/obj/item/device/analyzer/plant_analyzer, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/adminlevel/chinook/event) +"ZP" = ( /obj/structure/machinery/vending/snack, /turf/open/floor/almayer{ icon_state = "plate" @@ -14146,8 +16192,7 @@ /area/adminlevel/chinook/engineering) "ZV" = ( /turf/open/floor/almayer/uscm/directional{ - dir = 8; - icon_state = "logo_c" + dir = 4 }, /area/adminlevel/chinook/shuttle) "ZW" = ( @@ -14159,6 +16204,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" = ( @@ -14377,34 +16425,9 @@ 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 @@ -14427,8 +16450,6 @@ oi oi oi oi -"} -(3,1,1) = {" oi oi oi @@ -14454,6 +16475,8 @@ oi oi oi oi +"} +(3,1,1) = {" oi oi oi @@ -14504,34 +16527,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 @@ -14554,8 +16553,6 @@ oi oi oi oi -"} -(4,1,1) = {" oi oi oi @@ -14605,6 +16602,8 @@ oi oi oi oi +"} +(4,1,1) = {" oi oi oi @@ -14631,34 +16630,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 @@ -14681,8 +16652,6 @@ oi oi oi oi -"} -(5,1,1) = {" oi oi oi @@ -14758,34 +16727,10 @@ 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 -Pk -Pk -Pk -af +"} +(5,1,1) = {" oi oi oi @@ -14808,8 +16753,6 @@ oi oi oi oi -"} -(6,1,1) = {" oi oi oi @@ -14885,34 +16828,8 @@ 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 @@ -14935,12 +16852,12 @@ oi oi oi oi -"} -(7,1,1) = {" oi oi oi oi +"} +(6,1,1) = {" oi oi oi @@ -15024,10 +16941,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 @@ -15053,6 +16983,8 @@ oi oi oi oi +"} +(7,1,1) = {" oi oi oi @@ -15062,8 +16994,6 @@ oi oi oi oi -"} -(8,1,1) = {" oi oi oi @@ -15138,35 +17068,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 @@ -15190,7 +17111,15 @@ oi oi oi "} -(9,1,1) = {" +(8,1,1) = {" +oi +oi +oi +oi +oi +oi +oi +oi oi oi oi @@ -15270,26 +17199,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 @@ -15316,25 +17234,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 @@ -15390,6 +17294,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 @@ -15397,26 +17326,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 @@ -15443,11 +17361,11 @@ oi oi oi oi -"} -(11,1,1) = {" oi oi oi +"} +(10,1,1) = {" oi oi oi @@ -15492,24 +17410,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 @@ -15520,30 +17420,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 @@ -15570,8 +17488,11 @@ oi oi oi oi +oi +oi +oi "} -(12,1,1) = {" +(11,1,1) = {" oi oi oi @@ -15619,62 +17540,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 @@ -15698,7 +17619,7 @@ oi oi oi "} -(13,1,1) = {" +(12,1,1) = {" oi oi oi @@ -15748,27 +17669,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 @@ -15787,8 +17738,6 @@ oi oi oi oi -Zu -af oi oi oi @@ -15796,6 +17745,8 @@ oi oi oi oi +"} +(13,1,1) = {" oi oi oi @@ -15824,8 +17775,6 @@ oi oi oi oi -"} -(14,1,1) = {" oi oi oi @@ -15845,11 +17794,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 @@ -15873,24 +17870,25 @@ oi oi oi oi -Zu -al -SP -pk -uz -wl -wl -ah -AP -ah -ah -SP -al -al -al -al -al -af +oi +oi +"} +(14,1,1) = {" +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi oi oi oi @@ -15912,18 +17910,6 @@ Yt Yt Yt Yt -ai -oi -Zu -af -oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt Yt Yt Yt @@ -15935,11 +17921,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 @@ -15951,12 +17985,6 @@ oi oi oi oi -"} -(15,1,1) = {" -oi -oi -oi -oi oi oi oi @@ -15971,6 +17999,8 @@ oi oi oi oi +"} +(15,1,1) = {" oi oi oi @@ -15993,7 +18023,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 @@ -16012,46 +18060,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 @@ -16078,26 +18123,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 @@ -16120,7 +18150,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 @@ -16139,19 +18187,27 @@ ag ag vn SP -al -al -al -al -al -af -oi -oi -oi -oi -oi -oi -oi +Wq +qZ +ZZ +ow +lO +ZZ +CF +pv +pX +BJ +pX +pX +pX +pX +pX +pX +pX +nk +fL +SP +af oi oi oi @@ -16159,26 +18215,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 @@ -16205,26 +18250,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 @@ -16247,74 +18277,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 +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 @@ -16332,18 +18372,6 @@ oi oi oi oi -"} -(18,1,1) = {" -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi oi oi oi @@ -16352,6 +18380,8 @@ oi oi oi oi +"} +(18,1,1) = {" oi oi oi @@ -16374,7 +18404,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 @@ -16396,60 +18444,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 @@ -16459,8 +18489,6 @@ oi oi oi oi -"} -(19,1,1) = {" oi oi oi @@ -16479,6 +18507,8 @@ oi oi oi oi +"} +(19,1,1) = {" oi oi oi @@ -16501,7 +18531,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 @@ -16523,42 +18571,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 @@ -16610,25 +18658,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 @@ -16647,63 +18695,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 @@ -16713,8 +18743,6 @@ oi oi oi oi -"} -(21,1,1) = {" oi oi oi @@ -16733,6 +18761,8 @@ oi oi oi oi +"} +(21,1,1) = {" oi oi oi @@ -16755,7 +18785,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 @@ -16768,8 +18816,8 @@ ZZ ZZ qZ UN -WF -Oe +Ys +yR Be ZZ Ff @@ -16777,62 +18825,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 @@ -16840,10 +18868,6 @@ oi oi oi oi -"} -(22,1,1) = {" -oi -oi oi oi oi @@ -16864,6 +18888,8 @@ oi oi oi oi +"} +(22,1,1) = {" oi oi oi @@ -16882,7 +18908,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 @@ -16895,61 +18943,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 @@ -16967,22 +19007,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 @@ -16991,6 +19015,8 @@ oi oi oi oi +"} +(23,1,1) = {" oi oi oi @@ -17011,6 +19037,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 @@ -17031,43 +19079,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 @@ -17094,12 +19139,11 @@ oi oi oi oi -"} -(24,1,1) = {" -oi oi oi oi +"} +(24,1,1) = {" oi oi oi @@ -17114,30 +19158,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 @@ -17159,46 +19207,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 @@ -17244,27 +19292,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 @@ -17289,40 +19337,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 @@ -17372,39 +19420,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 @@ -17419,40 +19467,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 @@ -17499,31 +19547,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 @@ -17545,37 +19593,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 @@ -17602,6 +19647,9 @@ oi oi oi oi +oi +oi +oi "} (28,1,1) = {" oi @@ -17630,18 +19678,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 @@ -17649,17 +19697,17 @@ al Yc mz mz -vl +Zi vl PW sr XI RU -uN +xa RU RU RU -uN +xa RU YC GJ @@ -17667,6 +19715,14 @@ Wq qZ ZI lO +WF +WF +WF +WF +WF +WF +WF +SP SP SP SP @@ -17675,34 +19731,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 @@ -17729,6 +19774,9 @@ oi oi oi oi +oi +oi +oi "} (29,1,1) = {" oi @@ -17757,26 +19805,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 @@ -17788,7 +19836,7 @@ jF jF jF jF -jF +YC YC Wq ZZ @@ -17803,33 +19851,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 @@ -17856,6 +19901,9 @@ oi oi oi oi +oi +oi +oi "} (30,1,1) = {" oi @@ -17884,23 +19932,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 @@ -17920,7 +19968,7 @@ YC Gk ZZ ZI -Nu +eW Tl OG ZZ @@ -17933,34 +19981,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 @@ -18011,15 +20059,15 @@ GX GX GX Et -vl -dw +Em +bq jF ex vl vl fq vl -vl +Zi jF hp sr @@ -18028,9 +20076,9 @@ aM aA kM jF -cG -Et -Et +eo +uq +uq VH Ix sr @@ -18068,23 +20116,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 @@ -18134,25 +20182,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 @@ -18186,35 +20234,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 @@ -18277,7 +20325,7 @@ vl jF hB sr -xY +uu iO Ns Xx @@ -18287,7 +20335,7 @@ qj qj pB jF -eL +eu sC jF dw @@ -18296,7 +20344,7 @@ xu zE Bj DH -vl +tJ YC Wq qZ @@ -18314,34 +20362,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 @@ -18399,12 +20447,12 @@ sr Zi eN jF -fy +JM gs jF hC sr -xY +uu iV Ns eN @@ -18441,34 +20489,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 @@ -18512,8 +20560,8 @@ oi Zu al al -Xm -zJ +Yc +RA Et qj qj @@ -18531,21 +20579,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 @@ -18568,34 +20616,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 @@ -18652,23 +20700,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 @@ -18682,8 +20730,8 @@ qZ ZZ ZZ ZI -gl -Tl +aW +WF Ph PT QU @@ -18695,34 +20743,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 @@ -18778,9 +20826,9 @@ Et jF sr Zi -Xx +If jF -fy +JM gs jF hI @@ -18793,7 +20841,7 @@ jF mY ny qj -Et +uq PW vl Xx @@ -18804,7 +20852,7 @@ jY zH zH zH -tY +Ft zH zH zH @@ -18835,8 +20883,8 @@ oi oi oi oi -Zu -af +oi +oi oi oi oi @@ -18903,7 +20951,7 @@ GX qj dD jF -ZS +sr Zi Xx jF @@ -18918,9 +20966,9 @@ Ix jF jF nd -Et -Et -Et +uq +uq +uq vl vl eN @@ -18928,12 +20976,12 @@ YC Wq qZ ZI -zW -zW -zW -zW -zW -zW +UK +UK +UK +UK +UK +UK UK UK La @@ -18942,7 +20990,7 @@ Pn PY UK SI -Us +ge Wz SP al @@ -18962,26 +21010,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 @@ -18994,9 +21022,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 "} @@ -19035,10 +21083,10 @@ vl eR cR Qm -Qm -Qm +rG +Zi hJ -Qm +eR Qm Qm Qm @@ -19055,7 +21103,7 @@ tV ZZ ZZ ZI -zW +UK Bn DL Fu @@ -19089,8 +21137,6 @@ XH XH XH XH -Zu -af oi oi oi @@ -19101,29 +21147,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 "} @@ -19148,13 +21196,13 @@ Zu al al Xm -GJ -zJ +Ci +Vt uw bR -Vm -vl -vl +QV +Em +Em CA jF ez @@ -19162,11 +21210,11 @@ vl XI RU RU -RU -RU -RU -RU -uN +rD +Zi +Zi +XI +xa RU rD Xx @@ -19194,15 +21242,15 @@ Ld Ig Il Qa -UK -UK -UK -UK +zW +zW +zW +zW XH XH Zp Zp -RA +zW YU VK So @@ -19216,8 +21264,8 @@ Lc Lc Lc XH -Zu -af +oi +oi oi oi oi @@ -19275,16 +21323,16 @@ Zu al al Xm -zJ -zJ +Vt +Vt bh bV -Vm +QV ct -vl +Em he jF -kL +sr Zi Xx jF @@ -19309,7 +21357,7 @@ Xm Wq qZ ZI -zW +UK Bt zC zC @@ -19321,7 +21369,7 @@ Lf MS Pp Qd -UK +zW SX Uu SX @@ -19329,8 +21377,8 @@ SX XH Zr xh -RA -am +zW +xA am am am @@ -19343,8 +21391,8 @@ pN Ig xC XH -Zu -af +oi +oi oi oi oi @@ -19403,8 +21451,8 @@ al Yc Yc tq -jF -jF +YC +YC jF jF jF @@ -19416,11 +21464,11 @@ Zi Xx jF fz -qj -qj -Cm -Et -ks +fK +QB +DE +uq +eo jF sr vl @@ -19428,7 +21476,7 @@ vl RU RU RU -uN +xa RU RU sE @@ -19436,19 +21484,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 @@ -19456,7 +21504,7 @@ Th XH Zp Zp -RA +zW gT am am @@ -19470,8 +21518,8 @@ LH Fb qU XH -Zu -af +oi +oi oi oi oi @@ -19530,11 +21578,11 @@ al Yc kj vl -jF -nS -vl -vl -vl +YC +xg +Vt +Em +Em qj qj jF @@ -19542,12 +21590,12 @@ sr Zi Xx jF -qa -qj -jI -Zy -Ns -Xx +fR +CC +Kx +DE +uq +uq jF sr eN @@ -19563,27 +21611,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 @@ -19597,8 +21645,8 @@ Ug Ig Ap XH -al -al +Yt +Yt Yt Yt Yt @@ -19657,9 +21705,9 @@ al Yc fy gs -jF -nS -vl +YC +Fa +Vt si Zh qj @@ -19669,37 +21717,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 @@ -19710,18 +21758,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 @@ -19785,8 +21833,8 @@ Yc Yc Yc Yc -jF -fx +YC +bZ qz ss qj @@ -19796,18 +21844,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 @@ -19819,8 +21867,8 @@ ZZ ZI Ay BG -qL -qL +HW +HW GP Ha bz @@ -19835,21 +21883,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 @@ -19924,17 +21972,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 @@ -19981,7 +22029,7 @@ Nq yf sT NA -qL +HW sl XH al @@ -20061,17 +22109,17 @@ sr Xx jF hE -Et +uq oe UI qj YC Iw -Iu +JN Wq ZZ ZI -UK +zW BK Mm Mm @@ -20167,38 +22215,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 @@ -20224,7 +22272,7 @@ UK UK UK UK -sW +iw yO ZX Ig @@ -20294,24 +22342,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 @@ -20327,10 +22375,10 @@ lO mK MN BY -qL -qL +HW +HW GS -tj +rO zC zC zC @@ -20371,29 +22419,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 "} @@ -20420,30 +22468,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 @@ -20452,12 +22500,12 @@ YC fV lO mK -MN +Ic Mm Mm Mm Mm -tj +zC zC IJ LI @@ -20473,11 +22521,11 @@ YG bz Ki Gi -PO +MD +no no no no -BZ UE OZ jk @@ -20490,7 +22538,7 @@ vT je pm Ig -Ri +Pu XH al al @@ -20498,29 +22546,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 "} @@ -20547,47 +22595,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 @@ -20608,9 +22656,9 @@ mA iP zX UK -Ig +jS RM -rO +zC zC Mm UH @@ -20621,33 +22669,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 "} @@ -20674,23 +22722,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 @@ -20703,27 +22751,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 @@ -20743,38 +22791,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 "} @@ -20824,7 +22872,7 @@ Xx on YC nF -Et +uq qj qp qj @@ -20841,14 +22889,14 @@ Ir Ir Ho ZI -WF -BK -Mm -Ig -Ig -Ig +Ys +fb +zC +zC Ig -Xe +Mm +Mm +kn XO Mm Nv @@ -20875,15 +22923,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 @@ -20928,30 +22976,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 @@ -20968,15 +23016,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 @@ -20989,46 +23037,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 "} @@ -21056,29 +23104,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 @@ -21097,13 +23145,13 @@ Be Xv WF WB -Yj -UB +ta +ta WB WB UB oQ -UA +gh YI bz Ki @@ -21117,45 +23165,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 "} @@ -21182,34 +23230,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 @@ -21230,7 +23278,7 @@ ve ve UB oQ -UA +gh UF bz Ki @@ -21240,7 +23288,7 @@ eG pT eG eG -PO +MD OZ cv zC @@ -21254,35 +23302,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 "} @@ -21310,22 +23358,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 @@ -21333,10 +23381,10 @@ Ix ni vl IQ -Et -Et +uq +uq IQ -dD +lg YC Wq qZ @@ -21357,7 +23405,7 @@ UB UB UB bp -UA +gh YK bz Ki @@ -21380,36 +23428,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 "} @@ -21437,22 +23485,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 @@ -21484,16 +23532,16 @@ WB WB UB Yj -UA +gh hQ bz zC Ig Ig -qL -qL -qL -qL +HW +HW +HW +HW zC zC zC @@ -21503,21 +23551,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 @@ -21560,8 +23608,8 @@ oi oi oi Yr -au -au +al +al Yc Yc jF @@ -21583,14 +23631,14 @@ jF jF sr eN -jF -jF +YC +YC nI Ix -jF +YC Ix Ix -jF +YC YC Wq lO @@ -21607,11 +23655,11 @@ WF TD Yj UB -ve TD +ve UB Yj -UA +gh YN BK kn @@ -21630,21 +23678,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 @@ -21687,9 +23735,9 @@ oi oi oi oi -oi -oi Zu +al +al Yc ku cl @@ -21738,16 +23786,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 @@ -21756,22 +23804,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 @@ -21814,13 +23862,13 @@ oi oi oi oi -oi -oi Zu -Yc -kl -VY +al +al +Xm +cf VY +tL dj dN Ix @@ -21836,7 +23884,7 @@ XI RU vl jT -uN +xa RU RU RU @@ -21845,7 +23893,7 @@ zJ sr Zi Vm -jF +YC Wq qZ ZI @@ -21873,7 +23921,7 @@ UE UE CJ Kw -UK +zW sJ UE UE @@ -21883,22 +23931,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 @@ -21941,11 +23989,11 @@ oi oi oi oi -oi -oi Zu -Yc -cf +al +al +Xm +zl VY VY VY @@ -21958,12 +24006,12 @@ jF fU fU gQ -xi -xi -xi +YC +YC +YC ji -xi -xi +YC +YC li Ix Ix @@ -21998,9 +24046,9 @@ ZH fQ UE Sr -CJ +mt Ss -UK +zW CQ CQ mp @@ -22012,20 +24060,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 @@ -22068,15 +24116,15 @@ oi oi oi oi -oi -oi Zu +al +al Yc UQ VY +cZ VY -VY -Ju +dN jF eK Zi @@ -22085,20 +24133,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 @@ -22127,7 +24175,7 @@ UK UK UK UK -UK +zW UK UK UK @@ -22138,21 +24186,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 @@ -22195,16 +24243,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 @@ -22212,12 +24260,12 @@ jF fW gA gV -xi +YC uQ Qf Si -uQ -xi +sw +YC lm nn Ac @@ -22225,7 +24273,7 @@ Ix qj qj qj -Et +uq YC Wq qZ @@ -22269,17 +24317,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 @@ -22322,29 +24370,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 @@ -22352,7 +24400,7 @@ Ix pJ qC qj -Et +uq Xm Wq qZ @@ -22369,8 +24417,8 @@ WF TD Yj UB -ve TD +ve UB Yj TD @@ -22390,42 +24438,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 "} @@ -22449,16 +24497,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 @@ -22466,12 +24514,12 @@ jF fX gB gZ -xi +YC ic Qf jl jW -xi +YC xP vl nN @@ -22479,7 +24527,7 @@ Ix pK qD qj -Et +uq tX Wq lO @@ -22517,46 +24565,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 @@ -22571,6 +24603,8 @@ oi oi oi oi +"} +(67,1,1) = {" oi oi oi @@ -22584,21 +24618,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 @@ -22606,7 +24654,7 @@ YC pM qF qj -Et +uq tW Wq lO @@ -22645,45 +24693,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 @@ -22698,6 +24730,11 @@ oi oi oi oi +"} +(68,1,1) = {" +oi +oi +oi oi oi oi @@ -22711,17 +24748,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 @@ -22733,7 +24781,7 @@ xr qj qj qj -Ns +uq Xm Wq qZ @@ -22771,8 +24819,9 @@ uF KG Iv ZK +mV uF -ph +vS Iv Iv Iv @@ -22780,40 +24829,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 @@ -22823,6 +24857,8 @@ oi oi oi oi +"} +(69,1,1) = {" oi oi oi @@ -22838,16 +24874,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 @@ -22857,12 +24905,12 @@ RS np Al YC -cG -Et -Et -Ns +eo +up +NX +NX YC -jQ +Wq qZ Xv WF @@ -22907,42 +24955,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 @@ -22951,6 +24984,8 @@ oi oi oi oi +"} +(70,1,1) = {" oi oi oi @@ -22967,15 +25002,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 @@ -23011,7 +25059,7 @@ Qv UA UA Iv -Yw +By mQ ma Kv @@ -23034,42 +25082,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 @@ -23078,6 +25111,8 @@ oi oi oi oi +"} +(71,1,1) = {" oi oi oi @@ -23094,19 +25129,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 @@ -23127,12 +25175,12 @@ Vz Vz EA Jf -nW +wr Cj ZZ ZZ Vz -nW +wr ZZ ZZ Cj @@ -23142,7 +25190,7 @@ rx uF uF uF -MQ +ph Iv ru YT @@ -23161,8 +25209,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 @@ -23173,23 +25238,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 @@ -23208,28 +25256,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 @@ -23269,7 +25317,7 @@ uF uF uF uF -uF +CT YR uF uF @@ -23286,43 +25334,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 @@ -23332,6 +25365,8 @@ oi oi oi oi +"} +(73,1,1) = {" oi oi oi @@ -23348,16 +25383,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 @@ -23365,17 +25413,17 @@ zH zH zH zH -tY +Ft zH zH zH zH zH rf -vg -zH +LC +iY zH -tY +Ft ZZ zH ZZ @@ -23396,7 +25444,7 @@ uF uF uF uF -uF +CT uF sY us @@ -23414,14 +25462,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 @@ -23432,18 +25492,6 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi "} (74,1,1) = {" oi @@ -23462,29 +25510,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 @@ -23535,20 +25583,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 @@ -23559,18 +25619,6 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi "} (75,1,1) = {" oi @@ -23589,37 +25637,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 @@ -23630,7 +25678,7 @@ NJ JK CE Tm -Oe +yR qZ ZZ WF @@ -23662,20 +25710,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 @@ -23686,18 +25746,6 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi "} (76,1,1) = {" oi @@ -23716,37 +25764,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 @@ -23783,7 +25831,7 @@ vv uF ph Iv -uF +JE zf uF WN @@ -23795,27 +25843,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 @@ -23843,28 +25891,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 @@ -23872,8 +25920,8 @@ Tm Vr Vr Vr -Vr BP +SL wj wj wj @@ -23900,7 +25948,7 @@ Wq qZ ZI YP -YZ +Lg ZR ZR ZR @@ -23922,14 +25970,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 @@ -23940,18 +26000,6 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi "} (78,1,1) = {" oi @@ -23970,23 +26018,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 @@ -23994,13 +26042,13 @@ gC ZZ ZZ ZZ -iC +lO Tm lD Vr -WQ -ol +Vr BP +SL wj wj wj @@ -24017,9 +26065,9 @@ ZI WF WF WF +cU ZZ -ZZ -ZZ +rF ZZ pC WF @@ -24049,14 +26097,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 @@ -24067,18 +26127,6 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi "} (79,1,1) = {" oi @@ -24097,23 +26145,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 @@ -24125,7 +26173,6 @@ gl Tm WU Vr -Vr om pP Vr @@ -24133,13 +26180,14 @@ Vr Vr Vr Vr +Vr mr Vr Vr Vr mr ZZ -ZZ +lO Xv WF dJ @@ -24148,7 +26196,7 @@ ZZ ZZ zH zH -zH +Wd WF Wq qZ @@ -24176,27 +26224,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 @@ -24224,23 +26272,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 @@ -24252,8 +26300,7 @@ kg Tm kG Vr -Vr -or +om pP Vr Vr @@ -24265,8 +26312,9 @@ Vr Vr Vr Vr +Vr ZZ -ZZ +lO ZI WF WF @@ -24298,47 +26346,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 @@ -24348,6 +26381,8 @@ oi oi oi oi +"} +(81,1,1) = {" oi oi oi @@ -24364,24 +26399,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 @@ -24393,11 +26441,11 @@ TQ TQ MU Wq -ZZ +lO ZZ aT ZZ -Vb +aB Vb WF WF @@ -24412,7 +26460,7 @@ uF uF uF uF -uF +CT YR Ue BB @@ -24425,7 +26473,7 @@ uF uF uF ph -Iv +aw Vq dn FX @@ -24441,13 +26489,13 @@ OH As XK WV -HG -pw -Gz +hi +ar pw pw pw pw +Nb bC al af @@ -24478,23 +26526,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 @@ -24507,8 +26555,8 @@ Tm Vr Vr Vr -Vr BP +SL wj wj wj @@ -24520,12 +26568,12 @@ JK wj MU Wq -ZZ +lO ZZ ZZ ZZ LU -NN +XW WF WF WF @@ -24539,7 +26587,7 @@ uF uF uF uF -uF +CT uF uF uF @@ -24552,7 +26600,7 @@ uF uF uF pe -Iv +aw Vq dn qS @@ -24568,14 +26616,14 @@ dg As MB Vq -HG -pw +hi +ar pw pw pw pw pw -bC +Ke al af oi @@ -24605,24 +26653,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 @@ -24633,9 +26681,9 @@ kq Tm TQ TQ -TQ oz BV +SL wj wj wj @@ -24648,7 +26696,7 @@ wj MU Wq qZ -ZI +xk WF WF WF @@ -24679,7 +26727,7 @@ uF uF uF qf -Iv +aw Nw BU uC @@ -24688,7 +26736,7 @@ pw Vq pw pw -uS +pw pw pw Nc @@ -24696,13 +26744,13 @@ As UY WV Kd -JB -pw -pw +Cp pw +Ex +BC pw dW -bC +Ke al af Wf @@ -24732,38 +26780,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 @@ -24771,7 +26819,7 @@ vk Tm IA JK -CE +hv Tm Gg qZ @@ -24797,7 +26845,7 @@ Ym Iv WT Zo -Mi +fs Oz Oz Zq @@ -24806,7 +26854,7 @@ qA es Oz zR -Iv +aw cs hi pw @@ -24815,7 +26863,7 @@ pw AX pw pw -Gu +pw ST pw op @@ -24829,7 +26877,7 @@ pw TA pw kv -bC +Ke al af Wf @@ -24859,22 +26907,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 @@ -24891,7 +26939,7 @@ Tm Tm Tm Tm -rV +oY tb ej sb @@ -24906,9 +26954,9 @@ ZI WF WF WF +cU ZZ -ZZ -ZZ +Jp ZZ pC WF @@ -24928,12 +26976,12 @@ Iv Iv Iv Iv -Iv -Iv -Iv -Iv -Iv -Iv +aw +aw +aw +aw +aw +aw cQ jb JB @@ -24942,12 +26990,12 @@ pw me pw pw -QB +pw pw pw pw zL -Yk +Po Yk Yk uC @@ -24991,19 +27039,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 @@ -25029,7 +27077,7 @@ SL Tm Gq qZ -GY +ZI WF Jn YH @@ -25042,7 +27090,7 @@ WF Wq qZ tU -nW +wr Vz ZZ ZZ @@ -25074,7 +27122,7 @@ VN pw pw zL -pw +ar pw pw pw @@ -25083,7 +27131,7 @@ pw Np pw Sc -Ke +bC al af Wf @@ -25118,23 +27166,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 @@ -25201,7 +27249,7 @@ lb pw pw lG -pw +ar pw pw pw @@ -25210,7 +27258,7 @@ pw cg pw pw -Ke +bC al af Wf @@ -25257,16 +27305,16 @@ Yr au au au -df -gK -TP -wY -ND +Qx +KH +Ie +Ie +Ie Tm jy Ie kS -Ie +AC Ie hA oW @@ -25274,7 +27322,7 @@ BX qP qP qP -qP +JK qP qP qP @@ -25287,7 +27335,7 @@ ZI WF Jn YH -ZZ +Es WF Qw NN @@ -25296,30 +27344,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 @@ -25329,15 +27377,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 @@ -25384,12 +27432,12 @@ oi oi oi oi -df -df -df -df -df Qx +Ie +Ie +Ie +Qg +Tm jz Ie xj @@ -25399,9 +27447,9 @@ Au oW BX qT -ra +zM tn -kf +JK vo wx ra @@ -25449,20 +27497,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 @@ -25511,16 +27559,16 @@ oi oi oi oi -oi -oi -oi -Zu -al Qx +Pg +dL +QA +Ie +Tm jC Ie Yo -Ie +AC Ie Au oW @@ -25528,7 +27576,7 @@ BX ra rW tr -tZ +JK vK wA ra @@ -25568,25 +27616,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 @@ -25638,24 +27686,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 @@ -25690,35 +27738,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 @@ -25765,13 +27813,13 @@ Pk Pk af oi -oi -oi -oi -Zu -al Qx -jG +jE +JC +Eq +LV +Oy +tG Ie Ie Ie @@ -25807,13 +27855,13 @@ Ul RN jo RI -FE +RI RI Ag gc Yb YL -Br +PV Wq qZ tU @@ -25821,7 +27869,7 @@ Vz Vz Vz Vz -nW +wr Vz ZZ ZZ @@ -25829,13 +27877,13 @@ ZZ ZZ ZZ ZZ -nW +wr Vz Vz ZZ Vz Vz -nW +wr Vz Vz Vz @@ -25892,12 +27940,12 @@ Pk Pk af oi -oi -oi -oi -Zu -al -Qx +SR +tG +LV +tG +yp +Tm jJ jv kY @@ -25934,13 +27982,13 @@ gc gc WJ RI -FE +RI RI oJ gc Vw YL -Br +PV Wq qZ qZ @@ -26019,13 +28067,13 @@ Pk Pk af oi -oi -oi -oi -Zu -al -Qx -Qx +SR +Cq +LV +Cq +eM +Tm +Tm Tm Tm Tm @@ -26049,11 +28097,11 @@ ZI WF Br ZQ -Cf -Cf +Yp +Yp ZQ -Cf -Cf +Yp +Yp ZJ ZQ YL @@ -26070,7 +28118,8 @@ YL Br KT zH -tY +Ft +SN zH zH zH @@ -26079,10 +28128,9 @@ zH zH zH zH -zH -tY +Ft Ks -zH +Kf OU ZZ ZZ @@ -26146,13 +28194,13 @@ Pk Pk af oi -oi -oi -oi -Zu -al -al -Qx +SR +Cq +LV +Cq +LV +IL +Tm kx Mc lM @@ -26192,8 +28240,8 @@ kF Km Fl gc -Yb -YL +TT +gF Br Br Br @@ -26223,7 +28271,7 @@ iT Td iT FD -BS +Li Li tB uB @@ -26273,13 +28321,13 @@ Pk Pk af oi -oi -oi -oi -Zu -al -al -SR +Qx +xm +LV +Cq +LV +De +Tm SL hh EJ @@ -26331,11 +28379,11 @@ ok RK gc gN -Cf -Cf +Yp +Yp bb -Cf -Cf +Yp +Yp Br EM Li @@ -26350,10 +28398,10 @@ BA Wi Wi Cx -Li -Li +fh +Bu vB -iT +tC Li sA Li @@ -26400,13 +28448,13 @@ Pk Pk af oi -oi -oi -oi -Zu -al -al SR +tG +LV +tG +LV +KX +Tm SL hh lN @@ -26414,7 +28462,7 @@ yo SL Tm SL -Au +ha sg tK Au @@ -26440,10 +28488,10 @@ Yb GA YY Ej -Cf -Cf +Yp +Yp bb -Cf +Yp ZQ Ub Yb @@ -26480,7 +28528,7 @@ ou vu Ih VQ -iT +tC tC tC tC @@ -26527,13 +28575,13 @@ Pk Pk af oi -oi -oi -oi -Zu -al -al SR +Cq +LV +Cq +LV +hm +Tm SL hh lP @@ -26654,13 +28702,13 @@ Pk Pk af oi -Jc -Yt -Yt -al -al -al SR +Cq +LV +Cq +LV +HK +Tm SL hh EJ @@ -26718,22 +28766,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 @@ -26781,13 +28829,13 @@ Pk Pk af oi -Zu -al -al -al -al -al Qx +Cq +LV +Rc +LV +ZO +Tm kx Yz Mc @@ -26818,7 +28866,7 @@ dS Br SE Yb -YL +dH gc vz Zw @@ -26845,24 +28893,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 @@ -26908,15 +28956,15 @@ Pk Pk af oi -Zu -al -Qx -Qx Qx Qx Qx Tm Tm +Tm +Tm +Tm +Tm lW Tm Tm @@ -26989,7 +29037,7 @@ Xl Xl Xl uR -eQ +tC af Wf Wf @@ -27050,9 +29098,9 @@ zw zw pW du -rV Fc Fc +sm vM Tm IC @@ -27065,10 +29113,10 @@ Ff HJ Jr bb -Cf -Cf -Cf -Cf +Yp +Yp +Yp +Yp ZQ Vh ZQ @@ -27084,20 +29132,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 @@ -27116,7 +29164,7 @@ oD ri Xl Xl -eQ +hM af Wf Wf @@ -27165,7 +29213,7 @@ oi Zu al Qx -BE +NU il iD jN @@ -27175,9 +29223,9 @@ Mc Mc zw zw -zw +rM du -rV +Fc Fc Fc TQ @@ -27243,7 +29291,7 @@ DJ Ad Xl Xl -tC +hM af Wf Wf @@ -27295,16 +29343,16 @@ SR TQ in iG -Hz +dQ kB IB Mc Mc nP pf -zw -du -sm +rM +rV +Fc Fc Fc TQ @@ -27315,7 +29363,7 @@ Da Tm Gw qZ -ZI +gG Br gc gc @@ -27325,7 +29373,7 @@ PV gc gc gc -Yb +pI XU gc gc @@ -27346,7 +29394,7 @@ Mh Mh vE pY -Mh +YQ Mh Mh Mh @@ -27370,7 +29418,7 @@ Ti fw Xl Xl -tC +hM af Wf Wf @@ -27429,9 +29477,9 @@ Mc Mc nV pf -zw +rM du -rV +Fc Fc Fc TQ @@ -27446,7 +29494,7 @@ ZI PV Js Mg -NW +Gx Pt QD oE @@ -27456,12 +29504,12 @@ Yb YL SK hw -Cf +Yp LB gc Pb -dM -Cf +VI +Yp ZJ YL gc @@ -27497,7 +29545,7 @@ Zt Ai Xl Xl -tC +hM af Wf Wf @@ -27546,7 +29594,7 @@ Yt al al Qx -BE +NU BX JR Vr @@ -27566,7 +29614,7 @@ ut Vr Vr Vr -ut +AR ZZ qZ ZI @@ -27624,7 +29672,7 @@ Ti fw Xl Xl -eQ +hM af Wf Wf @@ -27751,7 +29799,7 @@ Ms jR Xl Xl -eQ +hM af Wf Wf @@ -27800,7 +29848,7 @@ oi Zu al Qx -BE +NU BX JR Vr @@ -27820,9 +29868,9 @@ ut Vr Vr Vr -ut -ZZ +AR ZZ +lO ZI PV Jx @@ -27878,7 +29926,7 @@ Dy IK Xl Xl -eQ +hM af Wf Wf @@ -27937,19 +29985,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 @@ -27969,7 +30017,7 @@ ZQ HX ZQ gc -Vw +Yb lh ZQ Ub @@ -28057,22 +30105,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 @@ -28090,7 +30138,7 @@ gc Vw YL gc -yS +TK yS sn sn @@ -28110,9 +30158,9 @@ Le gc Rx Rx -uy +yy Se -uy +yy kk Br jq @@ -28181,7 +30229,7 @@ oi Zu al Qx -BE +NU il iN jO @@ -28191,16 +30239,16 @@ Mc Mc zw zw -zw +rM du -rV +Fc Fc Fc TQ MU -xF +Dg KD -IE +CH Tm Wq qZ @@ -28225,7 +30273,7 @@ Qz RN Yb lh -YL +Iq gc gc gc @@ -28312,7 +30360,7 @@ TQ il SL SL -qJ +kI SL Mc Mc @@ -28320,14 +30368,14 @@ zw zw qc du -rV Fc -ug +Fc +xF Gv Tm -xF -LV -Dg +xG +TQ +oY Tm Wq qZ @@ -28352,7 +30400,7 @@ Qz RN Yb lh -YL +dH gc HX ZQ @@ -28576,9 +30624,9 @@ Tm Mb Zm Mb -Mb -Mb -Mb +EJ +EJ +EJ Mb Zm Mb @@ -28606,7 +30654,7 @@ gc gc Yb lh -Iq +YL RN Qz cw @@ -28717,7 +30765,7 @@ Br JV ZQ ew -UW +ew ew ZQ gc @@ -28726,8 +30774,8 @@ lh ZQ Ub ZQ -Cf -Cf +Yp +Yp ZQ Ub ZQ @@ -28829,11 +30877,11 @@ Qx Qx rq Mc -Vr -ui -ui -ui -Vr +Mc +Mc +Mc +Mc +Mc AK Mc LV @@ -28846,7 +30894,7 @@ ZQ lh lh lh -ZQ +qm gc dt lh @@ -28956,14 +31004,14 @@ al SR qN Mc -WQ -Hz -Hz -Hz -zq +Vr +ui +ui +ui +Vr Mc Dh -Qx +Tm GF qZ ZI @@ -29085,12 +31133,12 @@ rr Mc WQ Hz -kB -wK +ol +Hz zq Mc -EJ -Qx +sD +Tm Gq qZ ZI @@ -29115,10 +31163,10 @@ Br Br lh Gb -Cf +Yp bb -Cf -Cf +Yp +Yp ZJ Bp DO @@ -29208,16 +31256,16 @@ oi Zu al SR -EJ +IZ Mc WQ -Hz +zg Hz xe zq Mc EJ -Qx +Tm Gg ZZ ZI @@ -29227,7 +31275,7 @@ dS Br JW dS -Bc +Br Ud rl lh @@ -29340,7 +31388,7 @@ Mc WQ Hz vP -Hz +Bk zq Mc RO @@ -29348,7 +31396,7 @@ Qx fu fu fu -Br +Bc lh Mw PV @@ -29367,7 +31415,7 @@ PV lh Mw Br -fs +lh ZQ ZQ GA @@ -29465,8 +31513,8 @@ SR rJ Mc WQ -up -Hz +uv +kB Hz zq Mc @@ -29481,7 +31529,7 @@ Xs Br lh Xs -Bc +Br Ul Yb lh @@ -29592,8 +31640,8 @@ SR EJ Mc WQ -uv -kB +Hz +we Hz zq Mc @@ -29608,7 +31656,7 @@ PV Br GC PV -Bc +Br gc Tb lh @@ -29631,7 +31679,7 @@ gc gc gc gc -gc +uX gc gc Bc @@ -29718,11 +31766,11 @@ al SR Mb Mc -WQ -Hz -we -Hz -zq +Vr +ux +ux +ux +Vr Mc Dj Qx @@ -29731,25 +31779,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 @@ -29757,7 +31805,7 @@ gc gc xL bb -Cf +Yp Qz Qz Fr @@ -29845,11 +31893,11 @@ al Qx rq Mc -Vr -ux -ux -ux -Vr +Mc +Mc +Mc +Mc +Mc Mc Dk Qx @@ -30384,7 +32432,7 @@ lh MC Br Yb -Iq +xI gc qG RH @@ -30511,7 +32559,7 @@ Kz dS Br Yb -YL +Iq Bc Bc Bc @@ -30620,7 +32668,7 @@ Zu al Bc Bc -Bc +Br Br Br Br @@ -30756,14 +32804,14 @@ bb ZJ GA Gb -Cf -Cf -Cf +Yp +Yp +Yp XL -Cf +Yp bb -Cf -Cf +Yp +Yp ZJ YL Tx @@ -30883,7 +32931,7 @@ Mh VB Xq Ya -Mh +zS ZQ Mh po @@ -31134,8 +33182,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..471478fb17e5 100644 --- a/maps/templates/baseone.dmm +++ b/maps/templates/baseone.dmm @@ -1589,6 +1589,9 @@ dir = 1; icon_state = "term" }, +/obj/structure/closet/hydrant{ + pixel_x = -32 + }, /turf/open/floor/almayer{ dir = 8; icon_state = "orange" @@ -1683,10 +1686,10 @@ /turf/open/mars_cave, /area/adminlevel/bunker01/mainroom) "eg" = ( -/obj/structure/closet/firecloset, /obj/structure/machinery/light/small{ dir = 8 }, +/obj/structure/machinery/fuelcell_recycler/full, /turf/open/floor/almayer{ dir = 9; icon_state = "orange" @@ -1801,7 +1804,6 @@ /area/adminlevel/bunker01/mainroom) "et" = ( /obj/structure/surface/table/reinforced, -/obj/item/clothing/gloves/yellow, /obj/structure/pipes/vents/pump{ dir = 4 }, @@ -1813,6 +1815,9 @@ dir = 8; pixel_x = -25 }, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, /turf/open/floor/almayer{ dir = 8; icon_state = "orange" @@ -1884,16 +1889,13 @@ /obj/structure/surface/table/reinforced, /obj/effect/spawner/random/toolbox, /obj/structure/disposalpipe/segment, +/obj/item/clothing/gloves/yellow, /turf/open/floor/almayer{ icon_state = "orangefull" }, /area/adminlevel/bunker01/engineering) "eB" = ( -/obj/structure/machinery/power/geothermal{ - buildstate = 4; - icon_state = "on100"; - is_on = 1 - }, +/obj/structure/machinery/power/reactor/colony, /turf/open/floor/almayer{ icon_state = "orangefull" }, @@ -1902,11 +1904,7 @@ /obj/structure/machinery/light/small{ pixel_y = 0 }, -/obj/structure/machinery/power/geothermal{ - buildstate = 4; - icon_state = "on100"; - is_on = 1 - }, +/obj/structure/machinery/power/reactor/colony, /turf/open/floor/almayer{ icon_state = "orangefull" }, 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 99% rename from maps/templates/clf_ert_station.dmm rename to maps/templates/lazy_templates/clf_ert_station.dmm index 7347be914da2..908f8de06dcb 100644 --- a/maps/templates/clf_ert_station.dmm +++ b/maps/templates/lazy_templates/clf_ert_station.dmm @@ -954,6 +954,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" = ( @@ -1203,7 +1206,7 @@ /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, @@ -1378,6 +1381,17 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/dirt, /area/adminlevel/ert_station/clf_station) +"Ia" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/structure/machinery/power/apc/antag{ + dir = 1 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/adminlevel/ert_station/clf_station) "Ie" = ( /turf/open/gm/dirtgrassborder{ dir = 1; @@ -1914,9 +1928,6 @@ }, /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, @@ -2168,14 +2179,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 +2221,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 +2261,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 +2305,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 +2345,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 +2389,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 +2431,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 +2472,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 +2516,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 +2559,12 @@ KT KT KT KT -KT -KT -KT -KT -KT -KT +ax +ax +ax +ax +ax +ax "} (11,1,1) = {" KT @@ -2591,11 +2602,11 @@ KT KT KT KT -KT -KT -KT -KT -KT +ax +ax +ax +ax +ax "} (12,1,1) = {" KT @@ -2634,10 +2645,10 @@ iG KT KT KT -KT -KT -KT -KT +ax +ax +ax +ax "} (13,1,1) = {" KT @@ -2676,10 +2687,10 @@ pk pk KT KT -KT -KT -KT -KT +ax +ax +ax +ax "} (14,1,1) = {" DN @@ -2718,10 +2729,10 @@ ON pk pk KT -KT -KT -KT -KT +ax +ax +ax +ax "} (15,1,1) = {" DN @@ -2762,8 +2773,8 @@ pk ax ax ax -KT -KT +ax +ax "} (16,1,1) = {" KT @@ -2804,8 +2815,8 @@ xL pk ax ax -KT -KT +ax +ax "} (17,1,1) = {" ax @@ -3006,7 +3017,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..bf9709e2150d --- /dev/null +++ b/maps/templates/lazy_templates/freelancer_ert_station.dmm @@ -0,0 +1,2379 @@ +//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{ + dir = 5; + icon_state = "plating" + }, +/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{ + icon_state = "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{ + dir = 9; + icon_state = "sterile_green_side" + }, +/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{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station) +"cL" = ( +/turf/open/floor/plating/almayer, +/area/adminlevel/ert_station) +"cR" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/adminlevel/ert_station) +"cS" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -11 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "sterile_green_side" + }, +/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{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"dz" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper Bathroom" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"dI" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"dJ" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"fY" = ( +/obj/structure/window/framed/colony/reinforced/hull, +/turf/open/floor/almayer{ + icon_state = "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{ + dir = 5; + icon_state = "plating" + }, +/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{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"hl" = ( +/obj/structure/machinery/chem_dispenser, +/obj/item/reagent_container/glass/beaker/bluespace, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"hr" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "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{ + dir = 5; + icon_state = "plating" + }, +/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{ + dir = 4; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"io" = ( +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"jJ" = ( +/obj/structure/machinery/photocopier, +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "tcomms" + }, +/area/adminlevel/ert_station) +"kn" = ( +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"kZ" = ( +/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" + }, +/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{ + dir = 1; + icon_state = "greencorner" + }, +/area/adminlevel/ert_station) +"lP" = ( +/obj/structure/machinery/cm_vending/sorted/medical/blood{ + req_access = null + }, +/turf/open/floor/almayer{ + icon_state = "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{ + dir = 8; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"mX" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"nx" = ( +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"nU" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + name = "\improper Engineering Storage" + }, +/turf/open/floor/almayer{ + icon_state = "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{ + dir = 6; + icon_state = "red" + }, +/area/adminlevel/ert_station) +"oj" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/almayer{ + icon_state = "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{ + dir = 5; + icon_state = "silver" + }, +/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{ + icon_state = "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{ + dir = 9; + icon_state = "orange" + }, +/area/adminlevel/ert_station) +"qt" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "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{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper 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{ + dir = 6; + icon_state = "red" + }, +/area/adminlevel/ert_station) +"tx" = ( +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "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{ + dir = 1; + icon_state = "sterile_green_side" + }, +/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{ + icon_state = "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{ + icon_state = "plating_striped" + }, +/area/adminlevel/ert_station) +"vS" = ( +/obj/structure/machinery/chem_master, +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"wd" = ( +/obj/structure/window/framed/colony, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"wv" = ( +/obj/structure/surface/table/almayer, +/obj/structure/bedsheetbin{ + pixel_y = 6 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"wF" = ( +/obj/structure/closet{ + name = "boxing attire" + }, +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"xn" = ( +/obj/structure/machinery/cm_vending/sorted/medical/chemistry/no_access{ + req_access = null + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "sterile_green_side" + }, +/area/adminlevel/ert_station) +"xN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"xR" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"yq" = ( +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"yw" = ( +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"zR" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/turf/open/floor/prison{ + icon_state = "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{ + dir = 6; + icon_state = "sterile_green_side" + }, +/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{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"BL" = ( +/obj/structure/target{ + name = "punching bag" + }, +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"Cm" = ( +/obj/structure/closet/secure_closet/freezer/fridge/groceries, +/turf/open/floor/prison{ + icon_state = "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{ + dir = 1; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"CJ" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/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{ + dir = 5; + icon_state = "plating" + }, +/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{ + icon_state = "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{ + icon_state = "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{ + dir = 5; + icon_state = "plating" + }, +/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{ + dir = 6; + icon_state = "silver" + }, +/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{ + icon_state = "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/handcuffs, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/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{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/ert_station) +"HI" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/adminlevel/ert_station) +"HN" = ( +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "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{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"IP" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/adminlevel/ert_station) +"Jg" = ( +/obj/structure/sign/safety/galley{ + pixel_x = -17 + }, +/obj/structure/machinery/door/window/southleft, +/turf/open/floor/prison{ + icon_state = "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{ + dir = 1; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"Kp" = ( +/turf/open/floor/almayer{ + dir = 10; + icon_state = "sterile_green_side" + }, +/area/adminlevel/ert_station) +"Kq" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/processor{ + pixel_y = 10 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station) +"Kt" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "greencorner" + }, +/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{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station) +"KN" = ( +/obj/structure/machinery/autodoc_console, +/turf/open/floor/almayer{ + icon_state = "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{ + dir = 5; + icon_state = "red" + }, +/area/adminlevel/ert_station) +"Lt" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"LN" = ( +/turf/open/floor/almayer{ + icon_state = "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{ + dir = 5; + icon_state = "sterile_green_side" + }, +/area/adminlevel/ert_station) +"Of" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/adminlevel/ert_station) +"Os" = ( +/obj/structure/machinery/faxmachine, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"OA" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"Pb" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" + }, +/area/adminlevel/ert_station) +"Pd" = ( +/obj/structure/machinery/sleep_console, +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"PC" = ( +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/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{ + dir = 4; + icon_state = "orange" + }, +/area/adminlevel/ert_station) +"Qi" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"Qv" = ( +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/adminlevel/ert_station) +"QQ" = ( +/obj/structure/closet/boxinggloves, +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"Rb" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/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{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"RC" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"RG" = ( +/obj/structure/machinery/cm_vending/sorted/medical/no_access{ + req_access = null + }, +/turf/open/floor/almayer{ + icon_state = "sterile_green_side" + }, +/area/adminlevel/ert_station) +"RO" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "greencorner" + }, +/area/adminlevel/ert_station) +"RW" = ( +/obj/structure/disposalpipe/junction, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/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{ + dir = 1; + icon_state = "orange" + }, +/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{ + dir = 1; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"SH" = ( +/obj/structure/sign/poster{ + pixel_x = -32; + serial_number = 16 + }, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"SL" = ( +/obj/structure/machinery/body_scanconsole, +/turf/open/floor/almayer{ + icon_state = "sterile_green" + }, +/area/adminlevel/ert_station) +"SP" = ( +/obj/structure/machinery/gibber{ + pixel_y = 10 + }, +/obj/structure/surface/table/reinforced, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station) +"Ta" = ( +/turf/open/floor/almayer{ + dir = 9; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"Th" = ( +/turf/open/floor/plating, +/area/adminlevel/ert_station) +"TM" = ( +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station) +"TV" = ( +/obj/structure/sign/poster/hunk, +/obj/structure/window/framed/colony/reinforced/hull, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/adminlevel/ert_station) +"Un" = ( +/turf/open/floor/almayer{ + dir = 9; + icon_state = "sterile_green_side" + }, +/area/adminlevel/ert_station) +"Ux" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21" + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"UT" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_10" + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"Vd" = ( +/obj/structure/surface/table/woodentable, +/obj/item/pizzabox/meat{ + pixel_y = 8 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/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{ + icon_state = "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{ + dir = 5; + icon_state = "plating" + }, +/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{ + icon_state = "test_floor5" + }, +/area/adminlevel/ert_station) +"Wl" = ( +/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "orange" + }, +/area/adminlevel/ert_station) +"Wn" = ( +/turf/open/floor/almayer{ + icon_state = "sterile_green" + }, +/area/adminlevel/ert_station) +"WR" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -11 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"Xb" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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 +PC +PC +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 +PC +PC +PC +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 +PC +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 +PC +PC +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 +PC +PC +PC +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..b154256c0459 --- /dev/null +++ b/maps/templates/lazy_templates/pizza_ert_station.dmm @@ -0,0 +1,6916 @@ +//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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station/pizza_station) +"aq" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"aA" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/microwave{ + pixel_y = 8 + }, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"bT" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/recharger, +/turf/open/floor{ + icon_state = "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{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"cq" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 4 + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + dir = 1; + icon_state = "yellow" + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "red"; + dir = 4 + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "greenblue"; + dir = 1 + }, +/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{ + icon_state = "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{ + icon_state = "red"; + dir = 6 + }, +/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{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"eW" = ( +/turf/open/mars_dirt{ + icon_state = "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{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"fj" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/prison{ + dir = 8; + icon_state = "yellow" + }, +/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{ + dir = 4; + icon_state = "yellowcorner" + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "blueyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"gU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"hc" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "red" + }, +/area/adminlevel/ert_station/pizza_station) +"hg" = ( +/turf/open/floor/prison{ + dir = 1; + icon_state = "yellowcorner" + }, +/area/adminlevel/ert_station/pizza_station) +"hv" = ( +/obj/structure/closet/crate/freezer/cooler, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_marked" + }, +/area/adminlevel/ert_station/pizza_station) +"hL" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "greenblue"; + dir = 1 + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "red"; + dir = 4 + }, +/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{ + icon_state = "greenblue"; + dir = 6 + }, +/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{ + dir = 1; + icon_state = "yellow" + }, +/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{ + icon_state = "red"; + dir = 5 + }, +/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{ + icon_state = "plate" + }, +/area/adminlevel/ert_station/pizza_station) +"jo" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "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{ + icon_state = "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{ + icon_state = "plate" + }, +/area/adminlevel/ert_station/pizza_station) +"jH" = ( +/turf/open/mars{ + icon_state = "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{ + icon_state = "blueyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"jV" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"me" = ( +/turf/open/mars_dirt{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + dir = 8; + icon_state = "yellow" + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"nB" = ( +/turf/open/floor{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"oh" = ( +/obj/structure/pipes/standard/manifold/fourway/hidden/supply, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "bright_clean2" + }, +/area/adminlevel/ert_station/pizza_station) +"oo" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/prison{ + dir = 6; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"ov" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor{ + icon_state = "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{ + icon_state = "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{ + icon_state = "red"; + dir = 4 + }, +/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{ + dir = 9; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"pD" = ( +/turf/open/mars_dirt{ + icon_state = "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{ + icon_state = "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{ + dir = 10; + icon_state = "floor_marked" + }, +/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{ + icon_state = "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{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"qt" = ( +/turf/open/mars_dirt{ + icon_state = "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{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"qy" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/juicer{ + pixel_y = 9 + }, +/turf/open/floor{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"rO" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/prison{ + dir = 6; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"sa" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 1 + }, +/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{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"sk" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/prison{ + dir = 10; + icon_state = "yellow" + }, +/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{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"sp" = ( +/obj/structure/surface/table/reinforced, +/obj/item/weapon/pizza_cutter, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"sx" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 8 + }, +/area/adminlevel/ert_station/pizza_station) +"sB" = ( +/turf/open/mars_dirt{ + icon_state = "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{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"sJ" = ( +/obj/structure/machinery/vending/ingredients, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"ug" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 8 + }, +/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{ + icon_state = "red" + }, +/area/adminlevel/ert_station/pizza_station) +"uD" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/processor{ + pixel_y = 10 + }, +/turf/open/floor{ + icon_state = "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{ + icon_state = "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{ + icon_state = "plate" + }, +/area/adminlevel/ert_station/pizza_station) +"vi" = ( +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "redcorner"; + dir = 1 + }, +/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{ + icon_state = "red"; + dir = 8 + }, +/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{ + icon_state = "red"; + dir = 8 + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "greenblue"; + dir = 9 + }, +/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{ + icon_state = "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{ + dir = 8; + icon_state = "yellowcorner" + }, +/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{ + icon_state = "redcorner"; + dir = 4 + }, +/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{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"wz" = ( +/turf/open/floor/prison{ + icon_state = "red"; + dir = 1 + }, +/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{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"wQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 1 + }, +/area/adminlevel/ert_station/pizza_station) +"wX" = ( +/obj/structure/closet/crate/freezer/cooler/oj, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_marked" + }, +/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{ + icon_state = "red"; + dir = 1 + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"xV" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "greenbluecorner"; + dir = 4 + }, +/area/adminlevel/ert_station/pizza_station) +"yr" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 10 + }, +/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{ + icon_state = "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{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"yG" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "blue_plate" + }, +/area/adminlevel/ert_station/pizza_station) +"yK" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/prison{ + icon_state = "greenblue"; + dir = 8 + }, +/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{ + icon_state = "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{ + icon_state = "greenblue"; + dir = 10 + }, +/area/adminlevel/ert_station/pizza_station) +"zf" = ( +/obj/structure/sign/safety/galley{ + pixel_x = -17 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"zh" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 8 + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"zC" = ( +/obj/structure/bed/chair/bolted{ + dir = 4; + pixel_x = 7; + buckling_x = 7 + }, +/turf/open/floor{ + icon_state = "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{ + icon_state = "redcorner"; + dir = 1 + }, +/area/adminlevel/ert_station/pizza_station) +"zQ" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 4 + }, +/area/adminlevel/ert_station/pizza_station) +"zW" = ( +/turf/open/floor/prison{ + icon_state = "greenblue"; + dir = 4 + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"Au" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 8 + }, +/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{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"AB" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "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{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"AH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"AV" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + dir = 8; + icon_state = "yellow" + }, +/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{ + icon_state = "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{ + icon_state = "greenblue"; + dir = 1 + }, +/area/adminlevel/ert_station/pizza_station) +"CO" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Dd" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 4 + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "red"; + dir = 1 + }, +/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{ + icon_state = "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{ + icon_state = "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{ + dir = 5; + icon_state = "yellow" + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"Fd" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Fj" = ( +/obj/structure/closet/crate/freezer, +/obj/item/reagent_container/food/snacks/ricepudding, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_marked" + }, +/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{ + dir = 10; + icon_state = "floor_marked" + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Gm" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Gt" = ( +/obj/structure/machinery/atm{ + pixel_y = 32; + pixel_x = 2 + }, +/turf/open/floor/prison{ + dir = 5; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"GB" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_x = 30 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "yellow" + }, +/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{ + dir = 4; + icon_state = "yellow" + }, +/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{ + icon_state = "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{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Ib" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 8 + }, +/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{ + icon_state = "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{ + icon_state = "red"; + dir = 8 + }, +/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{ + icon_state = "red"; + dir = 8 + }, +/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{ + icon_state = "greenblue" + }, +/area/adminlevel/ert_station/pizza_station) +"JP" = ( +/obj/structure/surface/table/reinforced, +/obj/item/tool/kitchen/knife/butcher, +/turf/open/floor{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"KY" = ( +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"Lk" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + dir = 9; + icon_state = "yellow" + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station/pizza_station) +"MX" = ( +/turf/open/floor/prison{ + icon_state = "red"; + dir = 9 + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "greenblue"; + dir = 9 + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Oh" = ( +/obj/structure/prop/souto_land/streamer{ + pixel_y = 9; + pixel_x = 1 + }, +/turf/open/floor/prison{ + icon_state = "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{ + icon_state = "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{ + desc = "A sophisticated device that captures and converts light from the system's star into energy for the station."; + icon_state = "solarpanel"; + name = "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{ + icon_state = "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{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"OS" = ( +/turf/open/floor/prison{ + icon_state = "red"; + dir = 4 + }, +/area/adminlevel/ert_station/pizza_station) +"Pa" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor{ + icon_state = "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{ + icon_state = "red"; + dir = 1 + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "red"; + dir = 1 + }, +/area/adminlevel/ert_station/pizza_station) +"Sp" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "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{ + icon_state = "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{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Sz" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/prison{ + icon_state = "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{ + dir = 8; + icon_state = "yellow" + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"TC" = ( +/turf/open/floor/prison{ + icon_state = "yellowcorner" + }, +/area/adminlevel/ert_station/pizza_station) +"TD" = ( +/turf/open/floor/prison{ + icon_state = "bright_clean2" + }, +/area/adminlevel/ert_station/pizza_station) +"TE" = ( +/turf/open/mars_dirt{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"UB" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"Vj" = ( +/obj/structure/closet/secure_closet/fridge/dry/stock, +/turf/open/floor/prison{ + icon_state = "greenblue"; + dir = 5 + }, +/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{ + icon_state = "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{ + icon_state = "red"; + dir = 8 + }, +/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{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"VK" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "yellow" + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + dir = 1; + icon_state = "yellow" + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "red"; + dir = 5 + }, +/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{ + icon_state = "red" + }, +/area/adminlevel/ert_station/pizza_station) +"XZ" = ( +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/turf/open/floor{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "greenblue"; + dir = 6 + }, +/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{ + icon_state = "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{ + icon_state = "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{ + icon_state = "greenblue"; + dir = 1 + }, +/area/adminlevel/ert_station/pizza_station) +"ZR" = ( +/obj/structure/pipes/vents/pump{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "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{ + icon_state = "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 99% rename from maps/templates/twe_ert_station.dmm rename to maps/templates/lazy_templates/twe_ert_station.dmm index 78c98b4d16a9..2c9c696d7842 100644 --- a/maps/templates/twe_ert_station.dmm +++ b/maps/templates/lazy_templates/twe_ert_station.dmm @@ -309,9 +309,7 @@ "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{ @@ -1220,7 +1218,6 @@ /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{ @@ -1705,6 +1702,9 @@ "Hg" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/almayer, +/obj/structure/machinery/power/apc/antag{ + dir = 1 + }, /turf/open/floor/almayer{ icon_state = "sterile_green" }, diff --git a/maps/templates/upp_ert_station.dmm b/maps/templates/lazy_templates/upp_ert_station.dmm similarity index 100% rename from maps/templates/upp_ert_station.dmm rename to maps/templates/lazy_templates/upp_ert_station.dmm diff --git a/maps/templates/weyland_ert_station.dmm b/maps/templates/lazy_templates/weyland_ert_station.dmm similarity index 99% rename from maps/templates/weyland_ert_station.dmm rename to maps/templates/lazy_templates/weyland_ert_station.dmm index 1937aa6a61a9..aa6b43ef8422 100644 --- a/maps/templates/weyland_ert_station.dmm +++ b/maps/templates/lazy_templates/weyland_ert_station.dmm @@ -1506,6 +1506,9 @@ }, /area/adminlevel/ert_station/weyland_station) "sg" = ( +/obj/structure/machinery/power/apc/antag{ + dir = 4 + }, /turf/open/floor/corsat{ dir = 4; icon_state = "yellow" 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/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/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/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/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/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 d461c764fb34..253860e1eddd 100644 --- a/strings/marinetips.txt +++ b/strings/marinetips.txt @@ -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 08f56bf1aa8e..d5bc61e7cf79 100644 --- a/strings/xenotips.txt +++ b/strings/xenotips.txt @@ -37,3 +37,21 @@ You can filter out the Xenomorphs displayed in hive status by health, allowing y 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. +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/docs/component-reference.md b/tgui/docs/component-reference.md index d814fc343a72..3789016447cc 100644 --- a/tgui/docs/component-reference.md +++ b/tgui/docs/component-reference.md @@ -250,6 +250,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` 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/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/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-panel/chat/constants.js b/tgui/packages/tgui-panel/chat/constants.js index 020e8513dc2c..a9b1634783af 100644 --- a/tgui/packages/tgui-panel/chat/constants.js +++ b/tgui/packages/tgui-panel/chat/constants.js @@ -40,6 +40,7 @@ export const MESSAGE_TYPE_EVENTCHAT = 'eventchat'; export const MESSAGE_TYPE_ADMINLOG = 'adminlog'; export const MESSAGE_TYPE_ATTACKLOG = 'attacklog'; export const MESSAGE_TYPE_DEBUG = 'debug'; +export const MESSAGE_TYPE_NICHE = 'niche'; // Metadata for each message type export const MESSAGE_TYPES = [ @@ -164,4 +165,11 @@ export const MESSAGE_TYPES = [ selector: '.debuginfo', admin: true, }, + { + type: MESSAGE_TYPE_NICHE, + name: 'Niche Log', + description: 'ADMIN NICHE LOG: Urist McTraitor stuttered while saying: Boo', + selector: '.niche', + admin: true, + }, ]; diff --git a/tgui/packages/tgui-panel/ping/PingIndicator.js b/tgui/packages/tgui-panel/ping/PingIndicator.js index b2355820e58a..4e64207d115c 100644 --- a/tgui/packages/tgui-panel/ping/PingIndicator.js +++ b/tgui/packages/tgui-panel/ping/PingIndicator.js @@ -6,11 +6,12 @@ import { Color } from 'common/color'; import { toFixed } from 'common/math'; -import { useSelector } from 'tgui/backend'; -import { Box } from 'tgui/components'; +import { useSelector, useBackend } from 'tgui/backend'; +import { Button, Box } from 'tgui/components'; import { selectPing } from './selectors'; export const PingIndicator = (props) => { + const { act } = useBackend(); const ping = useSelector(selectPing); const color = Color.lookup(ping.networkQuality, [ new Color(220, 40, 40), @@ -19,9 +20,19 @@ export const PingIndicator = (props) => { ]); const roundtrip = ping.roundtrip ? toFixed(ping.roundtrip) : '--'; return ( -
      +
      + ); }; diff --git a/tgui/packages/tgui-panel/styles/goon/chat-dark.scss b/tgui/packages/tgui-panel/styles/goon/chat-dark.scss index 9e6d604bdf82..ca142dab82a4 100644 --- a/tgui/packages/tgui-panel/styles/goon/chat-dark.scss +++ b/tgui/packages/tgui-panel/styles/goon/chat-dark.scss @@ -228,6 +228,7 @@ a.popt { .looc, .adminooc, .admin, +.niche, .medal, .yell { font-weight: bold; @@ -290,6 +291,11 @@ em { font-weight: bold; } +.niche { + color: #5975da; + font-weight: bold; +} + .name { font-weight: bold; } diff --git a/tgui/packages/tgui-panel/styles/goon/chat-light.scss b/tgui/packages/tgui-panel/styles/goon/chat-light.scss index 78613d37ae51..9cf69e221ca6 100644 --- a/tgui/packages/tgui-panel/styles/goon/chat-light.scss +++ b/tgui/packages/tgui-panel/styles/goon/chat-light.scss @@ -246,6 +246,7 @@ a.popt { .looc, .adminooc, .admin, +.niche, .medal, .yell { font-weight: bold; @@ -308,6 +309,11 @@ em { font-weight: bold; } +.niche { + color: #4473ff; + font-weight: bold; +} + .name { font-weight: bold; } diff --git a/tgui/packages/tgui/components/Button.jsx b/tgui/packages/tgui/components/Button.jsx index 4264b0767115..dbffb6a72c95 100644 --- a/tgui/packages/tgui/components/Button.jsx +++ b/tgui/packages/tgui/components/Button.jsx @@ -172,6 +172,9 @@ export class ButtonConfirm extends Component { } else { window.removeEventListener('click', this.handleClick); } + if (this.props.onConfirmChange) { + this.props.onConfirmChange(clickedOnce); + } } render() { @@ -183,6 +186,7 @@ export class ButtonConfirm extends Component { color, content, onClick, + onConfirmChange, ...rest } = this.props; return ( diff --git a/tgui/packages/tgui/components/RestrictedInput.jsx b/tgui/packages/tgui/components/RestrictedInput.jsx index 082fc606d998..f61025039f34 100644 --- a/tgui/packages/tgui/components/RestrictedInput.jsx +++ b/tgui/packages/tgui/components/RestrictedInput.jsx @@ -1,48 +1,56 @@ -import { classes } from 'common/react'; +import { KEY_ENTER, KEY_ESCAPE } from 'common/keycodes'; import { clamp } from 'common/math'; +import { classes } from 'common/react'; import { Component, createRef } from 'react'; + import { Box } from './Box'; -import { KEY_ESCAPE, KEY_ENTER } from 'common/keycodes'; -const DEFAULT_MIN = -16777216; -const DEFAULT_MAX = 16777216; +const DEFAULT_MIN = 0; +const DEFAULT_MAX = 10000; /** - * Takes a string input and parses integers from it. + * Takes a string input and parses integers or floats from it. * If none: Minimum is set. * Else: Clamps it to the given range. */ -const getClampedNumber = (value, minValue, maxValue) => { +const getClampedNumber = (value, minValue, maxValue, allowFloats) => { const minimum = minValue || DEFAULT_MIN; const maximum = maxValue || maxValue === 0 ? maxValue : DEFAULT_MAX; - const defaultValue = maximum < 0 ? minimum : minimum > 0 ? minimum : 0; if (!value || !value.length) { - return String(defaultValue); + return String(minimum); } - let parsedValue = parseFloat(value.replace(/[^\-.\d]/g, ''), 10); + let parsedValue = allowFloats + ? parseFloat(value.replace(/[^\-\d.]/g, '')) + : parseInt(value.replace(/[^\-\d]/g, ''), 10); if (isNaN(parsedValue)) { - return String(defaultValue); + return String(minimum); } else { return String(clamp(parsedValue, minimum, maximum)); } }; export class RestrictedInput extends Component { - constructor() { - super(); + constructor(props) { + super(props); this.inputRef = createRef(); this.state = { editing: false, }; this.handleBlur = (e) => { + const { maxValue, minValue, allowFloats } = this.props; const { editing } = this.state; if (editing) { + e.target.value = getClampedNumber( + e.target.value, + minValue, + maxValue, + allowFloats + ); this.setEditing(false); } }; this.handleChange = (e) => { - const { maxValue, minValue, onChange } = this.props; - e.target.value = getClampedNumber(e.target.value, minValue, maxValue); + const { onChange } = this.props; if (onChange) { onChange(e, +e.target.value); } @@ -64,9 +72,14 @@ export class RestrictedInput extends Component { } }; this.handleKeyDown = (e) => { - const { maxValue, minValue, onChange, onEnter } = this.props; + const { maxValue, minValue, onChange, onEnter, allowFloats } = this.props; if (e.keyCode === KEY_ENTER) { - const safeNum = getClampedNumber(e.target.value, minValue, maxValue); + const safeNum = getClampedNumber( + e.target.value, + minValue, + maxValue, + allowFloats + ); this.setEditing(false); if (onChange) { onChange(e, +safeNum); @@ -91,11 +104,16 @@ export class RestrictedInput extends Component { } componentDidMount() { - const { maxValue, minValue } = this.props; + const { maxValue, minValue, allowFloats } = this.props; const nextValue = this.props.value?.toString(); const input = this.inputRef.current; if (input) { - input.value = getClampedNumber(nextValue, minValue, maxValue); + input.value = getClampedNumber( + nextValue, + minValue, + maxValue, + allowFloats + ); } if (this.props.autoFocus || this.props.autoSelect) { setTimeout(() => { @@ -109,14 +127,19 @@ export class RestrictedInput extends Component { } componentDidUpdate(prevProps, _) { - const { maxValue, minValue } = this.props; + const { maxValue, minValue, allowFloats } = this.props; const { editing } = this.state; const prevValue = prevProps.value?.toString(); const nextValue = this.props.value?.toString(); const input = this.inputRef.current; if (input && !editing) { if (nextValue !== prevValue && nextValue !== input.value) { - input.value = getClampedNumber(nextValue, minValue, maxValue); + input.value = getClampedNumber( + nextValue, + minValue, + maxValue, + allowFloats + ); } } } diff --git a/tgui/packages/tgui/interfaces/AresAdmin.js b/tgui/packages/tgui/interfaces/AresAdmin.js new file mode 100644 index 000000000000..dd51b5a1e007 --- /dev/null +++ b/tgui/packages/tgui/interfaces/AresAdmin.js @@ -0,0 +1,2173 @@ +import { useBackend } from '../backend'; +import { Flex, Box, Section, Button, Stack } from '../components'; +import { Window } from '../layouts'; + +const PAGES = { + 'login': () => Login, + 'main': () => MainMenu, + 'announcements': () => AnnouncementLogs, + 'bioscans': () => BioscanLogs, + 'bombardments': () => BombardmentLogs, + 'apollo': () => ApolloLog, + 'access_log': () => AccessLogs, + 'delete_log': () => DeletionLogs, + 'flight_log': () => FlightLogs, + 'talking': () => ARESTalk, + 'deleted_talks': () => DeletedTalks, + 'read_deleted': () => ReadingTalks, + 'security': () => Security, + 'requisitions': () => Requisitions, + 'emergency': () => Emergency, + 'tech_log': () => TechLogs, + 'core_security': () => CoreSec, + 'admin_access_log': () => AdminAccessLogs, + 'access_management': () => AccessManagement, + 'maintenance_management': () => MaintManagement, +}; + +export const AresAdmin = (props, context) => { + const { data } = useBackend(context); + const { current_menu, sudo } = data; + const PageComponent = PAGES[current_menu](); + + let themecolor = 'crtyellow'; + if (sudo >= 1) { + themecolor = 'crtred'; + } else if (current_menu === 'emergency') { + themecolor = 'crtred'; + } else if (current_menu === 'core_security') { + themecolor = 'crtred'; + } + + return ( + + + + + + ); +}; + +const Login = (props, context) => { + const { act } = useBackend(context); + + return ( + + ARES v3.2 Remote Interface + + WY-DOS Executive + + Version 4.5.2 + Copyright © 2182, Weyland Yutani Corp. + +