diff --git a/.dockerignore b/.dockerignore index a4b8a25cdc8c6..59ad26923e8a7 100644 --- a/.dockerignore +++ b/.dockerignore @@ -3,7 +3,6 @@ GPLv3.txt LICENSE README.md -TGS3.json .github .gitignore .gitattributes diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 6ee936d472eaf..f2d22b9c150da 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -16,3 +16,7 @@ 0f435d5dff0a7957e8cba60a41a7fc10439064c3 # Remove one errant disposals pipe cc78227c693a3246e8d4d2930ee97242f6546246 +# Reorganized the sound folder +58501dce77aba5811fa92a6d7de7d0cc0a1e56ac +# Compress all sounds using optivorbis +436ba869ebcd0b60b63973fb7562f447ee655205 diff --git a/.github/actions/restore_or_install_byond/action.yml b/.github/actions/restore_or_install_byond/action.yml index a4b9ce9da6d8b..4b07a612558d4 100644 --- a/.github/actions/restore_or_install_byond/action.yml +++ b/.github/actions/restore_or_install_byond/action.yml @@ -1,4 +1,4 @@ -# This is a reusable workflow to restore BYOND from a cache, or to install it otherwise. +# This action attempts to restore BYOND from a cache, or to install it otherwise. name: Restore or Install BYOND description: Attempts to restore a specified BYOND version from cache; if it can't, it installs it. diff --git a/.github/actions/setup_node/action.yml b/.github/actions/setup_node/action.yml new file mode 100644 index 0000000000000..120dbf4639ba7 --- /dev/null +++ b/.github/actions/setup_node/action.yml @@ -0,0 +1,26 @@ +# This action is a wrapper around `actions/setup-node`, to use the version specified in +# `dependencies.sh`. +name: Setup Node +description: Install Node using the version specified in `dependencies.sh`; additionally, restores the Yarn cache if one exists + +inputs: + restore-yarn-cache: + description: 'If `true`, restores the Yarn cache alongside installing node.' + required: false + type: boolean + default: false + +runs: + using: composite + steps: + - name: Configure Node version + shell: bash + run: | + source dependencies.sh + echo "NODE_VERSION_REQUIRED=$NODE_VERSION_LTS" >> $GITHUB_ENV + - name: Install Node + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION_REQUIRED }} + cache: ${{ fromJSON(inputs.restore-yarn-cache) && 'yarn' || '' }} + cache-dependency-path: ${{ fromJSON(inputs.restore-yarn-cache) && 'tgui/yarn.lock' || '' }} diff --git a/.github/guides/STANDARDS.md b/.github/guides/STANDARDS.md index 00fc1efc3849a..1db1f77cb227c 100644 --- a/.github/guides/STANDARDS.md +++ b/.github/guides/STANDARDS.md @@ -23,11 +23,18 @@ You can avoid hacky code by using object-oriented methodologies, such as overrid ### Develop Secure Code -* Player input must always be escaped safely, we recommend you use stripped_input in all cases where you would use input. Essentially, just always treat input from players as inherently malicious and design with that use case in mind +* Player input must always be escaped safely, we recommend you use stripped_input in all cases where you would use input. Essentially, just always treat input from players as inherently malicious and design with that use case in mind. + * This extends to much further than just numbers or strings. You should always sanity check that an input is valid, especially when it comes to datums or references! + * Input stalling is a very common exploit / bug that involves opening an input window when in a valid state, and triggering the input after exiting the valid state. These can be very serious, and allow players to teleport across the map or remove someone's brain at any given moment. If you check the player must be in a specific context before an input, you should generally check that they are still in the context AFTER the input resolves. + * For example, if you have an item which can be used (in hand) by a player to make it explode, but you want them to confirm (via prompt) that they want it to explode, you should check that the item is still in the player's hands after confirming. Otherwise, they could drop it and explode it at any moment they want. + * Another less common exploit involves allowing a player to open multiple of an input at once. This may allow the player to stack effects, such as triggering 10 explosions when only 1 should be allowed. While a lot of code is generally built in a way making this infeasible (usually due to runtime errors), it is noteworthy regardless. + * You should also consider if it would make sense to apply a timeout to your input, to prevent players from opening it and keeping it on their screen until convenient. * Calls to the database must be escaped properly - use sanitizeSQL to escape text based database entries from players or admins, and isnum() for number based database entries from players or admins. * All calls to topics must be checked for correctness. Topic href calls can be easily faked by clients, so you should ensure that the call is valid for the state the item is in. Do not rely on the UI code to provide only valid topic calls, because it won't. + * Don't expose a topic call to more than what you need it to. If you are only looking for an item inside an atom, don't look for every item in the world - just look in the atom's contents. + * You rarely should call `locate(ref)` without specifying a list! This is a serious exploit vector which can be used to spawn Nar'sie or delete players across the map. Try narrowing it down via a list - such as `locate(ref) in contents`, to find an item in an atom's contents. * Information that players could use to metagame (that is, to identify round information and/or antagonist type via information that would not be available to them in character) should be kept as administrator only. @@ -74,8 +81,6 @@ var/path_type = "/obj/item/baseball_bat" * Changes to the `/config` tree must be made in a way that allows for updating server deployments while preserving previous behaviour. This is due to the fact that the config tree is to be considered owned by the user and not necessarily updated alongside the remainder of the code. The code to preserve previous behaviour may be removed at some point in the future given the OK by maintainers. -* The dlls section of tgs3.json is not designed for dlls that are purely `call()()`ed since those handles are closed between world reboots. Only put in dlls that may have to exist between world reboots. - ## Structural ### No duplicated code (Don't repeat yourself) Copying code from one place to another may be suitable for small, short-time projects, but /tg/station is a long-term project and highly discourages this. diff --git a/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml index e1b35198ac464..2e7a2867f9b1f 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -42,20 +42,10 @@ jobs: key: ${{ runner.os }}-spacemandmm-${{ hashFiles('dependencies.sh') }} restore-keys: | ${{ runner.os }}-spacemandmm- - - name: Restore Yarn cache - uses: actions/cache@v4 - with: - path: tgui/.yarn/cache - key: ${{ runner.os }}-yarn-${{ hashFiles('tgui/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - name: Restore Node cache - uses: actions/cache@v4 + - name: Setup Node + uses: ./.github/actions/setup_node with: - path: ~/.nvm - key: ${{ runner.os }}-node-${{ hashFiles('dependencies.sh') }} - restore-keys: | - ${{ runner.os }}-node- + restore-yarn-cache: true - name: Restore Bootstrap cache uses: actions/cache@v4 with: @@ -89,7 +79,6 @@ jobs: - name: Install Tools run: | pip3 install setuptools - bash tools/ci/install_node.sh bash tools/ci/install_spaceman_dmm.sh dreamchecker bash tools/ci/install_ripgrep.sh tools/bootstrap/python -c '' @@ -154,6 +143,8 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Setup Node + uses: ./.github/actions/setup_node - name: Restore BYOND from Cache uses: ./.github/actions/restore_or_install_byond - name: Compile All Maps @@ -263,13 +254,10 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Restore Yarn cache - uses: actions/cache@v4 + - name: Setup Node + uses: ./.github/actions/setup_node with: - path: tgui/.yarn/cache - key: ${{ runner.os }}-yarn-${{ hashFiles('tgui/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- + restore-yarn-cache: true - name: Compile run: pwsh tools/ci/build.ps1 env: diff --git a/.github/workflows/run_integration_tests.yml b/.github/workflows/run_integration_tests.yml index fc00b8cedc11e..c2dcc421a91f9 100644 --- a/.github/workflows/run_integration_tests.yml +++ b/.github/workflows/run_integration_tests.yml @@ -44,6 +44,8 @@ jobs: mysql -u root -proot tg_ci < SQL/tgstation_schema.sql mysql -u root -proot -e 'CREATE DATABASE tg_ci_prefixed;' mysql -u root -proot tg_ci_prefixed < SQL/tgstation_schema_prefixed.sql + - name: Setup Node + uses: ./.github/actions/setup_node - name: Install rust-g run: | bash tools/ci/install_rust_g.sh @@ -61,6 +63,7 @@ jobs: source $HOME/BYOND/byond/bin/byondsetup tools/build/build --ci dm -DCIBUILDING -DANSICOLORS -Werror -ITG0001 -I"loop_checks" - name: Run Tests + id: run_tests run: | source $HOME/BYOND/byond/bin/byondsetup bash tools/ci/run_server.sh ${{ inputs.map }} @@ -71,6 +74,29 @@ jobs: name: test_artifacts_${{ inputs.map }}_${{ inputs.major }}_${{ inputs.minor }} path: data/screenshots_new/ retention-days: 1 + - name: On test fail, write a step summary + if: always() && steps.run_tests.outcome == 'failure' + run: | + # Get a JSON array of failed unit tests + FAILED_UNIT_TESTS=$(jq 'to_entries | map(.value | select(.status == 1))' data/unit_tests.json) + + FAIL_COUNT=$(echo $FAILED_UNIT_TESTS | jq 'length') + + echo "# Test failures" >> $GITHUB_STEP_SUMMARY + echo "$FAIL_COUNT tests failed." >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + + for i in $( seq $FAIL_COUNT ); do + CURRENT_FAIL=$(echo $FAILED_UNIT_TESTS | jq --arg i $i '.[($i | tonumber) - 1]') + + TEST=$(echo $CURRENT_FAIL | jq --raw-output '.name') + + echo "### $TEST" >> $GITHUB_STEP_SUMMARY + echo '```' >> $GITHUB_STEP_SUMMARY + echo $CURRENT_FAIL | jq --raw-output '.message' >> $GITHUB_STEP_SUMMARY + echo '```' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + done - name: Check client Compatibility if: always() && steps.compile_tests.outcome == 'success' uses: tgstation/byond-client-compatibility-check@v3 diff --git a/SQL/database_changelog.md b/SQL/database_changelog.md index f8770e2868dbb..373d97bdf6c7b 100644 --- a/SQL/database_changelog.md +++ b/SQL/database_changelog.md @@ -5,15 +5,25 @@ Make sure to also update `DB_MAJOR_VERSION` and `DB_MINOR_VERSION`, which can be The latest database version is 5.28; The query to update the schema revision table is: ```sql -INSERT INTO `schema_revision` (`major`, `minor`) VALUES (5, 28); +INSERT INTO `schema_revision` (`major`, `minor`) VALUES (5, 29); ``` or ```sql -INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (5, 28); +INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (5, 29); ``` In any query remember to add a prefix to the table names if you use one. ----------------------------------------------------- +Version 5.29, 4 February 2024, by Tiviplus +Fixed admin rank table flags being capped at 16 in the DB instead of 24 (byond max) + +```sql +ALTER TABLE `admin_ranks` + MODIFY COLUMN `flags` mediumint(5) unsigned NOT NULL, + MODIFY COLUMN `exclude_flags` mediumint(5) unsigned NOT NULL, + MODIFY COLUMN `can_edit_flags` mediumint(5) unsigned NOT NULL; +``` +----------------------------------------------------- Version 5.28, 1 November 2024, by Ghommie Added `fish_progress` as the first 'progress' subtype of 'datum/award/scores' diff --git a/SQL/tgstation_schema.sql b/SQL/tgstation_schema.sql index ba3ff538f1c82..96933aa14e189 100644 --- a/SQL/tgstation_schema.sql +++ b/SQL/tgstation_schema.sql @@ -53,9 +53,9 @@ DROP TABLE IF EXISTS `admin_ranks`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `admin_ranks` ( `rank` varchar(32) NOT NULL, - `flags` smallint(5) unsigned NOT NULL, - `exclude_flags` smallint(5) unsigned NOT NULL, - `can_edit_flags` smallint(5) unsigned NOT NULL, + `flags` mediumint(5) unsigned NOT NULL, + `exclude_flags` mediumint(5) unsigned NOT NULL, + `can_edit_flags` mediumint(5) unsigned NOT NULL, PRIMARY KEY (`rank`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; /*!40101 SET character_set_client = @saved_cs_client */; diff --git a/SQL/tgstation_schema_prefixed.sql b/SQL/tgstation_schema_prefixed.sql index 525b1b0aa33e6..7b322d5a65275 100644 --- a/SQL/tgstation_schema_prefixed.sql +++ b/SQL/tgstation_schema_prefixed.sql @@ -53,9 +53,9 @@ DROP TABLE IF EXISTS `SS13_admin_ranks`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `SS13_admin_ranks` ( `rank` varchar(32) NOT NULL, - `flags` smallint(5) unsigned NOT NULL, - `exclude_flags` smallint(5) unsigned NOT NULL, - `can_edit_flags` smallint(5) unsigned NOT NULL, + `flags` mediumint(5) unsigned NOT NULL, + `exclude_flags` mediumint(5) unsigned NOT NULL, + `can_edit_flags` mediumint(5) unsigned NOT NULL, PRIMARY KEY (`rank`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; /*!40101 SET character_set_client = @saved_cs_client */; diff --git a/TGS3.json b/TGS3.json deleted file mode 100644 index 228854a1667a9..0000000000000 --- a/TGS3.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "documentation": "/tg/station server 3 configuration file", - "synchronize_paths": [], - "static_directories": [ - "config", - "data" - ], - "dlls": [] - } diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_syndielab.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_syndielab.dmm index 15a51d2858a1e..8a3b8d7a004eb 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_syndielab.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_syndielab.dmm @@ -246,7 +246,6 @@ /turf/open/floor/mineral/plastitanium/red, /area/ruin/syndielab) "oA" = ( -/obj/structure/syndicate_uplink_beacon, /turf/open/floor/iron/dark/textured, /area/ruin/syndielab) "oY" = ( @@ -267,10 +266,6 @@ pixel_x = -5; pixel_y = 8 }, -/obj/item/traitor_bug{ - pixel_y = 6; - pixel_x = 6 - }, /turf/open/floor/mineral/plastitanium/red, /area/ruin/syndielab) "qy" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index b73cf11fda63e..6bdb976de4bbc 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -667,6 +667,9 @@ /area/ruin/syndicate_lava_base/chemistry) "fx" = ( /obj/structure/sign/warning/secure_area, +/obj/machinery/porta_turret/syndicate{ + dir = 9 + }, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ruin/syndicate_lava_base/cargo) "fA" = ( @@ -1593,6 +1596,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/directional/east, /obj/effect/mapping_helpers/airalarm/syndicate_access, +/obj/item/defibrillator/loaded, /turf/open/floor/iron/white/side{ dir = 4 }, @@ -1866,6 +1870,9 @@ /area/ruin/syndicate_lava_base/arrivals) "oF" = ( /obj/structure/sign/warning/secure_area, +/obj/machinery/porta_turret/syndicate{ + dir = 9 + }, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ruin/syndicate_lava_base/arrivals) "oH" = ( @@ -2163,6 +2170,10 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark, /area/ruin/syndicate_lava_base/cargo) +"sB" = ( +/obj/structure/sign/warning/secure_area, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ruin/syndicate_lava_base/cargo) "sH" = ( /obj/machinery/door/airlock/virology/glass{ name = "Monkey Pen" @@ -3316,7 +3327,6 @@ /obj/structure/table/wood, /obj/item/ammo_box/magazine/m9mm, /obj/machinery/airalarm/directional/north, -/obj/item/crowbar/red, /obj/effect/mapping_helpers/airalarm/syndicate_access, /turf/open/floor/carpet/red, /area/ruin/syndicate_lava_base/dormitories) @@ -3648,6 +3658,10 @@ }, /turf/open/floor/iron, /area/ruin/syndicate_lava_base/engineering) +"Oj" = ( +/obj/structure/sign/warning/secure_area, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ruin/syndicate_lava_base/arrivals) "Oq" = ( /obj/effect/spawner/random/vending/colavend{ hacked = 1 @@ -4127,7 +4141,6 @@ /obj/item/ammo_box/magazine/m9mm, /obj/item/ammo_box/magazine/sniper_rounds, /obj/machinery/airalarm/directional/north, -/obj/item/crowbar/red, /obj/effect/mapping_helpers/airalarm/syndicate_access, /turf/open/floor/carpet/red, /area/ruin/syndicate_lava_base/dormitories) @@ -4506,7 +4519,6 @@ /obj/structure/table/wood, /obj/item/ammo_box/magazine/m9mm, /obj/item/ammo_box/magazine/sniper_rounds, -/obj/item/crowbar/red, /turf/open/floor/carpet/red, /area/ruin/syndicate_lava_base/dormitories) "Zw" = ( @@ -5325,7 +5337,7 @@ Vb mT mT mT -oF +Oj ab ab ab @@ -6648,7 +6660,7 @@ ab ab ab ab -fx +sB gh fx si diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1/commswilding_1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1/commswilding_1.dmm index 92338633ecfb3..8ca5c0cd2b50e 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1/commswilding_1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1/commswilding_1.dmm @@ -135,6 +135,10 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/ruin/syndicate_lava_base/telecomms) +"R" = ( +/obj/structure/filingcabinet/medical, +/turf/open/floor/iron/dark, +/area/ruin/syndicate_lava_base/telecomms) "U" = ( /obj/machinery/light/small/directional/east, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -216,7 +220,7 @@ f (6,1,1) = {" a e -c +R Z m C diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1/commswilding_3.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1/commswilding_3.dmm index dd00fa974852e..cd6670dfb21f1 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1/commswilding_3.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1/commswilding_3.dmm @@ -41,6 +41,10 @@ /obj/item/paper_bin, /obj/item/pen, /obj/structure/closet/cardboard, +/obj/item/modular_computer/pda/chameleon/broken{ + pixel_x = 5; + pixel_y = 4 + }, /turf/open/floor/iron, /area/ruin/syndicate_lava_base/telecomms) "m" = ( @@ -63,7 +67,7 @@ /turf/open/floor/iron, /area/ruin/syndicate_lava_base/telecomms) "q" = ( -/obj/structure/girder, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, /turf/open/floor/plating/lavaland_atmos, /area/ruin/syndicate_lava_base/telecomms) "r" = ( @@ -75,16 +79,12 @@ /area/ruin/syndicate_lava_base/telecomms) "t" = ( /obj/structure/sign/poster/contraband/syndiemoth/directional/west, -/obj/item/radio/intercom{ - freerange = 1; - name = "Syndicate Radio Intercom"; - pixel_y = 5 - }, -/obj/structure/table/reinforced, /obj/effect/decal/cleanable/cobweb, -/obj/item/phone{ - pixel_x = -4; - pixel_y = -4 +/obj/machinery/computer/message_monitor{ + dir = 4 + }, +/obj/item/paper/monitorkey{ + pixel_x = 5 }, /turf/open/floor/iron/grimy, /area/ruin/syndicate_lava_base/telecomms) @@ -99,6 +99,7 @@ /obj/machinery/door/poddoor{ id = "lavalandsyndi_fredrickleft" }, +/obj/structure/fans/tiny, /turf/open/floor/plating, /area/ruin/syndicate_lava_base/telecomms) "y" = ( @@ -112,16 +113,21 @@ /turf/open/floor/iron/grimy, /area/ruin/syndicate_lava_base/telecomms) "z" = ( -/obj/item/modular_computer/pda/chameleon/broken{ - pixel_x = 5; - pixel_y = 4 - }, /obj/structure/table/reinforced, /obj/item/food/cherrycupcake{ pixel_x = -7; pixel_y = 13 }, +/obj/item/radio/intercom{ + freerange = 1; + name = "Syndicate Radio Intercom"; + pixel_y = 5 + }, /obj/effect/decal/cleanable/dirt, +/obj/item/phone{ + pixel_x = -4; + pixel_y = -4 + }, /turf/open/floor/iron/grimy, /area/ruin/syndicate_lava_base/telecomms) "A" = ( @@ -189,6 +195,7 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, +/obj/structure/filingcabinet/security, /turf/open/floor/iron, /area/ruin/syndicate_lava_base/telecomms) "K" = ( @@ -199,6 +206,7 @@ "O" = ( /obj/effect/mapping_helpers/airalarm/syndicate_access, /obj/machinery/airalarm/directional/north, +/obj/structure/filingcabinet/medical, /turf/open/floor/iron, /area/ruin/syndicate_lava_base/telecomms) "P" = ( diff --git a/_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm b/_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm index f1c41c3bf1708..16aa17b98f361 100644 --- a/_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm +++ b/_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm @@ -102,7 +102,6 @@ "kp" = ( /obj/structure/safe, /obj/item/stamp/syndicate, -/obj/item/traitor_bug, /obj/item/eyesnatcher, /obj/item/stack/spacecash/c1000, /turf/open/floor/plating, diff --git a/_maps/RandomRuins/SpaceRuins/infested_frigate.dmm b/_maps/RandomRuins/SpaceRuins/infested_frigate.dmm index 381ba4ff167a7..101078b2fe5c1 100644 --- a/_maps/RandomRuins/SpaceRuins/infested_frigate.dmm +++ b/_maps/RandomRuins/SpaceRuins/infested_frigate.dmm @@ -212,10 +212,6 @@ }, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/infested_frigate) -"dc" = ( -/obj/machinery/vending/boozeomat/syndicate, -/turf/open/floor/iron/freezer, -/area/ruin/space/has_grav/infested_frigate) "df" = ( /obj/effect/mapping_helpers/burnt_floor, /obj/structure/cable, @@ -451,23 +447,6 @@ }, /turf/open/floor/mineral/titanium/tiled/white, /area/ruin/space/has_grav/infested_frigate) -"fB" = ( -/obj/structure/cable, -/obj/structure/alien/weeds, -/obj/effect/decal/cleanable/blood/gibs{ - icon_state = "floor6-old" - }, -/obj/item/shard{ - icon_state = "plastitaniumtiny" - }, -/mob/living/basic/alien/queen/large{ - loot = list(/obj/effect/gibspawner/xeno,/obj/item/ammo_box/magazine/smartgun,/obj/effect/mob_spawn/corpse/human/syndicatecommando/soft_suit); - desc = "What you saw in your dreams last night."; - faction = list("syndicate","xenomorph") - }, -/obj/structure/alien/egg/burst, -/turf/open/floor/plating, -/area/ruin/space/has_grav/infested_frigate) "fM" = ( /obj/structure/door_assembly/door_assembly_ext, /turf/template_noop, @@ -578,6 +557,15 @@ /obj/item/kirbyplants/random, /turf/open/floor/mineral/titanium/tiled/white, /area/ruin/space/has_grav/infested_frigate) +"hX" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/north, +/obj/effect/mapping_helpers/airalarm/all_access, +/obj/machinery/icecream_vat{ + desc = "Waffle Corp. actually ordered these guys to steal one of these just to be sure." + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/infested_frigate) "ie" = ( /obj/structure/showcase/machinery{ icon_state = "autolathe"; @@ -701,6 +689,10 @@ /obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/infested_frigate) +"kw" = ( +/obj/machinery/vending/boozeomat/syndicate, +/turf/open/floor/iron/freezer, +/area/ruin/space/has_grav/infested_frigate) "kS" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -857,6 +849,17 @@ }, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/infested_frigate) +"nU" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood{ + icon_state = "floor5-old" + }, +/obj/item/ammo_casing/spent, +/obj/item/gun/ballistic/automatic/smartgun, +/obj/effect/mob_spawn/corpse/human/syndicatepilot, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/infested_frigate) "oj" = ( /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ @@ -1036,31 +1039,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/infested_frigate) -"rs" = ( -/obj/structure/sign/warning/no_smoking{ - pixel_x = 28 - }, -/obj/item/storage/toolbox/syndicate, -/obj/item/storage/toolbox/maint_kit, -/obj/item/storage/toolbox/maint_kit, -/obj/item/storage/toolbox/electrical, -/obj/item/storage/box/lights/bulbs, -/obj/item/stack/sheet/glass{ - amount = 10 - }, -/obj/structure/closet/crate/large{ - anchored = 1; - name = "crew supplies" - }, -/obj/structure/cable, -/obj/item/pickaxe/emergency, -/obj/item/pickaxe/emergency, -/obj/effect/spawner/random/decoration/carpet, -/obj/effect/spawner/random/engineering/vending_restock, -/obj/effect/spawner/random/engineering/vending_restock, -/obj/item/bedsheet/syndie/double, -/turf/open/floor/plating, -/area/ruin/space/has_grav/infested_frigate) "rz" = ( /obj/machinery/airalarm/directional/west, /obj/effect/mapping_helpers/airalarm/all_access, @@ -2510,17 +2488,6 @@ /obj/structure/cable, /turf/open/floor/pod/dark, /area/ruin/space/has_grav/infested_frigate) -"NZ" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood{ - icon_state = "floor5-old" - }, -/obj/item/ammo_casing/spent, -/obj/item/gun/ballistic/automatic/smartgun, -/obj/effect/mob_spawn/corpse/human/syndicatepilot, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/infested_frigate) "Or" = ( /obj/item/stack/rods{ amount = 23 @@ -2654,15 +2621,6 @@ /obj/machinery/suit_storage_unit/open, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/infested_frigate) -"QF" = ( -/obj/structure/cable, -/obj/machinery/airalarm/directional/north, -/obj/effect/mapping_helpers/airalarm/all_access, -/obj/machinery/icecream_vat{ - desc = "Waffle Corp. actually ordered these guys to steal one of these just to be sure." - }, -/turf/open/floor/plating, -/area/ruin/space/has_grav/infested_frigate) "QL" = ( /obj/structure/broken_flooring/singular/directional/east, /turf/template_noop, @@ -2797,6 +2755,23 @@ /obj/item/ammo_casing/spent, /turf/open/floor/pod/dark, /area/ruin/space/has_grav/infested_frigate) +"SM" = ( +/obj/structure/cable, +/obj/structure/alien/weeds, +/obj/effect/decal/cleanable/blood/gibs{ + icon_state = "floor6-old" + }, +/obj/item/shard{ + icon_state = "plastitaniumtiny" + }, +/mob/living/basic/alien/queen/large{ + loot = list(/obj/effect/gibspawner/xeno,/obj/item/ammo_box/magazine/smartgun,/obj/effect/mob_spawn/corpse/human/syndicatecommando/soft_suit); + desc = "What you saw in your dreams last night."; + faction = list("syndicate","xenomorph") + }, +/obj/structure/alien/egg/burst, +/turf/open/floor/plating, +/area/ruin/space/has_grav/infested_frigate) "SS" = ( /obj/structure/table_frame, /obj/effect/decal/cleanable/glass, @@ -2986,6 +2961,31 @@ /obj/effect/spawner/random/special_lighter, /turf/open/floor/plating, /area/ruin/space/has_grav/infested_frigate) +"WB" = ( +/obj/structure/sign/warning/no_smoking{ + pixel_x = 28 + }, +/obj/item/storage/toolbox/syndicate, +/obj/item/gun_maintenance_supplies, +/obj/item/gun_maintenance_supplies, +/obj/item/storage/toolbox/electrical, +/obj/item/storage/box/lights/bulbs, +/obj/item/stack/sheet/glass{ + amount = 10 + }, +/obj/structure/closet/crate/large{ + anchored = 1; + name = "crew supplies" + }, +/obj/structure/cable, +/obj/item/pickaxe/emergency, +/obj/item/pickaxe/emergency, +/obj/effect/spawner/random/decoration/carpet, +/obj/effect/spawner/random/engineering/vending_restock, +/obj/effect/spawner/random/engineering/vending_restock, +/obj/item/bedsheet/syndie/double, +/turf/open/floor/plating, +/area/ruin/space/has_grav/infested_frigate) "WG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/effect/decal/cleanable/blood/gibs{ @@ -3373,12 +3373,12 @@ fl wP EQ wP -QF -fB +hX +SM ME KT LF -dc +kw Po wP fl @@ -3457,7 +3457,7 @@ wP iY Xc Hu -rs +WB AH yt YW @@ -3861,7 +3861,7 @@ bM Ne wP bE -NZ +nU ML wP UX diff --git a/_maps/map_files/Birdshot/birdshot.dmm b/_maps/map_files/Birdshot/birdshot.dmm index 25d95fd4e0a65..6c56a558facaa 100644 --- a/_maps/map_files/Birdshot/birdshot.dmm +++ b/_maps/map_files/Birdshot/birdshot.dmm @@ -22,6 +22,10 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/electrical) +"aau" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) "aav" = ( /obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, @@ -51,9 +55,9 @@ /turf/open/floor/engine, /area/station/engineering/supermatter/room) "abh" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -108,6 +112,11 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"acM" = ( +/obj/structure/flora/bush/flowers_pp/style_random, +/obj/machinery/light/small/directional/west, +/turf/open/floor/grass, +/area/station/science/xenobiology) "acS" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -116,29 +125,28 @@ /turf/open/floor/iron/dark, /area/station/medical/pharmacy) "adh" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock{ name = "Maintenance" }, /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, /obj/structure/disposalpipe/segment, -/obj/structure/cable, /obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/lesser) "adl" = ( -/obj/effect/turf_decal/siding/white, -/obj/machinery/light/small/directional/south, -/obj/structure/table/reinforced, -/obj/effect/spawner/surgery_tray/full/morgue, -/turf/open/floor/iron/small, +/obj/structure/bodycontainer/morgue/beeper_off{ + dir = 1 + }, +/turf/open/floor/iron/dark, /area/station/medical/morgue) "adL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -159,6 +167,12 @@ }, /turf/open/floor/grass/Airless, /area/station/hallway/primary/central/aft) +"aej" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/science/robotics/lab) "aem" = ( /obj/machinery/power/terminal, /obj/structure/cable, @@ -168,6 +182,15 @@ /obj/structure/grille, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"aeA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "aeC" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -196,9 +219,6 @@ /obj/effect/turf_decal/bot{ dir = 1 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) "aeX" = ( @@ -287,30 +307,22 @@ /area/station/commons/dorms) "agy" = ( /obj/effect/turf_decal/stripes/line, +/obj/machinery/light/cold/directional/south, /obj/machinery/atmospherics/components/tank/oxygen{ dir = 4 }, -/obj/machinery/light/cold/directional/south, /turf/open/floor/plating, /area/station/science/ordnance/storage) "agI" = ( +/obj/machinery/firealarm/directional/south, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 5 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"agK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/iron/white/corner{ - dir = 8 - }, -/area/station/hallway/secondary/dock) "agR" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 6 @@ -425,9 +437,15 @@ "aid" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) +"ait" = ( +/obj/structure/rack, +/obj/effect/spawner/random/techstorage/rnd_secure_all, +/obj/effect/turf_decal/siding/dark, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) "aiI" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, /turf/open/floor/iron, @@ -442,6 +460,12 @@ }, /turf/open/floor/plating, /area/station/engineering/lobby) +"aiX" = ( +/obj/structure/broken_flooring/singular/directional/east, +/obj/structure/alien/weeds, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/greater) "ajg" = ( /obj/machinery/camera/directional/north{ c_tag = "atmospherics - upper" @@ -489,21 +513,18 @@ /turf/open/floor/iron, /area/station/security) "alb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) +/obj/machinery/airalarm/directional/south, +/turf/open/floor/wood/tile, +/area/station/command/meeting_room) "als" = ( /obj/machinery/holopad, /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) "alF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, @@ -558,14 +579,13 @@ "amK" = ( /obj/effect/turf_decal/weather/snow, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, /obj/structure/cable, /obj/machinery/airalarm/directional/west, -/turf/open/floor/iron/freezer, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/components/binary/pump/on, +/obj/effect/mapping_helpers/airalarm/tlv_cold_room, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) "amX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -626,8 +646,8 @@ /turf/open/space/basic, /area/space/nearstation) "aop" = ( -/obj/structure/cable, /obj/structure/steam_vent, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) "aoz" = ( @@ -661,12 +681,12 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/chair/sofa/bench/left{ dir = 1 }, /obj/effect/landmark/start/hangover, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "apo" = ( @@ -688,9 +708,6 @@ "apF" = ( /obj/machinery/rnd/destructive_analyzer, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/dark, /area/station/science/lab) "apP" = ( @@ -729,13 +746,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"aqV" = ( -/obj/machinery/door/airlock/glass, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/greater) "aqW" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair/sofa/bench/right{ @@ -821,8 +831,8 @@ /turf/open/floor/iron/textured_half, /area/station/security/prison/workout) "asm" = ( -/obj/effect/turf_decal/siding/blue, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/siding/blue, /turf/open/floor/iron/white, /area/station/medical/paramedic) "asv" = ( @@ -845,6 +855,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"asG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark/small, +/area/station/tcommsat/server) "asS" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral/opposingcorners{ @@ -890,13 +906,6 @@ /obj/structure/sign/poster/contraband/lusty_xenomorph/directional/north, /turf/open/floor/light/colour_cycle/dancefloor_b, /area/station/maintenance/starboard/central) -"atB" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/science/lower) "atE" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating/airless, @@ -953,9 +962,6 @@ "auf" = ( /obj/structure/cable, /obj/machinery/light/small/dim/directional/south, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, /turf/open/floor/iron, /area/station/maintenance/port/aft) "aul" = ( @@ -978,12 +984,11 @@ /turf/open/floor/glass, /area/station/hallway/primary/central/aft) "auG" = ( -/obj/structure/chair{ - dir = 1 +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 }, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/iron/showroomfloor, -/area/station/commons/toilet/auxiliary) +/turf/open/floor/circuit, +/area/station/tcommsat/server) "auI" = ( /obj/structure/closet/emcloset, /turf/open/floor/iron, @@ -1032,6 +1037,12 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"avc" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/closed/wall, +/area/station/medical/morgue) "avd" = ( /obj/machinery/atmospherics/components/binary/volume_pump{ dir = 8 @@ -1142,12 +1153,12 @@ /obj/structure/disposalpipe/sorting/mail/flip{ dir = 8 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/mapping_helpers/mail_sorting/science/xenobiology, /obj/machinery/camera/autoname/directional/north, /obj/machinery/light/cold/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side, /area/station/science/lower) "awH" = ( @@ -1165,14 +1176,11 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) -"awO" = ( -/turf/open/floor/iron, -/area/station/engineering/storage/tech) "awQ" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 5 }, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, @@ -1292,12 +1300,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"ayu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/white/small, -/area/station/science/cubicle) "ayK" = ( /turf/closed/wall/r_wall, /area/station/engineering/supermatter/room) @@ -1438,12 +1440,13 @@ /turf/open/floor/circuit, /area/station/tcommsat/server) "aAL" = ( -/obj/structure/cable, /obj/structure/window/reinforced/spawner/directional/north, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/science/xenobiology) "aAQ" = ( @@ -1513,15 +1516,9 @@ /turf/open/floor/wood/tile, /area/station/science/lower) "aBv" = ( -/obj/effect/turf_decal/siding/white{ - dir = 9 - }, -/obj/structure/bodycontainer/morgue/beeper_off{ - dir = 2 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/turf/open/floor/iron/small, +/obj/effect/spawner/structure/window, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark, /area/station/medical/morgue) "aBB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -1558,11 +1555,11 @@ /turf/open/floor/iron, /area/station/cargo/office) "aBV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, /obj/structure/sign/departments/science/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/starboard) "aCi" = ( @@ -1631,6 +1628,13 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) +"aDC" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "aEa" = ( /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/tram, @@ -1683,13 +1687,13 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/greater) "aEJ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wood{ dir = 8 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, /turf/open/floor/wood/tile, /area/station/tcommsat/server) @@ -1706,7 +1710,6 @@ /obj/effect/turf_decal/weather/dirt{ dir = 1 }, -/obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/grass, /area/station/service/chapel) "aFh" = ( @@ -1715,10 +1718,6 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) -"aFj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/closed/wall/r_wall, -/area/station/science/ordnance) "aFo" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/plating/airless, @@ -1755,10 +1754,10 @@ /turf/open/floor/plating, /area/station/security/tram) "aFY" = ( +/obj/machinery/firealarm/directional/north, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/north, /turf/open/floor/iron/stairs{ dir = 8 }, @@ -1770,25 +1769,25 @@ /area/space/nearstation) "aGb" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/side{ dir = 4 }, /area/station/science/ordnance/testlab) "aGq" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "aGv" = ( +/obj/machinery/firealarm/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/command/heads_quarters/rd) "aGy" = ( @@ -1806,15 +1805,20 @@ /turf/open/misc/sandy_dirt, /area/station/security/tram) "aGH" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/cable, /obj/machinery/duct, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/lesser) +"aGR" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "aGU" = ( /obj/machinery/light/small/directional/west, /turf/open/floor/iron, @@ -1843,6 +1847,12 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/grass, /area/station/security/prison/garden) +"aHV" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/cytology) "aIb" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -1974,23 +1984,21 @@ /turf/open/floor/iron/smooth, /area/station/security/evidence) "aJX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock{ - id_tag = "AuxToilet3"; - name = "Unit 3" - }, -/turf/open/floor/iron/showroomfloor, -/area/station/commons/toilet/auxiliary) -"aJZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/science/xenobiology) +"aJZ" = ( /obj/machinery/door/airlock/engineering{ name = "Auxillary Base Construction" }, /obj/effect/mapping_helpers/airlock/access/all/engineering/aux_base, /obj/machinery/door/firedoor, /obj/effect/landmark/navigate_destination, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/textured_half{ dir = 8 }, @@ -2017,7 +2025,6 @@ /turf/open/floor/iron/dark/small, /area/station/tcommsat/server) "aKJ" = ( -/obj/structure/cable, /obj/machinery/door/airlock{ name = "Maintenance" }, @@ -2028,6 +2035,7 @@ /obj/effect/mapping_helpers/airlock/unres{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "aKS" = ( @@ -2057,9 +2065,6 @@ /area/station/construction/mining/aux_base) "aLs" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, /turf/open/floor/iron, /area/station/hallway/primary/port) "aLv" = ( @@ -2073,12 +2078,6 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/maintenance/port/aft) -"aLA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/dock) "aLB" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/machinery/camera/autoname/directional/north, @@ -2092,12 +2091,12 @@ /turf/open/floor/iron/small, /area/station/hallway/secondary/service) "aLC" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /obj/machinery/camera/autoname/directional/east, /obj/machinery/light/cold/directional/east, /obj/machinery/power/apc/auto_name/directional/east{ areastring = "/area/station/science/ordnance/burnchamber" }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/ordnance) @@ -2128,11 +2127,13 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) -"aMy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible, -/turf/open/floor/plating, -/area/station/science/ordnance/testlab) +"aMp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/chapel{ + dir = 4 + }, +/area/station/maintenance/starboard/greater) "aMI" = ( /obj/machinery/mineral/ore_redemption{ dir = 4; @@ -2219,13 +2220,13 @@ /turf/open/floor/iron, /area/station/engineering/atmos/project) "aNX" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/power/apc/auto_name/directional/north, /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner{ dir = 1 }, @@ -2267,13 +2268,13 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "aOz" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/purple{ dir = 8 }, /obj/machinery/holopad, /obj/machinery/light/floor, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/genetics) "aOX" = ( @@ -2316,10 +2317,10 @@ /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) "aPK" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "aPM" = ( @@ -2335,11 +2336,8 @@ /turf/open/floor/plating, /area/station/maintenance/fore/greater) "aPX" = ( -/obj/structure/cable, /obj/machinery/holopad, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, +/obj/structure/cable, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) "aQf" = ( @@ -2357,10 +2355,10 @@ /area/station/security/checkpoint/customs) "aQr" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /turf/open/floor/iron/dark, /area/station/medical/cryo) "aQx" = ( @@ -2409,9 +2407,6 @@ dir = 4 }, /obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) "aRo" = ( @@ -2424,17 +2419,11 @@ /turf/open/floor/wood, /area/station/commons/fitness/recreation) "aRv" = ( +/obj/machinery/camera/autoname/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron, /area/station/commons/dorms) -"aRw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/chapel{ - dir = 4 - }, -/area/station/maintenance/starboard/greater) "aRx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, /obj/structure/cable, @@ -2644,10 +2633,9 @@ /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) "aVF" = ( -/obj/structure/cable, /obj/effect/decal/cleanable/dirt, -/obj/machinery/power/apc/auto_name/directional/south, -/turf/open/floor/plating, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/large, /area/station/maintenance/department/science/xenobiology) "aVT" = ( /obj/machinery/door/airlock/research/glass/incinerator/ordmix_interior, @@ -2713,8 +2701,8 @@ /turf/open/floor/plating, /area/station/maintenance/department/electrical) "aWz" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, @@ -2757,6 +2745,19 @@ }, /turf/open/floor/iron/dark/diagonal, /area/station/service/bar) +"aWB" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) +"aXi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "aXC" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -2815,11 +2816,34 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/maintenance/port/aft) -"aYR" = ( -/obj/structure/broken_flooring/singular/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/greater) +"aYJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/rack, +/obj/item/food/grown/grapes{ + pixel_y = 4; + pixel_x = -5 + }, +/obj/item/food/grown/grapes{ + pixel_y = 4 + }, +/obj/item/food/grown/grapes{ + pixel_y = 2; + pixel_x = 5 + }, +/turf/open/floor/wood/large, +/area/station/maintenance/department/science/xenobiology) +"aYN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/item/radio/intercom/command/directional/north, +/obj/effect/turf_decal/siding/dark/corner, +/turf/open/floor/iron/edge{ + dir = 8 + }, +/area/station/engineering/storage/tech) "aYU" = ( /obj/structure/chair/wood{ dir = 8 @@ -2861,25 +2885,25 @@ /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) "aZL" = ( -/obj/structure/table, -/obj/item/aicard, -/obj/machinery/light/cold/directional/east, -/obj/item/radio/intercom/directional/east, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, -/area/station/engineering/storage/tech) +/area/station/science/robotics/lab) "aZS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/siding/dark{ + dir = 10 }, -/turf/open/floor/wood/tile, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured, /area/station/command/meeting_room) "bah" = ( /obj/structure/cable, -/obj/item/kirbyplants/organic/applebush, /obj/machinery/keycard_auth/wall_mounted/directional/south, +/obj/machinery/pdapainter{ + pixel_y = 2 + }, /turf/open/floor/iron/dark/textured_corner{ dir = 4 }, @@ -2906,9 +2930,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/item/radio/intercom/directional/east, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "baO" = ( @@ -2969,9 +2990,9 @@ /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) "bcv" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /turf/open/floor/iron/white/small, /area/station/medical/medbay/lobby) @@ -2992,12 +3013,8 @@ "bcO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron/dark/corner{ - dir = 4 +/turf/open/floor/iron/stairs{ + dir = 8 }, /area/station/science/xenobiology) "bdi" = ( @@ -3040,13 +3057,12 @@ /turf/open/floor/wood, /area/station/service/chapel) "bey" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/large, +/area/station/engineering/storage/tech) "beK" = ( /turf/open/floor/iron/smooth, /area/station/security/evidence) @@ -3161,32 +3177,30 @@ /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) "bgA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron/small, +/obj/effect/turf_decal/siding/dark_blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, /area/station/medical/morgue) "bgB" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) "bgE" = ( -/obj/structure/chair/sofa/bench/left{ - dir = 8 - }, -/obj/machinery/airalarm/directional/east, /obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron, -/area/station/hallway/primary/fore) -"bgQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/turf/open/floor/iron/dark/small, -/area/station/tcommsat/server) +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/fore) "bho" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 4 @@ -3220,14 +3234,28 @@ /area/station/engineering/supermatter/room) "biB" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/turf_decal/weather/snow/corner{ +/obj/structure/table/reinforced/rglass, +/obj/item/reagent_containers/cup/glass/mug/nanotrasen{ + pixel_y = 6; + pixel_x = -7 + }, +/obj/item/storage/box/coffeepack{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/item/phone{ + desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in."; + pixel_x = 2; + pixel_y = -2 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 8 }, -/turf/open/floor/iron/dark/smooth_large, +/turf/open/floor/iron/checker, /area/station/command/bridge) "biM" = ( -/obj/structure/cable, /obj/machinery/holopad, +/obj/structure/cable, /turf/open/floor/iron/white/small, /area/station/science/lobby) "biV" = ( @@ -3235,6 +3263,13 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/cargo/miningfoundry) +"biZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "bja" = ( /obj/structure/railing/corner/end/flip{ dir = 8 @@ -3312,8 +3347,8 @@ /turf/open/floor/tram, /area/station/security/tram) "bka" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -3331,26 +3366,29 @@ /turf/open/space/basic, /area/space/nearstation) "bkg" = ( -/obj/structure/cable, /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 8 }, /obj/effect/landmark/event_spawn, /obj/machinery/light/floor, +/obj/structure/cable, /turf/open/floor/iron/grimy, /area/station/science/cubicle) "bkl" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"bkD" = ( -/obj/machinery/camera/autoname/directional/west, -/obj/effect/turf_decal/weather/snow/corner{ +"bkX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, /turf/open/floor/iron, -/area/station/hallway/secondary/entry) +/area/station/hallway/secondary/dock) "bkY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, /obj/machinery/requests_console/directional/west{ department = "Chief Medical Officer's Desk"; name = "Chief Medical Officer's Requests Console" @@ -3358,21 +3396,12 @@ /obj/effect/mapping_helpers/requests_console/announcement, /obj/effect/mapping_helpers/requests_console/information, /obj/effect/mapping_helpers/requests_console/assistance, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/cmo) "blb" = ( /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) -"ble" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "blf" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 4 @@ -3406,6 +3435,12 @@ /obj/effect/spawner/random/engineering/flashlight, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"blm" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/tcommsat/server) "blt" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, /obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, @@ -3414,14 +3449,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"blw" = ( -/obj/structure/chair/stool/directional/north, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/security/prison/rec) "bly" = ( /obj/structure/closet/crate/miningcar, /turf/open/floor/iron, @@ -3433,19 +3460,14 @@ }, /turf/open/floor/eighties/red, /area/station/hallway/primary/central/fore) -"blJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white/small, -/area/station/science/ordnance/storage) "blP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/dorms) "bmr" = ( -/obj/structure/cable, /obj/machinery/telecomms/broadcaster/preset_right, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 9 }, @@ -3456,15 +3478,12 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "bmA" = ( -/obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/opposingcorners, +/obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, @@ -3511,6 +3530,11 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"bnd" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/storage/tech) "bnn" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -3537,9 +3561,9 @@ /turf/open/floor/plating, /area/station/maintenance/department/medical/central) "bnr" = ( -/obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/structure/alien/weeds, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) "bnz" = ( @@ -3580,13 +3604,10 @@ /turf/open/floor/iron/smooth, /area/station/security/checkpoint/engineering) "bnX" = ( +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) "bob" = ( @@ -3615,12 +3636,6 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"boj" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 2 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "bor" = ( /obj/machinery/firealarm/directional/east, /obj/machinery/power/apc/auto_name/directional/south, @@ -3674,11 +3689,6 @@ }, /turf/open/floor/plating, /area/station/service/janitor) -"boY" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "bpe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, @@ -3697,7 +3707,6 @@ /turf/open/floor/iron/white/small, /area/station/security/execution/education) "bpo" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -3708,14 +3717,15 @@ }, /obj/effect/decal/cleanable/blood, /obj/machinery/light/broken/directional/north, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "bpI" = ( /obj/structure/table, /obj/item/storage/box/donkpockets, /obj/machinery/light/small/directional/west, -/obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) "bpS" = ( @@ -3762,24 +3772,13 @@ /turf/open/floor/plating, /area/station/maintenance/department/engine) "bqu" = ( -/obj/structure/table, -/obj/item/stack/ore/silver{ - pixel_y = 16 - }, -/obj/item/stack/ore/titanium{ - pixel_x = -4; - pixel_y = 10 - }, -/obj/item/stack/ore/diamond{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/stack/ore/iron, -/obj/item/stack/ore/plasma{ - pixel_y = -8 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +/obj/structure/table/reinforced, +/obj/machinery/light_switch/directional/west, +/obj/item/crowbar, +/obj/item/wrench, +/obj/item/pai_card, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "bqx" = ( /obj/structure/cable, /turf/open/floor/iron/dark, @@ -3911,12 +3910,12 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "bsv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 6 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/fake_snow, +/turf/open/floor/iron/white, /area/station/medical/treatment_center) "bsy" = ( /obj/machinery/camera/directional/east{ @@ -4012,15 +4011,29 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security) +"buk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "buA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/corner{ dir = 8 }, @@ -4063,9 +4076,6 @@ /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 4 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron/dark, /area/station/medical/chemistry) "bvh" = ( @@ -4091,14 +4101,14 @@ /turf/open/floor/iron/white/small, /area/station/security/warden) "bvP" = ( -/obj/machinery/door/airlock{ - name = "Kitchen" - }, /obj/effect/mapping_helpers/airlock/access/all/service/kitchen, /obj/structure/cable, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, +/obj/machinery/door/airlock{ + name = "Maintenance" + }, /turf/open/floor/plating, /area/station/maintenance/central/greater) "bwz" = ( @@ -4106,12 +4116,10 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"bwP" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/turf/open/floor/stone, -/area/station/service/bar) +"bwT" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "bwW" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/siding/yellow{ @@ -4142,21 +4150,24 @@ "bxl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/weather/snow, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/food_cart, -/turf/open/floor/iron/freezer, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) -"bxI" = ( +"bxB" = ( +/obj/effect/turf_decal/stripes/line, /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/diagonal, +/area/station/ai_monitored/command/storage/eva) +"bxI" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 8 }, +/obj/effect/mapping_helpers/mail_sorting/science/robotics, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/mail_sorting/science/robotics, /turf/open/floor/iron/white/side{ dir = 6 }, @@ -4170,12 +4181,21 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"bxY" = ( +/obj/effect/turf_decal/tile/dark_red/fourcorners, +/obj/machinery/vending/wardrobe/sec_wardrobe, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/customs) "byq" = ( +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/medical/morgue) +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/command/bridge) "byt" = ( /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, @@ -4192,16 +4212,16 @@ /turf/open/floor/iron, /area/station/security/brig/entrance) "byx" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/blue{ dir = 4 }, /obj/machinery/status_display/evac/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner{ dir = 1 }, @@ -4220,8 +4240,8 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/structure/disposalpipe/segment, /obj/item/radio/intercom/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/landmark/start/hangover, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) @@ -4252,6 +4272,13 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/small, /area/station/hallway/secondary/service) +"bzm" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side, +/area/station/science/xenobiology) "bzF" = ( /obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -4285,12 +4312,6 @@ /obj/effect/spawner/random/trash, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"bAs" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron/white, -/area/station/hallway/primary/starboard) "bAI" = ( /obj/structure/chair/office, /obj/structure/sign/poster/official/work_for_a_future/directional/east, @@ -4298,28 +4319,11 @@ /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) "bAT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wood{ dir = 1 }, /turf/open/floor/wood, /area/station/hallway/secondary/entry) -"bAY" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/dark_red/opposingcorners, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/security/prison) -"bBg" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, -/turf/open/misc/dirt/station, -/area/station/service/chapel) "bBh" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -4347,10 +4351,10 @@ /turf/open/floor/iron/dark, /area/station/security/processing) "bBr" = ( +/obj/item/radio/intercom/directional/west, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/intercom/directional/west, /turf/open/floor/iron/white/small, /area/station/science/cubicle) "bBL" = ( @@ -4417,10 +4421,10 @@ /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "bCQ" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, @@ -4453,11 +4457,11 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "bDj" = ( -/obj/effect/landmark/start/medical_doctor, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 9 }, +/obj/effect/landmark/start/medical_doctor, /turf/open/floor/iron/dark, /area/station/medical/cryo) "bDq" = ( @@ -4472,23 +4476,20 @@ /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 1 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "bDD" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 6 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green{ dir = 8 }, /obj/machinery/firealarm/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) "bDN" = ( @@ -4503,7 +4504,6 @@ dir = 1 }, /obj/machinery/light/no_nightlight/directional/north, -/obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/iron, /area/station/engineering/atmos/project) "bEd" = ( @@ -4574,22 +4574,12 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, -/obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/iron, /area/station/commons/dorms) "bFw" = ( /obj/machinery/telecomms/server/presets/science, /turf/open/floor/circuit, /area/station/tcommsat/server) -"bFJ" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 2 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "bFO" = ( /obj/effect/spawner/random/trash, /obj/structure/cable, @@ -4607,11 +4597,24 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"bFU" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Research Wing" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white/textured_half{ + dir = 1 + }, +/area/station/hallway/primary/starboard) "bFW" = ( -/obj/structure/rack, -/obj/effect/spawner/random/techstorage/rnd_all, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "bGe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -4637,13 +4640,13 @@ /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) "bGk" = ( -/obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/siding/white{ - dir = 5 +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/siding/dark_blue/corner{ + dir = 4 }, -/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/mannequin/skeleton, -/turf/open/floor/iron/small, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, /area/station/medical/morgue) "bGn" = ( /obj/effect/decal/cleanable/dirt, @@ -4727,6 +4730,13 @@ /obj/effect/landmark/start/scientist, /turf/open/floor/iron, /area/station/science/ordnance/testlab) +"bHF" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "bHU" = ( /obj/effect/turf_decal/siding/wood, /obj/machinery/camera/autoname/directional/south, @@ -4774,13 +4784,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/fore/greater) -"bJw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/broken_flooring/singular/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/maintenance/starboard/aft) "bJx" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 4 @@ -4897,10 +4900,13 @@ /turf/open/floor/plating, /area/station/service/library) "bLT" = ( -/obj/structure/cable, /obj/structure/window/reinforced/spawner/directional/south, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, /turf/open/floor/iron/dark, /area/station/science/xenobiology) "bMc" = ( @@ -4911,18 +4917,18 @@ /area/station/commons/storage/art) "bMn" = ( /obj/effect/turf_decal/weather/snow, -/obj/effect/turf_decal/weather/snow/corner, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 4 }, -/turf/open/floor/iron/freezer, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) -"bMt" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ +"bMU" = ( +/obj/structure/rack, +/obj/effect/spawner/random/techstorage/command_all, +/obj/effect/turf_decal/siding/dark{ dir = 4 }, /turf/open/floor/iron, @@ -4937,8 +4943,8 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "bMW" = ( -/obj/machinery/iv_drip, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/iv_drip, /obj/machinery/light/small/directional/west, /turf/open/floor/iron/showroomfloor, /area/station/medical/virology) @@ -4989,16 +4995,16 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "bNP" = ( -/obj/structure/cable, /obj/structure/broken_flooring/pile/directional/east, /obj/effect/decal/cleanable/dirt, /obj/structure/alien/weeds, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) "bNQ" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/machinery/firealarm/directional/west, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -5016,11 +5022,11 @@ /turf/closed/wall, /area/station/service/kitchen) "bON" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/white{ dir = 8 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) "bOR" = ( @@ -5102,12 +5108,6 @@ /obj/machinery/photobooth/security, /turf/open/floor/iron, /area/station/security/execution/transfer) -"bQQ" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/hallway/secondary/recreation) "bRf" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/spawner/random/structure/steam_vent, @@ -5135,8 +5135,7 @@ /area/station/maintenance/starboard/greater) "bRr" = ( /obj/structure/chair{ - dir = 1; - pixel_y = -2 + dir = 1 }, /obj/effect/turf_decal/siding/brown, /turf/open/floor/iron/smooth, @@ -5247,19 +5246,12 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"bUv" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/medical/medbay/aft) "bUD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/starboard) @@ -5313,13 +5305,6 @@ /obj/effect/landmark/start/head_of_security, /turf/open/floor/iron/small, /area/station/security/office) -"bVR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/maintenance/starboard/greater) "bWh" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -5375,12 +5360,6 @@ /obj/machinery/chem_heater/withbuffer, /turf/open/floor/iron, /area/station/science/xenobiology) -"bWK" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "bXi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5399,11 +5378,8 @@ /turf/open/floor/iron/dark, /area/station/medical/cryo) "bXG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/light_switch/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/side{ dir = 4 }, @@ -5414,9 +5390,6 @@ dir = 4 }, /obj/structure/closet/crate/bin, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/white, /area/station/medical/virology) "bXO" = ( @@ -5428,11 +5401,11 @@ /turf/open/floor/iron/white/small, /area/station/medical/storage) "bXR" = ( -/obj/structure/table/wood, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, -/turf/open/floor/fake_snow, +/obj/structure/table/wood, +/turf/open/floor/stone, /area/station/service/bar) "bYf" = ( /obj/structure/reagent_dispensers/fueltank, @@ -5458,6 +5431,25 @@ dir = 1 }, /area/station/engineering/hallway) +"bYo" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science/xenobiology) +"bYC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/dark/small, +/area/station/tcommsat/server) "bYK" = ( /obj/effect/spawner/random/maintenance, /obj/effect/decal/cleanable/dirt, @@ -5491,12 +5483,12 @@ /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) "bZt" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wood{ dir = 10 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/simple/dark/hidden, /turf/open/floor/wood/tile, /area/station/tcommsat/server) @@ -5524,12 +5516,12 @@ /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) "bZz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/wood/parquet, /area/station/medical/psychology) "bZN" = ( @@ -5577,17 +5569,28 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"caG" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/table, +/obj/item/reagent_containers/cup/beaker/large{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/medkit{ + pixel_y = -2 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "caI" = ( -/obj/structure/cable, /obj/effect/decal/cleanable/glass, +/obj/structure/cable, /turf/open/floor/eighties, /area/station/service/abandoned_gambling_den/gaming) "caK" = ( /obj/structure/closet/secure_closet/personal, /obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "caW" = ( @@ -5655,34 +5658,10 @@ /obj/machinery/disposal/bin, /turf/open/floor/iron/smooth, /area/station/command/heads_quarters/qm) -"cbt" = ( -/obj/structure/cable, -/obj/structure/table/bronze, -/obj/effect/turf_decal/siding/thinplating_new/terracotta{ - dir = 4 - }, -/obj/item/reagent_containers/cup/glass/bottle/beer{ - pixel_x = 7; - pixel_y = 11 - }, -/obj/item/reagent_containers/cup/glass/bottle/beer{ - pixel_x = -1; - pixel_y = 11 - }, -/obj/item/reagent_containers/cup/glass/bottle/beer{ - pixel_x = 3; - pixel_y = 7 - }, -/obj/item/reagent_containers/cup/glass/bottle/beer{ - pixel_x = -7; - pixel_y = 7 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/meeting_room) "cbH" = ( -/obj/structure/cable, /obj/item/kirbyplants/random, /obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) "cbO" = ( @@ -5733,18 +5712,6 @@ }, /turf/open/floor/iron, /area/station/security/tram) -"ccF" = ( -/obj/structure/cable, -/obj/machinery/door/airlock/command{ - name = "Telecomms Server Room" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "comms-entrance-south" - }, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/tcommsat/server) "ccG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment, @@ -5760,9 +5727,9 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "cdg" = ( -/obj/machinery/light/small/directional/west, -/turf/open/floor/grass, -/area/station/science/xenobiology) +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/showroomfloor, +/area/station/commons/toilet/auxiliary) "cdn" = ( /obj/machinery/telecomms/server/presets/medical, /turf/open/floor/circuit, @@ -5803,9 +5770,16 @@ /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "cea" = ( -/obj/structure/window/spawner/directional/south, -/turf/open/space/basic, -/area/space/nearstation) +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 1; + id = "aibridge" + }, +/obj/effect/spawner/random/structure/grille, +/turf/open/floor/plating, +/area/station/maintenance/department/engine) "ceD" = ( /obj/machinery/door/airlock/grunge{ name = "Janitorial Closet" @@ -5883,20 +5857,13 @@ /obj/effect/spawner/structure/window/survival_pod, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/ai) -"cfn" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron, -/area/station/cargo/storage) -"cfH" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/dock) +"cfy" = ( +/obj/machinery/door/airlock/glass, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/greater) "cgs" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral/opposingcorners{ @@ -5910,10 +5877,13 @@ /turf/open/floor/iron/small, /area/station/hallway/secondary/service) "cgt" = ( -/obj/effect/turf_decal/sand/plating, -/obj/effect/decal/cleanable/garbage, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "cgy" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 4 @@ -6007,9 +5977,6 @@ dir = 1 }, /obj/structure/flora/bush/flowers_pp/style_random, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/grass, /area/station/service/chapel) "cig" = ( @@ -6029,14 +5996,14 @@ /turf/open/floor/wood/parquet, /area/station/service/library) "cip" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/red/opposingcorners{ dir = 1 }, +/obj/effect/landmark/start/depsec/science, +/obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, -/obj/effect/landmark/start/depsec/science, /turf/open/floor/iron, /area/station/security/checkpoint/science) "cis" = ( @@ -6055,10 +6022,14 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "ciR" = ( -/obj/structure/table, -/obj/effect/spawner/random/techstorage/command_all, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/floor/plating/rust, +/area/station/medical/morgue) "ciT" = ( /obj/structure/table/glass, /obj/item/radio/intercom/directional/east, @@ -6070,11 +6041,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"ciW" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/purple/opposingcorners, -/turf/open/floor/iron/cafeteria, -/area/station/science/circuits) "cjc" = ( /obj/structure/chair/stool/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -6128,7 +6094,6 @@ "cjY" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes/corner, /obj/effect/turf_decal/tile/neutral, /obj/machinery/camera/autoname/directional/east, /obj/machinery/light/cold/directional/east, @@ -6160,10 +6125,6 @@ /obj/structure/sign/departments/engineering/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"ckt" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "cku" = ( /obj/structure/barricade/wooden/crude, /turf/open/floor/noslip, @@ -6213,13 +6174,10 @@ /turf/open/floor/iron/kitchen/small, /area/station/maintenance/aft) "clf" = ( +/obj/effect/turf_decal/siding/wood, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock{ - name = "Auxiliary Bathrooms" - }, -/turf/open/floor/plating, -/area/station/commons/toilet/auxiliary) +/turf/open/floor/wood/tile, +/area/station/service/lawoffice) "cll" = ( /obj/machinery/door/window/right/directional/west{ name = "Fitness Ring" @@ -6229,18 +6187,29 @@ /area/station/commons/dorms) "clq" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) "clt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/blue, /obj/structure/cable, +/obj/effect/turf_decal/siding/blue, /turf/open/floor/iron/white/small, /area/station/command/heads_quarters/cmo) +"clH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/storage/tech) "clV" = ( /obj/structure/table, /obj/effect/mapping_helpers/broken_floor, @@ -6257,15 +6226,14 @@ /obj/effect/turf_decal/siding/wood{ dir = 5 }, -/obj/structure/sign/departments/restroom/directional/north, /turf/open/floor/wood, /area/station/hallway/secondary/entry) "cmd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating_new/terracotta, -/turf/open/floor/iron/small, -/area/station/ai_monitored/command/storage/eva) +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/wood/tile, +/area/station/command/meeting_room) "cmf" = ( /turf/closed/wall/rust, /area/station/maintenance/department/engine/atmos) @@ -6288,11 +6256,11 @@ /area/station/engineering/storage/tcomms) "cmw" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/public, /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /obj/effect/mapping_helpers/airlock/unres{ @@ -6305,11 +6273,17 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"cmA" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 4 + }, +/turf/open/floor/circuit, +/area/station/tcommsat/server) "cmD" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, @@ -6324,20 +6298,14 @@ /turf/open/floor/iron, /area/station/security/tram) "cnn" = ( -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, /turf/open/floor/iron/small, /area/station/service/barber) -"cns" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 5 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "cnC" = ( /obj/structure/lattice, /obj/structure/window/reinforced/spawner/directional/west, @@ -6347,10 +6315,6 @@ /obj/machinery/suit_storage_unit/rd, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/rd) -"cnT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/fake_snow, -/area/station/hallway/secondary/exit/departure_lounge) "cob" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -6385,6 +6349,12 @@ /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, /turf/closed/wall/r_wall, /area/station/engineering/atmos) +"cov" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron, +/area/station/science/lobby) "cow" = ( /turf/closed/wall, /area/station/engineering/lobby) @@ -6411,7 +6381,7 @@ }, /obj/effect/mapping_helpers/airlock/access/any/command/maintenance, /turf/open/floor/plating, -/area/station/maintenance/department/engine) +/area/station/ai_monitored/turret_protected/aisat/maint) "cpE" = ( /obj/structure/closet/emcloset, /turf/open/floor/iron, @@ -6424,12 +6394,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"cpJ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/transit_tube/horizontal, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/greater) "cpP" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -6444,6 +6408,16 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/wood/tile, /area/station/command/heads_quarters/hop) +"cpU" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Cubicle" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "cqa" = ( /obj/machinery/status_display/ai/directional/west, /turf/open/floor/iron, @@ -6458,8 +6432,8 @@ /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) "cqn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/machinery/camera/autoname/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white/side, /area/station/science/xenobiology) "cqr" = ( @@ -6548,11 +6522,6 @@ }, /turf/open/floor/wood/large, /area/station/command/corporate_suite) -"cru" = ( -/obj/structure/cable, -/obj/machinery/light/cold/directional/north, -/turf/open/floor/iron, -/area/station/hallway/secondary/dock) "crx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral, @@ -6560,9 +6529,13 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "crE" = ( -/obj/structure/window/spawner/directional/north, -/turf/open/space/basic, -/area/space/nearstation) +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/poddoor/shutters{ + dir = 1; + id = "aibridge" + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engine) "crJ" = ( /obj/effect/turf_decal/siding/red{ dir = 6 @@ -6655,6 +6628,13 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/security/prison/work) +"ctu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "ctH" = ( /turf/open/floor/iron/herringbone, /area/station/commons/dorms) @@ -6682,18 +6662,9 @@ /turf/open/floor/iron, /area/station/security/prison/rec) "cuw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/turf/open/floor/iron/white/corner{ - dir = 1 - }, -/area/station/hallway/secondary/entry) +/obj/effect/spawner/structure/window/reinforced, +/turf/closed/wall, +/area/station/command/corporate_showroom) "cuZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -6708,9 +6679,6 @@ /obj/machinery/light/directional/east, /obj/structure/table, /obj/item/stack/sheet/mineral/plasma/five, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) "cvk" = ( @@ -6806,10 +6774,10 @@ /turf/open/floor/iron, /area/station/security/tram) "cwS" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 5 }, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, @@ -6822,11 +6790,11 @@ /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/ai) "cxy" = ( -/obj/structure/cable, /obj/structure/disposalpipe/junction{ dir = 1 }, /obj/structure/broken_flooring/singular/directional/east, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, @@ -6870,22 +6838,22 @@ /turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) "cxO" = ( -/obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ id = "rdoffice"; name = "Research Director's Shutters" }, +/obj/structure/cable, /turf/open/floor/plating, /area/station/science/cubicle) "cyf" = ( /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/item/kirbyplants/random, /obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "cyk" = ( @@ -6983,10 +6951,10 @@ }, /area/station/service/janitor) "cAb" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 5 }, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side, @@ -7008,16 +6976,16 @@ /turf/open/floor/iron/white/small, /area/station/medical/surgery/theatre) "cAl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /obj/effect/turf_decal/siding/wood{ dir = 4 }, /obj/effect/turf_decal/siding/wood{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/landmark/start/assistant, -/obj/structure/cable, /turf/open/floor/wood/tile, /area/station/service/bar) "cAm" = ( @@ -7031,20 +6999,20 @@ /turf/open/floor/engine, /area/station/science/explab) "cAr" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, /turf/open/floor/iron, /area/station/hallway/primary/aft) "cAt" = ( -/obj/structure/cable, /obj/machinery/door/poddoor/shutters{ dir = 8; id = "mechbay"; name = "Mech Bay Shutters" }, +/obj/structure/cable, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/science/robotics/mechbay) "cAv" = ( @@ -7075,14 +7043,12 @@ /turf/open/floor/engine, /area/station/engineering/supermatter/room) "cBu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/junction/flip, /obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/holopad, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron, -/area/station/hallway/secondary/exit/departure_lounge) +/area/station/hallway/primary/fore) "cBw" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/structure/filingcabinet/chestdrawer, @@ -7110,9 +7076,17 @@ /turf/open/floor/iron/white, /area/station/science/cytology) "cCl" = ( -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/starboard/greater) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/central/fore) "cCv" = ( /obj/item/radio/intercom/directional/south, /obj/effect/turf_decal/siding/wideplating_new/terracotta, @@ -7150,6 +7124,12 @@ }, /turf/open/misc/asteroid/airless, /area/space/nearstation) +"cCK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "cCM" = ( /obj/structure/cable, /obj/structure/sink/kitchen/directional/east, @@ -7184,17 +7164,6 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/dark/small, /area/station/medical/chemistry) -"cDa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1 - }, -/turf/open/floor/iron/white/side{ - dir = 8 - }, -/area/station/science/xenobiology) "cDb" = ( /obj/structure/chair/office{ dir = 4 @@ -7202,10 +7171,6 @@ /obj/effect/landmark/start/head_of_security, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/hos) -"cDf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron, -/area/station/hallway/secondary/dock) "cDt" = ( /obj/structure/chair/comfy/shuttle, /obj/structure/transport/linear/tram, @@ -7350,11 +7315,6 @@ dir = 1 }, /obj/effect/turf_decal/siding/yellow, -/obj/machinery/button/door/directional/south{ - id = "bridge blast"; - name = "Bridge Access Blast Door Control"; - req_access = list("command") - }, /turf/open/floor/wood/tile, /area/station/command/bridge) "cFg" = ( @@ -7369,12 +7329,12 @@ }, /turf/open/floor/iron, /area/station/security) -"cFj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/alien/weeds, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron, -/area/station/maintenance/starboard/greater) +"cFo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/white/side, +/area/station/science/research) "cFq" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -7402,6 +7362,15 @@ }, /turf/open/floor/iron/small, /area/station/maintenance/port/lesser) +"cFY" = ( +/obj/structure/hedge, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/fore) "cGj" = ( /turf/closed/wall/r_wall, /area/station/security/execution/education) @@ -7460,16 +7429,25 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/small, /area/station/engineering/atmos/pumproom) +"cHy" = ( +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/effect/turf_decal/siding/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/cafeteria, +/area/station/science/circuits) "cHC" = ( /obj/structure/chair{ pixel_y = -2 }, /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/lawyer, +/obj/machinery/light/small/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, -/obj/effect/landmark/start/lawyer, -/obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/station/service/lawoffice) "cHD" = ( @@ -7622,15 +7600,12 @@ /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/open/floor/iron, /area/station/engineering/hallway) -"cKL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/dark/small, -/area/station/tcommsat/server) "cKV" = ( /obj/machinery/light/floor, /obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/siding/dark{ + dir = 8 + }, /turf/open/floor/iron/dark/smooth_large, /area/station/command/bridge) "cLa" = ( @@ -7690,10 +7665,12 @@ dir = 10 }, /obj/structure/table/glass, -/obj/item/storage/box/monkeycubes{ - pixel_x = 6; +/obj/item/stack/sheet/mineral/plasma/thirty{ pixel_y = 4 }, +/obj/item/reagent_containers/dropper{ + pixel_y = -3 + }, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) "cLW" = ( @@ -7723,11 +7700,11 @@ id = "kitchenshutters"; name = "Kitchen Shutter Control" }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 +/obj/machinery/smartfridge/drying, +/obj/effect/turf_decal/siding/end{ + dir = 4 }, -/turf/open/floor/iron/kitchen/small, +/turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) "cMG" = ( /obj/machinery/door/poddoor/incinerator_atmos_aux, @@ -7790,6 +7767,13 @@ /obj/machinery/light/very_dim/directional/west, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) +"cNT" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_freezer_chamber_input, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/freezerchamber) "cNZ" = ( /obj/effect/turf_decal/box/red/corners{ dir = 8 @@ -7827,14 +7811,19 @@ /turf/open/floor/iron, /area/station/cargo/sorting) "cOC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/button/door/directional/south{ + id = "XenoPens"; + name = "Xenobiology Shutters"; + req_access = list("xenobiology") }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/side{ dir = 1 }, @@ -7874,6 +7863,15 @@ /obj/structure/spider/stickyweb, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) +"cPh" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/auxlab/firing_range) "cPi" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -7946,7 +7944,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/table/wood, -/obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/stone, /area/station/service/bar) "cQP" = ( @@ -7961,11 +7958,11 @@ /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) "cRc" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral, /obj/structure/sign/departments/court/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "cRm" = ( @@ -7974,9 +7971,9 @@ /turf/open/floor/plating, /area/station/maintenance/port/lesser) "cRn" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment, /obj/effect/spawner/structure/window, +/obj/structure/cable, /turf/open/floor/plating, /area/station/science/lobby) "cRo" = ( @@ -8087,13 +8084,13 @@ "cSy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /obj/effect/turf_decal/trimline/neutral/corner{ dir = 8 }, /obj/effect/turf_decal/trimline/neutral/line{ dir = 5 }, -/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "cSC" = ( @@ -8104,10 +8101,10 @@ /turf/open/floor/plating, /area/station/maintenance/central/greater) "cTp" = ( +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 4 }, -/obj/machinery/holopad, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) "cTw" = ( @@ -8122,10 +8119,10 @@ /area/station/medical/surgery/theatre) "cTC" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, @@ -8134,10 +8131,27 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"cTE" = ( +/obj/machinery/door/airlock{ + name = "Abandoned Brewery" + }, +/obj/effect/mapping_helpers/airlock/access/any/science/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "cTK" = ( /obj/structure/closet/firecloset, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/engineering/break_room) +"cTP" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engine) "cTX" = ( /obj/machinery/computer/crew{ dir = 4 @@ -8277,6 +8291,13 @@ dir = 4 }, /area/station/maintenance/fore/lesser) +"cWm" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 4; + name = "killroom vent" + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/station/science/xenobiology) "cWC" = ( /obj/item/reagent_containers/cup/watering_can/wood, /obj/structure/table, @@ -8286,16 +8307,18 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/grunge{ name = "Morgue" }, /obj/effect/mapping_helpers/airlock/access/all/medical/morgue, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, /turf/open/floor/iron/dark/textured_half{ dir = 1 }, -/area/station/hallway/primary/aft) +/area/station/medical/morgue) "cWZ" = ( /obj/machinery/door/airlock/external{ name = "Primary Docking Bay" @@ -8307,13 +8330,6 @@ dir = 1 }, /area/station/hallway/secondary/entry) -"cXa" = ( -/obj/structure/hedge, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/central) "cXb" = ( /obj/machinery/light/small/directional/north, /obj/effect/turf_decal/weather/dirt{ @@ -8392,13 +8408,13 @@ /turf/open/floor/iron, /area/station/hallway/secondary/dock) "cYk" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/sign/departments/telecomms/directional/south, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/departments/telecomms/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "cYp" = ( @@ -8415,14 +8431,14 @@ /turf/open/floor/plating, /area/station/engineering/supermatter/room) "cYD" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/table/wood, /obj/item/hemostat{ desc = "Ah yes, the Haircutting Device."; name = "Totally Not Scissors" }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/small, /area/station/service/barber) "cYE" = ( @@ -8449,6 +8465,13 @@ }, /turf/open/floor/iron/dark/small, /area/station/maintenance/department/engine) +"cYR" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/wood/large, +/area/station/maintenance/department/science/xenobiology) "cYS" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -8467,7 +8490,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/structure/disposalpipe/junction/flip{ +/obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/iron/dark/side{ @@ -8516,8 +8539,8 @@ /turf/open/floor/wood, /area/station/service/chapel) "cZx" = ( -/obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, /turf/open/floor/wood, /area/station/commons/fitness/recreation) "cZy" = ( @@ -8557,15 +8580,10 @@ }, /turf/open/floor/iron/white/small, /area/station/service/janitor) -"dag" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 5 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) +"cZW" = ( +/obj/structure/closet/crate/grave, +/turf/open/misc/dirt/station, +/area/station/medical/morgue) "dah" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/dark_red/half/contrasted{ @@ -8607,6 +8625,14 @@ }, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/ce) +"daH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/floor/iron/dark/small, +/area/station/tcommsat/server) "dba" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -8704,11 +8730,11 @@ /area/station/hallway/primary/port) "dcH" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/junction{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/white, /area/station/medical/medbay/central) @@ -8774,11 +8800,11 @@ "ddF" = ( /mob/living/basic/goat/pete, /obj/effect/turf_decal/weather/snow, -/obj/effect/turf_decal/weather/snow/corner, /obj/structure/disposalpipe/segment{ dir = 10 }, -/turf/open/floor/iron/freezer, +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) "ddK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -8800,21 +8826,15 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/hallway/secondary/service) -"deb" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron, -/area/station/hallway/secondary/recreation) "deh" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/white{ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) "dex" = ( @@ -8883,6 +8903,10 @@ dir = 1 }, /area/station/cargo/storage) +"dfO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/closed/wall/r_wall, +/area/station/maintenance/starboard/central) "dfT" = ( /obj/effect/turf_decal/bot{ dir = 1 @@ -8907,19 +8931,15 @@ /area/station/engineering/main) "dgn" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/pile/directional/east, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"dgo" = ( -/obj/structure/cable, -/turf/open/floor/iron/white/corner, -/area/station/science/lower) "dgt" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -8951,6 +8971,14 @@ /obj/structure/sign/poster/official/random/directional/west, /turf/open/floor/iron/dark/small, /area/station/engineering/storage_shared) +"dhb" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/corner, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) "dhh" = ( /obj/structure/cable, /obj/machinery/status_display/ai/directional/north, @@ -8967,18 +8995,12 @@ /obj/effect/turf_decal/weather/dirt{ dir = 10 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/grass, /area/station/service/chapel) "dhy" = ( -/obj/structure/cable, /obj/structure/disposalpipe/trunk{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/machinery/disposal/bin, /obj/effect/turf_decal/bot, @@ -8986,20 +9008,16 @@ dir = 8 }, /obj/machinery/light/small/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) "dhC" = ( -/obj/structure/table, -/obj/item/stack/ore/gold{ - pixel_x = 5; - pixel_y = 6 - }, -/obj/item/stack/ore/iron, -/obj/item/stack/ore/plasma{ - pixel_y = -6 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +/obj/machinery/vending/assist, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "dhG" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, /obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, @@ -9015,11 +9033,11 @@ /turf/open/floor/plating, /area/station/maintenance/department/engine) "dim" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, @@ -9091,11 +9109,11 @@ /turf/open/floor/iron, /area/station/hallway/primary/port) "diK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/turf_decal/tile/red/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/landmark/start/mime, /turf/open/floor/iron/smooth, /area/station/service/greenroom) @@ -9123,11 +9141,11 @@ /area/station/hallway/secondary/command) "djc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /obj/effect/turf_decal/tile/red/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 8 }, -/obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/service/greenroom) "djf" = ( @@ -9151,6 +9169,14 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/small, /area/station/security/brig) +"djE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/cafeteria, +/area/station/science/circuits) "djO" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -9179,9 +9205,9 @@ name = "Dorms" }, /obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, /turf/open/floor/iron/textured_half, /area/station/commons/dorms) "dkh" = ( @@ -9198,6 +9224,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold/purple/visible, /turf/open/floor/iron, /area/station/engineering/atmos) +"dkw" = ( +/obj/effect/turf_decal/trimline/dark/end{ + dir = 8 + }, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/department/science/xenobiology) "dkz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -9210,9 +9242,6 @@ /obj/structure/closet/secure_closet/engineering_personal, /obj/item/clothing/suit/hooded/wintercoat/engineering, /obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/small, /area/station/engineering/break_room) "dkI" = ( @@ -9256,11 +9285,11 @@ /turf/open/misc/dirt/station, /area/station/service/chapel) "dlG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/white{ dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) "dlJ" = ( @@ -9276,12 +9305,12 @@ /area/station/security/checkpoint/customs/auxiliary) "dml" = ( /obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 4 }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/iron/dark, /area/station/medical/cryo) "dmG" = ( @@ -9304,9 +9333,6 @@ /obj/effect/turf_decal/stripes/white/line{ dir = 10 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /turf/open/floor/engine, /area/station/science/xenobiology) "dmW" = ( @@ -9319,6 +9345,11 @@ dir = 1 }, /area/station/security/prison/safe) +"dnc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "dng" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -9340,7 +9371,6 @@ /turf/open/floor/iron/dark/small, /area/station/security/detectives_office) "dnO" = ( -/obj/structure/cable, /obj/effect/turf_decal/trimline/white/warning{ dir = 4 }, @@ -9354,6 +9384,7 @@ dir = 8 }, /obj/machinery/light/small/directional/south, +/obj/structure/cable, /turf/open/floor/wood, /area/station/commons/fitness/recreation) "dnU" = ( @@ -9465,8 +9496,8 @@ /turf/open/floor/tram, /area/station/security/tram) "dqj" = ( -/obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/aft) "dqB" = ( @@ -9541,11 +9572,12 @@ /obj/machinery/door/airlock/maintenance{ name = "Maintenance" }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/tech_storage, +/obj/structure/cable, /turf/open/floor/plating, -/area/station/maintenance/department/engine) +/area/station/engineering/storage/tech) "dsb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -9570,11 +9602,12 @@ /turf/open/floor/wood/parquet, /area/station/service/library) "dsp" = ( -/obj/effect/turf_decal/sand/plating, -/obj/structure/rack, -/obj/item/pickaxe, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "dss" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/purple, @@ -9583,14 +9616,8 @@ /turf/open/floor/iron/dark, /area/station/science/genetics) "dst" = ( -/obj/effect/turf_decal/siding/white{ - dir = 4 - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/small, +/obj/machinery/disposal/bin, +/turf/open/floor/iron/dark, /area/station/medical/morgue) "dsK" = ( /obj/effect/turf_decal/tile/red/opposingcorners, @@ -9612,10 +9639,15 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/maintenance/port/aft) -"dtk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/closed/wall, -/area/station/science/ordnance/testlab) +"dsW" = ( +/obj/machinery/door/airlock{ + name = "Abandoned Brewery" + }, +/obj/effect/mapping_helpers/airlock/access/any/science/maintenance, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/maintenance/department/science/xenobiology) "dtm" = ( /obj/structure/window/spawner/directional/south, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -9650,6 +9682,9 @@ /obj/machinery/firealarm/directional/north, /obj/machinery/camera/autoname/directional/north, /obj/structure/cable, +/obj/item/flesh_shears{ + pixel_x = -5 + }, /turf/open/floor/iron/dark, /area/station/science/genetics) "dtO" = ( @@ -9674,9 +9709,8 @@ /turf/open/floor/iron/white, /area/station/science/robotics/augments) "duj" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) "dun" = ( @@ -9722,6 +9756,12 @@ }, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) +"dvb" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/floor/wood/large, +/area/station/maintenance/department/science/xenobiology) "dvd" = ( /turf/open/floor/iron/white/small, /area/station/service/hydroponics) @@ -9735,6 +9775,13 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/command/nuke_storage) +"dvI" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "dvJ" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/dark_red/fourcorners, @@ -9811,19 +9858,22 @@ /turf/open/floor/iron/smooth_large, /area/station/engineering/storage_shared) "dwT" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/structure/rack, +/obj/item/poster/random_contraband{ + pixel_y = 8 }, -/obj/effect/landmark/navigate_destination/techstorage, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) +/obj/item/poster/random_contraband{ + pixel_y = 4 + }, +/obj/item/poster/random_contraband, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/science/xenobiology) "dwX" = ( +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/holopad, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "dxf" = ( @@ -9838,10 +9888,10 @@ "dxw" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/machinery/light/warm/directional/east, +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) "dxG" = ( @@ -9874,20 +9924,14 @@ /turf/open/floor/iron/dark/diagonal, /area/station/service/bar) "dxZ" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock{ name = "Gas Lab Maintenance" }, /obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"dyd" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/turf/open/misc/dirt/station, -/area/station/service/chapel) "dyp" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/decal/cleanable/dirt, @@ -9926,6 +9970,15 @@ "dyI" = ( /turf/closed/wall/r_wall, /area/station/engineering/supermatter) +"dyJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/small, +/area/station/science/ordnance/storage) "dyO" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -9959,11 +10012,11 @@ /turf/open/floor/engine, /area/station/engineering/supermatter/room) "dzE" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 5 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "dAn" = ( @@ -9971,9 +10024,10 @@ /turf/open/floor/plating, /area/station/maintenance/port/lesser) "dAr" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/obj/structure/transit_tube/horizontal, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/starboard/aft) "dAu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -10089,6 +10143,13 @@ dir = 1 }, /area/station/hallway/secondary/exit/departure_lounge) +"dBO" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 8; + name = "killroom vent" + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/station/science/xenobiology) "dBT" = ( /obj/effect/turf_decal/box/white{ color = "#EFB341" @@ -10146,6 +10207,20 @@ dir = 8 }, /area/station/security/office) +"dDc" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Ordnance Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) "dDd" = ( /obj/structure/table, /obj/item/exodrone{ @@ -10190,9 +10265,6 @@ /obj/effect/turf_decal/stripes/white/line{ dir = 9 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 2 - }, /turf/open/floor/engine, /area/station/science/xenobiology) "dDQ" = ( @@ -10254,12 +10326,6 @@ }, /turf/open/floor/tram, /area/station/security/tram) -"dEL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/dark/corner{ - dir = 1 - }, -/area/station/science/ordnance/testlab) "dEY" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 5 @@ -10329,6 +10395,17 @@ }, /turf/open/floor/tram, /area/station/security/tram) +"dHp" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "dHx" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -10341,14 +10418,21 @@ }, /turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) +"dHy" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "dHL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) +/obj/effect/turf_decal/siding/dark/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/command/bridge) "dHT" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -10402,6 +10486,14 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"dJj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "dJn" = ( /obj/machinery/light/small/directional/south{ dir = 4 @@ -10423,15 +10515,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"dJJ" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/engineering/main) "dJT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10458,6 +10541,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"dKo" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/department/science/xenobiology) "dKq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10514,12 +10601,12 @@ /turf/open/floor/iron/dark/herringbone, /area/station/security/execution/education) "dLq" = ( +/obj/structure/cable, /obj/structure/table, /obj/item/hand_labeler, /obj/item/camera, /obj/machinery/firealarm/directional/north, /obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, /turf/open/floor/iron, /area/station/commons/storage/art) "dLv" = ( @@ -10531,11 +10618,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/processing) -"dLQ" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "dLR" = ( /obj/effect/turf_decal/siding/red{ dir = 8 @@ -10550,6 +10632,17 @@ /obj/effect/landmark/start/librarian, /turf/open/floor/carpet, /area/station/service/library) +"dMe" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "dMg" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 4; @@ -10583,14 +10676,10 @@ /area/station/hallway/primary/central/fore) "dMM" = ( /obj/effect/spawner/random/engineering/tracking_beacon, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "dMX" = ( /obj/machinery/holopad/secure, -/obj/structure/statue/snow/snowman, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) "dMY" = ( @@ -10606,9 +10695,11 @@ /turf/open/floor/iron, /area/station/engineering/gravity_generator) "dNo" = ( -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "dNq" = ( /turf/closed/wall/r_wall/rust, /area/station/ai_monitored/aisat/exterior) @@ -10627,21 +10718,35 @@ /turf/open/floor/light/colour_cycle/dancefloor_b, /area/station/maintenance/starboard/central) "dNL" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/turf_decal/trimline/neutral/end{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"dNN" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/reagent_containers/cup/glass{ + pixel_x = -3; + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/glass{ + pixel_x = 5; + pixel_y = 10 + }, +/turf/open/floor/wood/large, +/area/station/maintenance/department/science/xenobiology) "dNU" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 }, /obj/effect/spawner/random/vending/snackvend, -/obj/machinery/light/small/directional/north, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) "dOb" = ( @@ -10794,6 +10899,10 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/engineering/lobby) +"dQm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/commons/fitness/recreation) "dQn" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -10802,12 +10911,6 @@ name = "Holodeck Projector Floor" }, /area/station/holodeck/rec_center) -"dQE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) "dQQ" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 9 @@ -10838,24 +10941,45 @@ /obj/effect/turf_decal/siding/wood/end, /turf/open/floor/stone, /area/station/service/chapel) +"dRv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Research Wing" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "sci-entrance" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "rdrnd"; + name = "Research and Development Shutters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white/textured_half{ + dir = 1 + }, +/area/station/hallway/primary/starboard) "dRz" = ( /obj/docking_port/stationary/syndicate/northeast, /turf/open/space/basic, /area/space) "dRT" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "dSb" = ( +/obj/machinery/door/airlock/hatch{ + name = "Secure Pen" + }, /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 4 }, /obj/structure/cable, -/obj/machinery/door/airlock/hatch{ - name = "Secure Pen" - }, /turf/open/floor/iron/white/textured_half{ dir = 1 }, @@ -10873,9 +10997,9 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/central) "dSu" = ( @@ -10883,11 +11007,7 @@ /turf/open/floor/iron, /area/station/security/execution/transfer) "dSz" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/weather/snow/corner, +/obj/machinery/airalarm/directional/south, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) "dSO" = ( @@ -10929,9 +11049,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/light/floor, /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "dTi" = ( @@ -11029,6 +11146,24 @@ /obj/machinery/holopad, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) +"dUS" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Cubicle" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/cubicle) +"dUY" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/obj/effect/spawner/random/entertainment/drugs, +/obj/effect/spawner/random/entertainment/drugs, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "dVQ" = ( /obj/effect/turf_decal/weather/dirt{ dir = 8 @@ -11048,11 +11183,11 @@ /turf/open/floor/iron/smooth, /area/station/security/checkpoint/supply) "dWh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, /obj/structure/sign/departments/science/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/starboard) "dWm" = ( @@ -11060,13 +11195,13 @@ /turf/open/floor/eighties/red, /area/station/service/abandoned_gambling_den/gaming) "dWs" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/corner, /area/station/science/xenobiology) "dWz" = ( @@ -11075,9 +11210,6 @@ dir = 4 }, /obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) "dWF" = ( @@ -11097,8 +11229,8 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) "dWK" = ( @@ -11110,17 +11242,18 @@ /turf/open/floor/iron, /area/station/security/warden) "dWS" = ( -/obj/structure/closet/crate/large, -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +/obj/structure/rack, +/obj/effect/spawner/random/techstorage/security_all, +/obj/effect/turf_decal/tile/red/opposingcorners, +/obj/effect/turf_decal/bot, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "dWW" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, /area/station/maintenance/central/lesser) "dXb" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -11129,12 +11262,10 @@ codes_txt = "delivery;dir=4"; location = "Research" }, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/central) "dXe" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "sci-entrance" }, @@ -11143,15 +11274,11 @@ }, /obj/effect/mapping_helpers/airlock/access/all/science/research, /obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron, /area/station/science/lower) -"dXj" = ( -/obj/structure/closet/secure_closet/brig, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "dXu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -11168,11 +11295,11 @@ /turf/open/floor/plating, /area/station/service/janitor) "dXU" = ( +/obj/machinery/portable_atmospherics/canister, /obj/structure/cable, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 8 }, -/obj/machinery/portable_atmospherics/canister, /turf/open/floor/iron/white/corner{ dir = 1 }, @@ -11249,8 +11376,8 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/greater) "dYW" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) "dYX" = ( @@ -11294,10 +11421,10 @@ /area/station/ai_monitored/turret_protected/ai) "dZp" = ( /obj/item/kirbyplants/random, +/obj/machinery/light/small/directional/east, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, -/obj/machinery/light/small/directional/east, /turf/open/floor/iron/white, /area/station/science/auxlab/firing_range) "dZD" = ( @@ -11319,6 +11446,14 @@ }, /turf/open/floor/iron/small, /area/station/security/prison/shower) +"dZJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/fore) "dZT" = ( /obj/machinery/button/transport/tram/directional/south{ id = 2; @@ -11356,10 +11491,10 @@ /turf/open/floor/iron, /area/station/maintenance/fore/greater) "ebc" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, /obj/structure/steam_vent, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, @@ -11470,7 +11605,7 @@ "ecL" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/transit_tube/horizontal, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "ecY" = ( @@ -11484,10 +11619,10 @@ /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/teleporter) "ede" = ( +/obj/machinery/light/floor, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/floor, /turf/open/floor/iron/white/side{ dir = 1 }, @@ -11572,10 +11707,10 @@ }, /area/station/cargo/storage) "eem" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/singular/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "eeD" = ( @@ -11616,21 +11751,21 @@ /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/foyer) "efB" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ dir = 4 }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "efK" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side{ dir = 10 }, @@ -11668,11 +11803,6 @@ /obj/structure/water_source/puddle, /turf/open/misc/asteroid, /area/station/maintenance/starboard/greater) -"egr" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/science/xenobiology) "egA" = ( /obj/machinery/vending/autodrobe, /obj/effect/turf_decal/siding/wideplating/dark{ @@ -11702,7 +11832,6 @@ /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) "egL" = ( -/obj/structure/cable, /obj/effect/mapping_helpers/airlock/access/all/science/rd, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command{ @@ -11712,6 +11841,7 @@ id = "rdoffice"; name = "Research Director's Shutters" }, +/obj/structure/cable, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/cubicle) "egN" = ( @@ -11731,10 +11861,6 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"ehc" = ( -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "ehd" = ( /obj/item/stack/cable_coil, /obj/item/electronics/airlock, @@ -11763,9 +11889,9 @@ /turf/open/floor/iron/smooth, /area/station/engineering/main) "ehf" = ( -/obj/machinery/firealarm/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/north, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "ehj" = ( @@ -11806,11 +11932,11 @@ /area/station/medical/paramedic) "ehZ" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 10 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/singular/directional/south, /turf/open/floor/plating, @@ -11891,10 +12017,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/cargo/bitrunning/den) -"ejx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/science/ordnance/testlab) "ejL" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, /obj/effect/turf_decal/tile/yellow, @@ -12013,19 +12135,19 @@ /turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) "elc" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock/research/glass{ name = "Robotics Lab" }, /obj/effect/mapping_helpers/airlock/access/all/science/robotics, /obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/robotics/mechbay) "elh" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer2, /obj/structure/sign/warning/cold_temp/directional/west, /obj/machinery/camera/autoname/directional/west, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer2, /turf/open/floor/iron/dark, /area/station/science/ordnance) "eln" = ( @@ -12045,13 +12167,13 @@ /turf/open/floor/iron/dark/small, /area/station/engineering/main) "elw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 1 }, /obj/effect/mapping_helpers/broken_floor, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, /obj/structure/table, /obj/item/reagent_containers/dropper, /obj/machinery/reagentgrinder{ @@ -12067,9 +12189,6 @@ dir = 1 }, /obj/item/radio/intercom/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) "elC" = ( @@ -12090,11 +12209,11 @@ /area/station/command/heads_quarters/cmo) "elM" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "elR" = ( @@ -12105,8 +12224,8 @@ /turf/open/floor/iron, /area/station/security/courtroom) "elT" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/dark_red/anticorner/contrasted, +/obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) "emd" = ( @@ -12118,12 +12237,12 @@ /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) "emn" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/purple{ dir = 8 }, /obj/machinery/holopad, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) "emz" = ( @@ -12153,11 +12272,11 @@ /turf/open/floor/iron, /area/station/maintenance/department/medical/central) "enb" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/landmark/navigate_destination/aiupload, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes/line, -/obj/effect/landmark/navigate_destination/aiupload, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) "enq" = ( @@ -12222,9 +12341,6 @@ /obj/effect/turf_decal/tile/dark_red{ dir = 1 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron, /area/station/security/prison) "eof" = ( @@ -12327,9 +12443,6 @@ /area/station/science/xenobiology) "eqG" = ( /obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, /turf/open/floor/iron/dark/small, /area/station/maintenance/central/lesser) "eqI" = ( @@ -12367,8 +12480,8 @@ /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) "erA" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, @@ -12411,12 +12524,16 @@ }, /turf/open/space/basic, /area/space) +"esy" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/station/maintenance/department/engine/atmos) "esz" = ( /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/structure/cable, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/central) "esF" = ( @@ -12435,14 +12552,26 @@ /turf/open/floor/iron/white, /area/station/medical/virology) "esP" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/structure/sign/departments/medbay/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"esW" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sink/directional/south, +/obj/structure/mirror/directional/north, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "ete" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -12489,15 +12618,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/stone, /area/station/service/chapel) -"etX" = ( -/obj/structure/chair/wood{ - dir = 4 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, -/turf/open/floor/stone, -/area/station/service/bar) "etZ" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted, /obj/effect/turf_decal/siding/wideplating/dark/corner{ @@ -12518,10 +12638,10 @@ /turf/open/floor/wood, /area/station/engineering/main) "eul" = ( -/obj/machinery/firealarm/directional/south, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, +/obj/machinery/firealarm/directional/south, /turf/open/floor/iron/white/small, /area/station/commons/fitness/locker_room) "euq" = ( @@ -12554,11 +12674,9 @@ /turf/open/floor/engine, /area/station/science/xenobiology) "euR" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/iron, -/area/station/science/lobby) +/obj/structure/hedge, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "eva" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -12571,9 +12689,6 @@ }, /obj/machinery/disposal/bin, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "evj" = ( @@ -12584,26 +12699,18 @@ /turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) "evq" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) -"evv" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ dir = 4 }, -/turf/open/floor/iron/dark/corner{ - dir = 4 +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"evv" = ( +/obj/machinery/door/airlock{ + name = "Abandoned Lab" }, +/obj/structure/barricade/wooden, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/turf/open/floor/plating, /area/station/science/xenobiology) "evw" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange{ @@ -12635,8 +12742,8 @@ /turf/open/floor/plating, /area/station/engineering/supermatter/room) "ewt" = ( -/obj/structure/cable, /obj/machinery/firealarm/directional/south, +/obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, @@ -12656,6 +12763,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"exu" = ( +/obj/machinery/status_display/ai/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/lower) "exF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -12678,10 +12794,10 @@ /turf/open/floor/wood, /area/station/engineering/break_room) "exR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/singular/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/hallway/secondary/dock) "exW" = ( @@ -12750,6 +12866,17 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"ezb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science/lobby) "ezi" = ( /obj/structure/chair/stool/directional/west, /turf/open/floor/iron/cafeteria, @@ -12780,6 +12907,12 @@ /obj/effect/mapping_helpers/requests_console/assistance, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain) +"ezy" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "ezE" = ( /obj/vehicle/ridden/secway, /turf/open/floor/plating, @@ -12820,9 +12953,6 @@ /area/station/command/heads_quarters/hop) "eAf" = ( /obj/machinery/light/floor, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron, /area/station/cargo/storage) "eAm" = ( @@ -12841,12 +12971,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) -"eAo" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/grimy, -/area/station/commons/vacant_room/office) "eAu" = ( /obj/structure/cable, /obj/machinery/power/tracker, @@ -12855,9 +12979,9 @@ /area/station/solars/starboard/aft) "eAz" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/siding/white{ dir = 1 }, @@ -12945,11 +13069,8 @@ /turf/open/floor/noslip, /area/station/maintenance/department/medical/central) "eBT" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/small, +/obj/item/shovel, +/turf/open/misc/dirt/station, /area/station/medical/morgue) "eCf" = ( /obj/machinery/porta_turret/ai{ @@ -13042,11 +13163,11 @@ /turf/open/floor/iron, /area/station/cargo/storage) "eDz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/stripes/line{ dir = 1 }, /obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) "eDF" = ( @@ -13104,6 +13225,11 @@ /obj/item/stamp/head/hos, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/hos) +"eEi" = ( +/obj/structure/broken_flooring/side/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "eEj" = ( /obj/machinery/door/firedoor/heavy, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -13196,24 +13322,22 @@ /area/station/security/prison) "eFO" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) "eFQ" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes/line{ +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/dark/side{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/landmark/navigate_destination/eva, -/turf/open/floor/iron, /area/station/hallway/primary/fore) "eFV" = ( /obj/effect/decal/cleanable/dirt, @@ -13300,10 +13424,10 @@ /area/station/service/barber) "eHe" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner{ dir = 1 }, @@ -13337,16 +13461,20 @@ /obj/structure/holosign/barrier/atmos/tram, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"eHE" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/commons/dorms) "eHN" = ( /obj/structure/cable, /turf/open/floor/wood/tile, /area/station/maintenance/port/lesser) +"eHP" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Genetics" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/genetics, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "eHS" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 4; @@ -13428,9 +13556,6 @@ name = "Quartermaster's Fax Machine"; pixel_y = 7 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) "eJm" = ( @@ -13458,9 +13583,6 @@ /obj/effect/turf_decal/stripes/asteroid/end, /turf/open/floor/circuit/green, /area/station/science/robotics/mechbay) -"eKc" = ( -/turf/open/floor/fake_snow, -/area/station/commons/dorms) "eKf" = ( /obj/structure/table, /obj/item/storage/box/donkpockets/donkpocketpizza, @@ -13484,14 +13606,15 @@ /turf/open/floor/wood/parquet, /area/station/service/library) "eKP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/landmark/start/hangover, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "eKV" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /obj/machinery/portable_atmospherics/pump, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/open/floor/iron/dark, /area/station/science/ordnance) "eKW" = ( @@ -13500,6 +13623,13 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"eLf" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "eLn" = ( /obj/machinery/door/airlock/glass{ name = "Gold Standard Law Firm" @@ -13508,19 +13638,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/grimy, /area/station/maintenance/starboard/greater) -"eLx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/command/glass{ - name = "E.V.A. Storage" - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/command/eva, -/turf/open/floor/iron/smooth_half{ - dir = 1 - }, -/area/station/ai_monitored/command/storage/eva) "eLB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -13594,15 +13711,28 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"eMm" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron, +/area/station/science/lobby) "eMo" = ( /obj/effect/turf_decal/tile/blue/anticorner/contrasted, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"eMH" = ( +/obj/machinery/button/door/directional/east{ + id = "AuxToilet3"; + name = "Lock Control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/structure/toilet, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/showroomfloor, +/area/station/maintenance/department/science/xenobiology) "eMQ" = ( /obj/machinery/light_switch/directional/east, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "eMS" = ( @@ -13610,7 +13740,6 @@ pixel_y = -2 }, /obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "eMU" = ( @@ -13824,14 +13953,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron/smooth, /area/station/cargo/warehouse) -"eQQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark/smooth_edge{ - dir = 1 - }, -/area/station/maintenance/starboard/greater) "eQY" = ( /obj/machinery/door/airlock/maintenance{ name = "Maintenance" @@ -13849,6 +13970,11 @@ /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"eRO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/starboard/greater) "eRX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -13856,12 +13982,9 @@ /turf/open/floor/iron/white/small, /area/station/medical/virology) "eSd" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "sci-entrance" }, @@ -13870,12 +13993,11 @@ }, /obj/effect/mapping_helpers/airlock/access/all/science/general, /obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron, /area/station/science/lower) -"eSj" = ( -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/stone, -/area/station/service/bar) "eSA" = ( /obj/machinery/disposal/bin, /obj/effect/turf_decal/bot, @@ -13930,17 +14052,8 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/item/kirbyplants/random/fullysynthetic, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /turf/open/floor/iron, /area/station/security/prison) -"eTy" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/dock) "eTJ" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 4 @@ -13955,11 +14068,11 @@ }, /area/station/cargo/lobby) "eTT" = ( +/obj/machinery/firealarm/directional/west, +/obj/machinery/light/floor, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/west, -/obj/machinery/light/floor, /turf/open/floor/iron/white/small, /area/station/science/cubicle) "eUb" = ( @@ -14072,6 +14185,12 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/small, /area/station/engineering/break_room) +"eVF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/engineering/atmospherics_portable, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "eVH" = ( /obj/structure/window/spawner/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -14087,9 +14206,6 @@ /obj/structure/hedge, /obj/machinery/status_display/evac/directional/west, /obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "eVX" = ( @@ -14133,10 +14249,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron, /area/station/security/tram) -"eWD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/white, -/area/station/science/cytology) "eWI" = ( /turf/closed/wall/r_wall, /area/station/maintenance/aft) @@ -14156,10 +14268,10 @@ /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "eWY" = ( -/obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, +/obj/effect/turf_decal/tile/blue, /obj/machinery/light/cold/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) @@ -14171,6 +14283,11 @@ "eXo" = ( /turf/closed/wall/r_wall, /area/station/tcommsat/server) +"eXt" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/hallway/secondary/dock) "eXy" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/table, @@ -14206,10 +14323,10 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "eXW" = ( +/obj/effect/landmark/event_spawn, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/event_spawn, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) "eYc" = ( @@ -14240,6 +14357,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"eYx" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/engineering/storage/tech) "eYB" = ( /obj/effect/turf_decal/siding/wood/end, /turf/open/floor/wood, @@ -14296,12 +14421,6 @@ /obj/structure/window/spawner/directional/east, /turf/open/floor/iron/dark, /area/station/commons/dorms) -"eZs" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "eZM" = ( /obj/structure/cable/layer3, /obj/effect/decal/cleanable/dirt, @@ -14435,10 +14554,10 @@ /turf/open/misc/asteroid, /area/station/maintenance/starboard/greater) "fcs" = ( -/obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, +/obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) "fcE" = ( @@ -14453,13 +14572,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"fcF" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/science/genetics) "fcU" = ( /obj/structure/window/spawner/directional/south, /obj/structure/flora/bush/large/style_random{ @@ -14494,13 +14606,12 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/central) "fdv" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) +/obj/structure/cable, +/turf/open/floor/iron/white/side, +/area/station/science/research) "fdy" = ( /obj/structure/railing{ dir = 1 @@ -14520,14 +14631,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/textured_half, /area/station/command/heads_quarters/ce) -"fdG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/white/side{ - dir = 1 - }, -/area/station/science/lower) "fdM" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -14817,6 +14920,11 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"fjv" = ( +/obj/machinery/computer/operating, +/obj/machinery/requests_console/auto_name/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "fjL" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -14831,15 +14939,6 @@ /obj/structure/chair/stool/directional/east, /turf/open/floor/carpet/blue, /area/station/commons/dorms) -"fjT" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/commons/dorms) "fjV" = ( /obj/item/radio/intercom/directional/south{ broadcasting = 1; @@ -14885,6 +14984,12 @@ }, /turf/open/floor/carpet, /area/station/service/library) +"fkK" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/iron/white/small, +/area/station/science/ordnance/storage) "fkN" = ( /obj/structure/mannequin/plastic, /obj/structure/disposalpipe/segment{ @@ -14935,13 +15040,13 @@ /turf/open/floor/grass, /area/station/service/chapel) "flx" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/research/glass{ name = "Genetics" }, /obj/effect/mapping_helpers/airlock/access/all/science/genetics, /obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/research) "flA" = ( @@ -15032,29 +15137,20 @@ /turf/open/floor/plating, /area/station/security/prison/work) "fmH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/turf/closed/wall, +/area/station/medical/morgue) "fmR" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/service/chapel/funeral) -"fnd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/testlab) "fni" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/red/opposingcorners{ dir = 1 }, /obj/machinery/power/apc/auto_name/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/landmark/start/depsec/science, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/security/checkpoint/science) "fnw" = ( @@ -15065,10 +15161,21 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"fnx" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "fnz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/siding/dark{ + dir = 9 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured, +/area/station/command/meeting_room) "fnI" = ( /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/dark/side{ @@ -15148,8 +15255,6 @@ /turf/open/floor/iron, /area/station/security/lockers) "foI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/window/reinforced/spawner/directional/east, /obj/machinery/button/door/directional/north{ id = "Xenolab"; @@ -15158,6 +15263,8 @@ pixel_y = -2; req_access = list("xenobiology") }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/components/binary/pump, /turf/open/floor/iron/white/side{ dir = 8 @@ -15185,23 +15292,20 @@ /area/station/hallway/primary/fore) "fpq" = ( /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/machinery/door/airlock{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 +/turf/open/floor/iron, +/area/station/maintenance/aft) +"fpw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible/layer2{ + dir = 4 }, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "fpB" = ( -/obj/structure/cable, /obj/machinery/door/airlock{ name = "Science Lab Maintenance" }, /obj/effect/mapping_helpers/airlock/access/all/science/research, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) "fpN" = ( @@ -15225,13 +15329,14 @@ "fpY" = ( /turf/closed/mineral/random/stationside, /area/station/ai_monitored/aisat/exterior) -"fqG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +"fqv" = ( /obj/structure/cable, -/turf/open/floor/iron/white/side, -/area/station/science/research) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/lower) "fqT" = ( /obj/machinery/computer/slot_machine{ pixel_y = 2 @@ -15322,22 +15427,11 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/supply) -"frZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research/glass{ - name = "Cubicle" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/research) "fsk" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/structure/chair{ - dir = 1; - pixel_y = -2 + dir = 1 }, /obj/machinery/duct, /turf/open/floor/iron, @@ -15368,31 +15462,16 @@ /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) "fst" = ( -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, -/obj/effect/mapping_helpers/broken_floor, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, +/obj/effect/mapping_helpers/broken_floor, /obj/structure/table, /obj/item/stack/sheet/iron/fifty, /obj/machinery/camera/autoname/directional/east, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, /turf/open/floor/iron, /area/station/medical/chemistry) -"fsL" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/science/xenobiology) -"fsT" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/circuit, -/area/station/tcommsat/server) "fsW" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -15470,11 +15549,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/engineering/main) -"ftX" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "fuj" = ( /obj/structure/table/glass, /obj/effect/turf_decal/siding/dark_red, @@ -15518,6 +15592,14 @@ /obj/structure/sign/warning/pods/directional/south, /turf/open/floor/iron, /area/station/security/brig/entrance) +"fuv" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/holopad, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/diagonal, +/area/station/ai_monitored/command/storage/eva) "fuD" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -15555,6 +15637,9 @@ }, /turf/open/misc/sandy_dirt, /area/station/commons/fitness/locker_room) +"fvm" = ( +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "fvs" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -15569,11 +15654,6 @@ }, /turf/open/floor/engine, /area/station/engineering/atmospherics_engine) -"fvz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/maintenance/starboard/greater) "fvF" = ( /obj/effect/turf_decal/siding/dark_red, /obj/machinery/modular_computer/preset/id{ @@ -15635,9 +15715,9 @@ /area/station/engineering/atmos) "fwF" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) "fwJ" = ( @@ -15649,9 +15729,6 @@ /turf/open/floor/circuit, /area/station/maintenance/port/aft) "fwU" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/research{ name = "Development Division Access" }, @@ -15661,6 +15738,9 @@ /obj/effect/mapping_helpers/airlock/access/all/science/general, /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/unres, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/textured_half{ dir = 1 }, @@ -15670,7 +15750,6 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "fwZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/station/hallway/secondary/entry) @@ -15716,6 +15795,13 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/wood/tile, /area/station/service/bar) +"fyh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/secondary/recreation) "fyo" = ( /obj/structure/table, /obj/machinery/light/small/directional/east, @@ -15851,6 +15937,18 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"fAf" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/turf_decal/siding/dark/corner{ + dir = 8 + }, +/turf/open/floor/iron/edge{ + dir = 4 + }, +/area/station/engineering/storage/tech) "fAn" = ( /obj/effect/spawner/structure/window, /obj/structure/disposalpipe/segment{ @@ -15896,12 +15994,12 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/central) "fAP" = ( -/obj/structure/cable, /obj/structure/disposalpipe/sorting/mail/flip{ dir = 8 }, /obj/effect/mapping_helpers/broken_floor, /obj/effect/mapping_helpers/mail_sorting/science/experimentor_lab, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "fAY" = ( @@ -15997,6 +16095,62 @@ }, /turf/open/floor/wood, /area/station/service/chapel/funeral) +"fCs" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/subspace/crystal{ + pixel_x = 4; + pixel_y = -1 + }, +/obj/item/stock_parts/subspace/crystal{ + pixel_x = 4; + pixel_y = -1 + }, +/obj/item/stock_parts/subspace/crystal{ + pixel_x = 4; + pixel_y = -1 + }, +/obj/item/stock_parts/subspace/treatment{ + pixel_x = -3; + pixel_y = 9 + }, +/obj/item/stock_parts/subspace/treatment{ + pixel_x = -3; + pixel_y = 9 + }, +/obj/item/stock_parts/subspace/treatment{ + pixel_x = -3; + pixel_y = 9 + }, +/obj/item/stock_parts/subspace/filter{ + pixel_x = -4; + pixel_y = -1 + }, +/obj/item/stock_parts/subspace/filter{ + pixel_x = -4; + pixel_y = -1 + }, +/obj/item/stock_parts/subspace/filter{ + pixel_x = -4; + pixel_y = -1 + }, +/obj/item/stock_parts/subspace/filter{ + pixel_x = -4; + pixel_y = -1 + }, +/obj/item/stock_parts/subspace/analyzer{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/stock_parts/subspace/analyzer{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/stock_parts/subspace/analyzer{ + pixel_x = 6; + pixel_y = 8 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "fCu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -16027,11 +16181,11 @@ /area/station/security/brig) "fDd" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) @@ -16079,17 +16233,6 @@ }, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) -"fDO" = ( -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, -/obj/machinery/door/airlock/command/glass{ - name = "Telecommunications Server Room" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "comms-entrance-south" - }, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/tcommsat/server) "fDQ" = ( /obj/machinery/flasher/directional/north, /turf/open/floor/iron/dark/smooth_large, @@ -16117,11 +16260,6 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) -"fDY" = ( -/obj/structure/cable, -/obj/structure/flora/bush/flowers_pp/style_random, -/turf/open/floor/grass, -/area/station/science/xenobiology) "fEd" = ( /obj/structure/chair{ dir = 1 @@ -16167,13 +16305,13 @@ /turf/open/floor/eighties, /area/station/hallway/primary/central/fore) "fEM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/research/glass{ name = "Cytology Lab" }, /obj/effect/mapping_helpers/airlock/access/all/science/research, /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/cytology) "fEU" = ( @@ -16203,6 +16341,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/service/chapel/funeral) +"fFC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "fFD" = ( /obj/effect/turf_decal/siding/blue, /obj/effect/landmark/start/paramedic, @@ -16283,12 +16427,6 @@ }, /turf/open/floor/plating/rust, /area/station/ai_monitored/turret_protected/aisat/maint) -"fGd" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/exit/departure_lounge) "fGf" = ( /obj/structure/cable, /obj/machinery/modular_computer/preset/engineering{ @@ -16356,6 +16494,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/small, /area/station/hallway/primary/central/aft) +"fGE" = ( +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "fGT" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -16389,6 +16533,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"fHk" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/tcommsat/server) "fHv" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -16449,6 +16600,13 @@ dir = 8 }, /area/station/cargo/storage) +"fId" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "fIe" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ dir = 6 @@ -16471,9 +16629,6 @@ dir = 8 }, /obj/machinery/light/floor, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/stone, /area/station/service/bar) "fIq" = ( @@ -16502,6 +16657,7 @@ dir = 9 }, /obj/item/kirbyplants/random, +/obj/structure/cable, /turf/open/floor/iron, /area/station/science/xenobiology) "fJn" = ( @@ -16567,6 +16723,12 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/greater) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/floor/iron/dark/small, +/area/station/tcommsat/server) "fJZ" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/tile/yellow{ @@ -16579,14 +16741,6 @@ dir = 1 }, /area/station/hallway/primary/aft) -"fKa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/dock) "fKc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -16594,8 +16748,8 @@ /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) "fKd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/science/ordnance/testlab) "fKl" = ( @@ -16623,13 +16777,9 @@ "fKx" = ( /obj/structure/transit_tube/horizontal, /obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/space/basic, /area/space/nearstation) -"fKy" = ( -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "fKN" = ( /obj/effect/landmark/event_spawn, /obj/machinery/computer/security/telescreen/test_chamber/directional/west, @@ -16662,15 +16812,15 @@ /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) "fLk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, /obj/effect/turf_decal/tile/green{ dir = 8 }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, /turf/open/floor/iron/white, /area/station/medical/virology) "fLn" = ( @@ -16842,6 +16992,15 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/small, /area/station/hallway/secondary/exit/departure_lounge) +"fNi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "fNu" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -16909,6 +17068,8 @@ /area/station/hallway/primary/port) "fNZ" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock{ name = "Maintenance" }, @@ -16919,8 +17080,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/central/lesser) "fOg" = ( @@ -16942,6 +17101,10 @@ }, /turf/open/floor/iron/dark/diagonal, /area/station/service/bar) +"fOw" = ( +/obj/machinery/computer/arcade/amputation, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "fOJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -16999,16 +17162,16 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/greater) "fPV" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/blue{ dir = 4 }, /obj/machinery/airalarm/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner{ dir = 1 }, @@ -17072,24 +17235,18 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) -"fRl" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/siding/purple{ - dir = 8 - }, +"fRe" = ( +/obj/effect/landmark/generic_maintenance_landmark, /obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/science/genetics) +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "fRq" = ( -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 4 + }, /obj/structure/rack, /obj/item/book/manual/wiki/chemistry{ pixel_x = -4; @@ -17133,8 +17290,8 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "fRV" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable, +/obj/structure/disposalpipe/segment, /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) @@ -17154,20 +17311,14 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/prison) -"fSg" = ( -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "fSx" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/mapping_helpers/broken_floor, /obj/structure/broken_flooring/singular/directional/east, /obj/structure/steam_vent, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "fSB" = ( @@ -17175,10 +17326,14 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/aft) +"fSC" = ( +/obj/effect/spawner/random/maintenance, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/department/science/xenobiology) "fSG" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/white/small, /area/station/medical/psychology) @@ -17265,7 +17420,6 @@ /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) "fUo" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -17276,6 +17430,7 @@ cycle_id = "sci-entrance" }, /obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "fUC" = ( @@ -17284,6 +17439,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"fUG" = ( +/obj/structure/cable, +/turf/open/floor/iron/grimy, +/area/station/science/cubicle) "fUI" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -17291,6 +17450,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) +"fUN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/construction) "fUO" = ( /obj/machinery/turretid{ control_area = "/area/station/ai_monitored/turret_protected/aisat_interior"; @@ -17398,9 +17563,6 @@ "fVM" = ( /obj/structure/extinguisher_cabinet/directional/west, /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "fVU" = ( @@ -17411,11 +17573,11 @@ /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) "fWi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wideplating/dark/corner{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "fWj" = ( @@ -17425,9 +17587,6 @@ /obj/effect/turf_decal/tile/brown/opposingcorners{ dir = 1 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, /turf/open/floor/iron, /area/station/cargo/office) "fWr" = ( @@ -17446,11 +17605,19 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/central) "fWT" = ( -/obj/machinery/vending/assist, -/obj/machinery/firealarm/directional/west, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) +/obj/machinery/button/door/directional/east{ + id = "AuxToilet2"; + name = "Lock Control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/structure/toilet, +/obj/machinery/light/small/directional/west, +/obj/effect/spawner/random/trash/soap{ + spawn_scatter_radius = 1 + }, +/turf/open/floor/iron/showroomfloor, +/area/station/maintenance/department/science/xenobiology) "fXg" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -17481,6 +17648,16 @@ }, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/foyer) +"fXs" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/engineering/storage/tech) "fXB" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -17562,15 +17739,6 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/grimy, /area/station/tcommsat/server) -"fZG" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white/small, -/area/station/science/ordnance/storage) "fZK" = ( /obj/structure/table/wood, /obj/machinery/computer/libraryconsole/bookmanagement{ @@ -17701,9 +17869,6 @@ /area/station/service/kitchen) "gby" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) "gbD" = ( @@ -17757,12 +17922,6 @@ "gcz" = ( /turf/closed/wall/r_wall, /area/station/maintenance/fore/lesser) -"gcF" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "gcL" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/crate_abandoned, @@ -17784,7 +17943,8 @@ /turf/closed/wall/rust, /area/station/maintenance/fore/lesser) "gdx" = ( -/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) "gdA" = ( @@ -17873,11 +18033,21 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/security/execution/education) -"geS" = ( +"geM" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, /obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/science/xenobiology) +"geS" = ( /obj/structure/disposalpipe/segment{ dir = 6 }, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, @@ -17913,13 +18083,13 @@ /turf/closed/wall/r_wall, /area/station/hallway/secondary/command) "gfu" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /obj/machinery/airalarm/directional/east, /obj/effect/mapping_helpers/airalarm/mixingchamber_access, /obj/effect/mapping_helpers/airalarm/link{ chamber_id = "ordnancefreezer" }, /obj/effect/mapping_helpers/airalarm/tlv_no_checks, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /turf/open/floor/iron/dark, /area/station/science/ordnance) "gfA" = ( @@ -17929,9 +18099,6 @@ }, /turf/open/floor/plating, /area/station/engineering/supermatter/room) -"gfB" = ( -/turf/open/floor/fake_snow, -/area/station/service/hydroponics) "gfJ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -17978,8 +18145,8 @@ /turf/open/floor/tram, /area/station/security/tram) "ggi" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -18009,15 +18176,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) -"ggD" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "ggJ" = ( /obj/machinery/light/no_nightlight/directional/east, /obj/structure/sign/poster/official/nanotrasen_logo/directional/east, @@ -18097,11 +18255,11 @@ /turf/open/floor/iron/dark/small, /area/station/medical/virology) "ghC" = ( -/obj/structure/cable, /obj/structure/chair/office/light{ dir = 8 }, /obj/effect/landmark/start/scientist, +/obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/cytology) "ghD" = ( @@ -18118,11 +18276,11 @@ /turf/open/floor/wood/tile, /area/station/command/heads_quarters/hop) "ghK" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 5 }, /obj/item/kirbyplants/random, +/obj/structure/cable, /turf/open/floor/iron, /area/station/science/lower) "ghL" = ( @@ -18192,19 +18350,22 @@ /obj/machinery/digital_clock/directional/south, /turf/open/floor/wood/tile, /area/station/command/bridge) +"giW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) "giY" = ( /obj/structure/window/spawner/directional/west, /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) "gjg" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/stripes/line{ - dir = 1 + dir = 9 }, -/turf/open/floor/iron/dark/corner, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron, /area/station/science/xenobiology) "gjn" = ( /obj/structure/disposalpipe/segment{ @@ -18219,14 +18380,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/smooth_large, /area/station/engineering/main) -"gjL" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 8 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/tcommsat/server) "gjS" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta{ dir = 1 @@ -18268,10 +18421,6 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/port/aft) -"gky" = ( -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/aft) "gkE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/flora/bush/flowers_pp/style_random, @@ -18396,6 +18545,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"gnp" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden, +/turf/open/floor/iron/grimy, +/area/station/tcommsat/server) "gnA" = ( /obj/structure/cable, /obj/machinery/light/small/directional/north, @@ -18486,12 +18643,17 @@ "gow" = ( /turf/open/floor/tram, /area/station/maintenance/department/medical/central) +"goz" = ( +/obj/structure/broken_flooring/singular/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/starboard/greater) "goA" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 6 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, @@ -18517,9 +18679,6 @@ /obj/machinery/incident_display/delam/directional/north, /obj/structure/closet/secure_closet/engineering_personal, /obj/item/clothing/suit/hooded/wintercoat/engineering, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/small, /area/station/engineering/break_room) "goT" = ( @@ -18579,15 +18738,6 @@ }, /turf/open/floor/iron, /area/station/commons/storage/tools) -"gpT" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 9 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white/small, -/area/station/science/ordnance/storage) "gpV" = ( /obj/structure/chair/stool/directional/north, /turf/open/floor/carpet/orange, @@ -18668,8 +18818,8 @@ /turf/open/floor/iron, /area/station/security) "gsh" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment, +/obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, @@ -18686,21 +18836,6 @@ /obj/effect/landmark/start/scientist, /turf/open/floor/iron/white/small, /area/station/science/lab) -"gsT" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, -/turf/open/floor/iron/dark, -/area/station/medical/chemistry) -"gsW" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 8 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/engineering/main) "gsY" = ( /turf/open/floor/iron/smooth, /area/station/engineering/break_room) @@ -18711,14 +18846,6 @@ }, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) -"gto" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/white/side{ - dir = 1 - }, -/area/station/science/research) "gtr" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/vending/cigarette, @@ -18741,12 +18868,12 @@ }, /area/station/hallway/secondary/recreation) "gtJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/bed/medical/emergency, /obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) "guh" = ( @@ -18876,6 +19003,7 @@ /turf/open/floor/iron/small, /area/station/engineering/atmos/storage/gas) "gwm" = ( +/obj/structure/cable, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 @@ -18886,7 +19014,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "gwx" = ( @@ -18966,8 +19093,8 @@ /obj/effect/turf_decal/siding/wood{ dir = 9 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/structure/filingcabinet/employment, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/wood/tile, /area/station/service/lawoffice) "gxo" = ( @@ -18980,11 +19107,11 @@ /turf/open/floor/iron, /area/station/engineering/atmos/project) "gxq" = ( +/obj/machinery/light/floor, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/machinery/light/floor, /turf/open/floor/iron/dark/small, /area/station/tcommsat/server) "gxs" = ( @@ -19065,9 +19192,9 @@ /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) "gye" = ( +/obj/structure/extinguisher_cabinet/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron/white/side{ dir = 4 }, @@ -19282,12 +19409,22 @@ /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/table/glass, /obj/machinery/recharger{ - pixel_x = 6; + pixel_x = 8; + pixel_y = 3 + }, +/obj/machinery/button/door{ + id = "aibridge"; + name = "AI Maintenance Space Bridge Control"; + req_access = list("command"); + pixel_x = -3; pixel_y = 7 }, -/obj/machinery/cell_charger{ - pixel_x = 1; - pixel_y = -1 +/obj/machinery/button/door{ + id = "bridge blast"; + name = "Bridge Access Blast Door Control"; + req_access = list("command"); + pixel_x = -3; + pixel_y = -3 }, /turf/open/floor/glass/reinforced, /area/station/command/bridge) @@ -19357,15 +19494,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"gCo" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, -/obj/machinery/door/airlock/command/glass{ - name = "Telecommunications Server Room" - }, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/tcommsat/server) "gCq" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_dark, @@ -19485,6 +19613,12 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"gDQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/dark/small, +/area/station/tcommsat/server) "gEa" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19555,12 +19689,6 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"gFc" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "gFg" = ( /obj/machinery/computer/cargo/request, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -19596,9 +19724,9 @@ /area/station/hallway/secondary/recreation) "gFs" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron/white/small, /area/station/medical/psychology) "gFu" = ( @@ -19673,12 +19801,12 @@ /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/captain/private) "gGx" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, /turf/open/floor/wood/tile, /area/station/service/bar) "gGy" = ( @@ -19704,9 +19832,6 @@ /area/station/security/prison) "gGK" = ( /obj/effect/landmark/start/roboticist, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 2 - }, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) "gGO" = ( @@ -19714,15 +19839,11 @@ /turf/open/floor/engine, /area/station/engineering/atmospherics_engine) "gGQ" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/siding/white{ - dir = 10 - }, -/turf/open/floor/iron/small, -/area/station/medical/morgue) +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/recreation) "gHe" = ( /obj/structure/rack, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -19731,6 +19852,7 @@ }, /obj/machinery/firealarm/directional/north, /obj/item/melee/chainofcommand, +/obj/item/binoculars, /turf/open/floor/iron/smooth, /area/station/command/bridge) "gHg" = ( @@ -19738,10 +19860,10 @@ /turf/open/floor/glass, /area/station/hallway/primary/central/aft) "gHl" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) "gHm" = ( @@ -19762,9 +19884,10 @@ /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) "gHT" = ( -/obj/structure/bodycontainer/morgue{ - dir = 2 +/obj/effect/turf_decal/trimline/neutral/warning{ + dir = 8 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark/small, /area/station/medical/morgue) "gHV" = ( @@ -19783,16 +19906,6 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"gIk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/green{ - dir = 8 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/iron/dark/small, -/area/station/medical/chemistry) "gIl" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/catwalk_floor/iron_smooth, @@ -19826,17 +19939,17 @@ /turf/open/floor/plating, /area/station/maintenance/port/fore) "gIv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /obj/machinery/camera/autoname/directional/east, /obj/item/radio/intercom/directional/east, /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wood/corner{ dir = 8 }, -/obj/structure/cable, /turf/open/floor/wood/tile, /area/station/service/bar) "gIx" = ( @@ -19863,8 +19976,6 @@ /turf/open/floor/plating, /area/station/maintenance/fore/lesser) "gIR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/mapping_helpers/airlock/access/all/science/rd, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command{ @@ -19874,6 +19985,8 @@ id = "rdoffice"; name = "Research Director's Shutters" }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/research) "gIS" = ( @@ -19909,6 +20022,13 @@ }, /turf/open/floor/plating, /area/station/cargo/sorting) +"gJj" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/broken_flooring/pile/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "gJo" = ( /turf/open/floor/iron/stairs{ dir = 8 @@ -19950,10 +20070,10 @@ /turf/open/floor/light/colour_cycle/dancefloor_b, /area/station/maintenance/starboard/central) "gJS" = ( +/obj/structure/window/reinforced/spawner/directional/east, /obj/machinery/atmospherics/pipe/smart/simple/general/visible, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/iron/white/side{ dir = 8 }, @@ -19985,12 +20105,12 @@ /turf/closed/wall/r_wall, /area/station/engineering/break_room) "gKQ" = ( -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, /turf/open/floor/iron/small, /area/station/service/barber) "gKT" = ( @@ -20098,12 +20218,10 @@ /turf/open/floor/plating, /area/station/command/gateway) "gMe" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/tcommsat/server) +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/wood/tile, +/area/station/command/meeting_room) "gMq" = ( /obj/machinery/vending/clothing, /obj/effect/turf_decal/siding/wideplating/dark{ @@ -20151,8 +20269,6 @@ /area/station/command/heads_quarters/rd) "gMR" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/research{ name = "Xenobiology Lab" }, @@ -20162,6 +20278,9 @@ id = "xeno_blastdoor"; name = "Biohazard Containment Door" }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/catwalk_floor/iron, /area/station/science/xenobiology) "gMV" = ( @@ -20227,14 +20346,22 @@ /area/station/hallway/primary/port) "gNX" = ( /obj/machinery/light/floor, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) +"gOh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "gOm" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/equipment) +"gOq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "gOt" = ( /obj/structure/flora/tree/jungle/small/style_2, /obj/effect/turf_decal/weather/dirt{ @@ -20266,6 +20393,12 @@ }, /turf/open/floor/iron, /area/station/science/xenobiology) +"gOR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "gOS" = ( /obj/machinery/rnd/production/techfab/department/cargo, /obj/effect/turf_decal/delivery/white, @@ -20329,10 +20462,6 @@ /obj/effect/turf_decal/delivery/white, /turf/open/floor/iron/dark/side, /area/station/cargo/sorting) -"gPR" = ( -/obj/structure/statue/snow/snowman, -/turf/open/floor/fake_snow, -/area/station/commons/dorms) "gPY" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/effect/turf_decal/stripes/white/line{ @@ -20392,19 +20521,12 @@ /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"gSi" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/holopad, -/turf/open/floor/wood/tile, -/area/station/command/meeting_room) "gSk" = ( -/obj/structure/cable, /obj/effect/turf_decal/sand/plating, /obj/machinery/power/floodlight, /obj/structure/alien/weeds, /obj/effect/gibspawner/human, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) "gSr" = ( @@ -20483,26 +20605,25 @@ /turf/open/floor/plating, /area/station/maintenance/port/fore) "gTH" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/siding/dark{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating_new/terracotta{ - dir = 8 - }, -/turf/open/floor/iron/dark/smooth_large, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark/textured, /area/station/command/meeting_room) "gTK" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green{ dir = 8 }, /obj/machinery/airalarm/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) "gTO" = ( @@ -20541,8 +20662,8 @@ /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) "gUe" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /turf/open/floor/iron/small, /area/station/hallway/primary/aft) @@ -20550,13 +20671,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/fake_snow, +/turf/open/floor/iron/white, /area/station/medical/treatment_center) "gUm" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/delivery, @@ -20565,9 +20683,10 @@ }, /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/any/command/general, -/turf/open/floor/iron/dark/textured_half{ +/obj/effect/turf_decal/siding/dark/corner{ dir = 1 }, +/turf/open/floor/iron/dark/textured_half, /area/station/command/bridge) "gUn" = ( /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ @@ -20639,6 +20758,11 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/wood/large, /area/station/command/corporate_suite) +"gWa" = ( +/obj/effect/turf_decal/siding, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/small, +/area/station/science/lab) "gWb" = ( /turf/closed/wall, /area/station/command/heads_quarters/hos) @@ -20665,11 +20789,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/processing) -"gWN" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "gXf" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/decal/cleanable/dirt, @@ -20742,18 +20861,16 @@ /turf/open/floor/iron/dark, /area/station/maintenance/starboard/greater) "gYK" = ( -/obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner{ +/obj/structure/sign/poster/official/random/directional/east, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/siding/dark{ dir = 8 }, -/turf/open/floor/iron, -/area/station/commons/fitness/locker_room) -"gZh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/floor/iron/dark/small, -/area/station/tcommsat/server) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/dark/textured, +/area/station/command/meeting_room) "gZi" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -20845,11 +20962,11 @@ /turf/open/floor/iron, /area/station/cargo/lobby) "haq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/white{ dir = 8 }, @@ -20874,10 +20991,10 @@ /turf/open/floor/iron/dark/small, /area/station/ai_monitored/security/armory) "hbk" = ( -/obj/structure/cable, /obj/effect/turf_decal/siding{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/cytology) "hbm" = ( @@ -20908,10 +21025,10 @@ /turf/open/floor/iron, /area/station/commons/storage/tools) "hbz" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable, -/obj/machinery/duct, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, /turf/open/floor/plating, /area/station/maintenance/central/lesser) "hbG" = ( @@ -20956,11 +21073,11 @@ /turf/open/floor/iron/white, /area/station/medical/virology) "hbY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/chair/plastic{ dir = 4 }, /obj/effect/landmark/start/hangover, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "hcb" = ( @@ -21045,6 +21162,15 @@ /obj/effect/mapping_helpers/requests_console/assistance, /turf/open/floor/iron/dark/small, /area/station/ai_monitored/security/armory) +"hcz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/engineering/storage/tech) "hcE" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta{ dir = 1 @@ -21056,12 +21182,12 @@ /turf/open/floor/wood/tile, /area/station/command/bridge) "hcQ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, /obj/effect/turf_decal/siding/wood{ dir = 1 }, @@ -21078,12 +21204,12 @@ /area/station/service/abandoned_gambling_den) "hcU" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/white{ dir = 4 }, /obj/machinery/airalarm/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) "hcY" = ( @@ -21098,15 +21224,24 @@ "hdd" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/table/glass, -/obj/item/folder/red, +/obj/item/folder/red{ + pixel_y = 7; + pixel_x = 7 + }, +/obj/machinery/cell_charger{ + pixel_x = -1; + pixel_y = -1 + }, /turf/open/floor/iron/smooth, /area/station/command/bridge) "hdg" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, /turf/open/floor/iron/smooth, /area/station/command/bridge) "hdo" = ( @@ -21145,6 +21280,9 @@ id = "bridge blast"; name = "Bridge Blast Door" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/command/bridge) "hdI" = ( @@ -21182,8 +21320,8 @@ /turf/open/floor/plating, /area/station/engineering/supermatter/room) "hdZ" = ( -/obj/effect/decal/cleanable/dirt, /obj/structure/cable, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/central/lesser) "hed" = ( @@ -21301,12 +21439,12 @@ /turf/open/misc/asteroid/airless, /area/space/nearstation) "hfI" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wood{ dir = 5 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood/tile, /area/station/tcommsat/server) "hgf" = ( @@ -21340,29 +21478,21 @@ /obj/effect/turf_decal/tile/brown/opposingcorners{ dir = 1 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron, /area/station/cargo/office) -"hgu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +"hgt" = ( +/obj/machinery/door/airlock/public{ + name = "Locker Room" + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/hallway/secondary/dock) +/turf/open/floor/iron/textured_half, +/area/station/commons/fitness/recreation) "hgv" = ( /obj/effect/turf_decal/delivery/white, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/light/small/directional/east, /turf/open/floor/iron/smooth, /area/station/engineering/main) -"hgy" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "hgF" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -21381,14 +21511,14 @@ /area/station/maintenance/central/greater) "hgP" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/construction) "hgY" = ( -/obj/structure/cable, /obj/structure/lattice/catwalk, /obj/machinery/power/tracker, +/obj/structure/cable, /turf/open/space/basic, /area/station/solars/starboard/fore) "hgZ" = ( @@ -21403,12 +21533,12 @@ /turf/open/floor/catwalk_floor/iron, /area/station/maintenance/department/medical/central) "hhg" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/security{ name = "Customs Checkpoint" }, /obj/effect/mapping_helpers/airlock/access/any/security/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/textured_half, /area/station/security/checkpoint/customs) "hhk" = ( @@ -21438,6 +21568,10 @@ /obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, /turf/open/floor/iron, /area/station/engineering/atmos) +"hhK" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "hhL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -21458,12 +21592,10 @@ /obj/machinery/holopad, /turf/open/floor/wood/large, /area/station/command/corporate_suite) -"hin" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) +"hio" = ( +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/science/robotics/mechbay) "hiq" = ( /obj/structure/closet{ name = "Evidence Closet 1" @@ -21516,8 +21648,8 @@ /turf/open/floor/iron, /area/station/construction/mining/aux_base) "hiV" = ( -/obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, /turf/open/floor/engine, /area/station/science/cytology) "hjk" = ( @@ -21539,9 +21671,8 @@ /turf/open/floor/plating, /area/station/command/gateway) "hjz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +/obj/effect/landmark/event_spawn, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/small, @@ -21559,18 +21690,8 @@ /obj/effect/turf_decal/tile/brown/opposingcorners{ dir = 1 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /turf/open/floor/iron, /area/station/cargo/office) -"hjP" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "hjQ" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ @@ -21619,14 +21740,11 @@ /turf/open/floor/plating, /area/station/command/gateway) "hkt" = ( -/obj/item/radio/intercom/directional/east, -/obj/effect/turf_decal/siding/white{ - dir = 4 - }, -/obj/structure/chair/office/tactical{ - dir = 1 +/obj/effect/turf_decal/siding/dark_blue{ + dir = 9 }, -/turf/open/floor/iron/small, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, /area/station/medical/morgue) "hky" = ( /obj/item/kirbyplants/organic/applebush, @@ -21665,6 +21783,25 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"hkH" = ( +/obj/machinery/door/window/left/directional/south, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/siding/dark, +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/clothing/shoes/magboots{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/clothing/shoes/magboots, +/obj/item/clothing/shoes/magboots{ + pixel_x = 4; + pixel_y = -3 + }, +/turf/open/floor/iron/dark/smooth_edge, +/area/station/ai_monitored/command/storage/eva) "hkL" = ( /obj/structure/cable, /turf/open/floor/wood/large, @@ -21678,9 +21815,6 @@ /obj/machinery/computer/rdconsole, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/cold/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/dark, /area/station/science/lab) "hkW" = ( @@ -21703,17 +21837,6 @@ }, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"hlJ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 4 - }, -/obj/machinery/door/airlock/research/glass{ - name = "Ordnance Storage" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/storage) "hlP" = ( /obj/structure/table/wood, /obj/effect/decal/cleanable/dirt, @@ -21754,9 +21877,9 @@ /turf/open/floor/iron/smooth, /area/station/maintenance/solars/port/aft) "hmn" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/hallway/primary/central/aft) "hmt" = ( @@ -21780,7 +21903,7 @@ "hmH" = ( /obj/effect/spawner/xmastree, /obj/structure/flora/tree/jungle/style_3, -/turf/open/floor/fake_snow, +/turf/open/floor/grass, /area/station/service/chapel) "hmK" = ( /obj/machinery/door/airlock/wood{ @@ -21869,32 +21992,34 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "hok" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor/iron, /area/station/science/lobby) "hon" = ( +/obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/components/trinary/mixer/flipped{ dir = 8 }, -/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/station/science/ordnance/storage) "hop" = ( /turf/closed/wall, /area/station/service/chapel/funeral) "hoG" = ( -/obj/structure/cable, /obj/effect/landmark/start/scientist, +/obj/structure/cable, /turf/open/floor/iron, /area/station/science/research) "hoN" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/hallway/secondary/dock) +/obj/effect/turf_decal/siding/dark/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/command/bridge) "hoQ" = ( /obj/structure/window/spawner/directional/east, /obj/structure/flora/bush/flowers_yw/style_random, @@ -21949,10 +22074,10 @@ /turf/open/floor/stone, /area/station/command/corporate_suite) "hqc" = ( -/obj/structure/cable, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron/white/side{ dir = 8 }, @@ -22000,26 +22125,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"hrz" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, -/obj/machinery/door/airlock/command/glass{ - name = "Telecommunications Server Room" - }, -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 1 - }, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/tcommsat/server) "hrC" = ( -/obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, /obj/effect/turf_decal/tile/dark_red/anticorner/contrasted{ dir = 4 }, /obj/structure/closet/secure_closet/security, +/obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) "hrE" = ( @@ -22087,7 +22199,6 @@ /turf/open/floor/iron/dark/diagonal, /area/station/service/bar) "hsC" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/decal/cleanable/dirt, /obj/machinery/computer/mecha{ @@ -22096,6 +22207,7 @@ /obj/effect/turf_decal/siding/purple{ dir = 10 }, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) "hsH" = ( @@ -22161,11 +22273,6 @@ }, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"hua" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "huh" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -22179,6 +22286,7 @@ /turf/open/floor/iron/smooth, /area/station/commons/storage/tools) "huj" = ( +/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 5 }, @@ -22186,7 +22294,6 @@ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "hur" = ( @@ -22269,51 +22376,43 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron, /area/station/security/tram) -"hvX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +"hwj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, /turf/open/floor/iron/dark/small, /area/station/tcommsat/server) -"hwh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/iron/white/small, -/area/station/science/ordnance/storage) "hwn" = ( -/obj/machinery/light_switch/directional/east, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, +/obj/machinery/light/small/directional/south, +/obj/structure/closet/emcloset, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) "hwo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/table/bronze, /obj/effect/turf_decal/siding/thinplating_new/terracotta{ - dir = 10 + dir = 4 }, -/turf/open/floor/iron/small, -/area/station/ai_monitored/command/storage/eva) -"hwp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating_new/terracotta, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/small, -/area/station/ai_monitored/command/storage/eva) +/obj/item/pizzabox/margherita{ + pixel_x = 4; + pixel_y = 24 + }, +/obj/item/storage/bag/tray{ + pixel_x = 1; + pixel_y = -1 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/meeting_room) "hwr" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) "hwx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating_new/terracotta, -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron/small, -/area/station/ai_monitored/command/storage/eva) +/obj/structure/table/glass, +/obj/item/radio/intercom/command, +/obj/item/paper/fluff/jobs/engineering/frequencies, +/turf/open/floor/carpet/executive, +/area/station/command/meeting_room) "hwz" = ( /obj/machinery/camera/directional/south{ c_tag = "Xenobiology - Cell 5"; @@ -22365,11 +22464,11 @@ /turf/open/floor/iron/smooth, /area/station/service/greenroom) "hxA" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) "hxQ" = ( @@ -22455,16 +22554,6 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/command/nuke_storage) -"hzj" = ( -/obj/structure/chair/wood{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/stone, -/area/station/service/bar) "hzp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/neutral/line, @@ -22508,6 +22597,18 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/mining, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/cargo/miningoffice) +"hAe" = ( +/obj/machinery/door/airlock/command{ + name = "Telecomms Server Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "comms-entrance-south" + }, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/tcommsat/server) "hAu" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -22772,15 +22873,9 @@ "hDz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"hDC" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating, -/area/station/ai_monitored/command/storage/eva) "hDN" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, @@ -22802,12 +22897,14 @@ /turf/open/floor/wood, /area/station/engineering/break_room) "hEm" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/turf_decal/stripes/line{ - dir = 5 +/obj/item/kirbyplants/organic/applebush, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/siding/dark{ + dir = 8 }, -/turf/open/floor/plating, -/area/station/ai_monitored/command/storage/eva) +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron/dark/textured, +/area/station/command/meeting_room) "hEu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -22824,13 +22921,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) -"hED" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth, -/area/station/hallway/secondary/command) "hEJ" = ( /turf/open/floor/iron/smooth, /area/station/service/library) @@ -22861,12 +22951,12 @@ /turf/open/floor/iron, /area/station/maintenance/department/engine/atmos) "hFp" = ( -/obj/structure/chair/sofa/bench/right{ - dir = 8 - }, -/obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/landmark/start/hangover, +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, /turf/open/floor/iron, /area/station/hallway/primary/fore) "hFx" = ( @@ -22885,11 +22975,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating/rust, /area/station/maintenance/fore/lesser) -"hFD" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/structure/statue/snow/snowman, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "hFG" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -22905,6 +22990,18 @@ "hGb" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance/storage) +"hGj" = ( +/obj/structure/broken_flooring/corner, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"hGk" = ( +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/machinery/door/airlock/grunge{ + name = "St. Brendan's" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/maintenance/starboard/greater) "hGn" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/rust, @@ -22930,16 +23027,13 @@ "hGA" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/landmark/start/cargo_technician, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron, /area/station/cargo/sorting) "hGE" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron/stairs, /area/station/medical/medbay/central) "hHf" = ( @@ -23015,6 +23109,14 @@ /obj/item/hemostat, /turf/open/floor/iron/white, /area/station/science/robotics/augments) +"hIF" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/tcommsat/server) "hJp" = ( /turf/closed/wall/r_wall/rust, /area/station/ai_monitored/turret_protected/ai) @@ -23030,33 +23132,34 @@ /turf/open/floor/iron, /area/station/security/prison/garden) "hJO" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/blue{ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner{ dir = 1 }, /area/station/hallway/secondary/dock) "hJP" = ( -/obj/structure/hedge, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ +/obj/structure/sign/departments/engineering/directional/north, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ dir = 4 }, -/obj/structure/sign/departments/engineering/directional/north, -/turf/open/floor/iron, /area/station/hallway/primary/fore) "hJR" = ( -/obj/structure/cable, /obj/structure/lattice/catwalk, /obj/item/stack/cable_coil, +/obj/structure/cable, /turf/open/space/basic, /area/station/solars/starboard/fore) "hJT" = ( @@ -23114,7 +23217,16 @@ /turf/open/floor/iron/dark/small, /area/station/security/detectives_office) "hKX" = ( -/turf/closed/mineral/random/stationside, +/obj/structure/chair/sofa/bench/left{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/iron, /area/station/hallway/primary/fore) "hKZ" = ( /obj/structure/flora/bush/jungle/a/style_random, @@ -23164,16 +23276,16 @@ /turf/open/floor/plating, /area/station/cargo/miningoffice) "hLU" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/public/glass{ name = "Docking Corridor" }, /obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/textured_half{ dir = 8 }, @@ -23192,6 +23304,10 @@ }, /turf/open/floor/plating, /area/station/security) +"hMa" = ( +/obj/effect/turf_decal/trimline/dark/filled/warning, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/department/science/xenobiology) "hMh" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/chair/stool/bamboo{ @@ -23202,6 +23318,14 @@ }, /turf/open/floor/wood/tile, /area/station/command/heads_quarters/hop) +"hMk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 1 + }, +/area/station/maintenance/starboard/greater) "hMr" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/closet/secure_closet/security/sec, @@ -23286,9 +23410,6 @@ }, /obj/item/storage/toolbox/mechanical, /obj/item/clothing/head/utility/welding, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron, /area/station/medical/chemistry) "hNP" = ( @@ -23314,6 +23435,7 @@ /turf/open/floor/wood/tile, /area/station/command/corporate_showroom) "hOl" = ( +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/stairs{ @@ -23323,6 +23445,10 @@ "hOp" = ( /turf/open/floor/iron/showroomfloor, /area/station/medical/virology) +"hOD" = ( +/obj/structure/cable, +/turf/closed/wall/r_wall, +/area/station/command/bridge) "hOF" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/chair/office{ @@ -23366,15 +23492,15 @@ /turf/open/floor/iron/white, /area/station/medical/virology) "hPl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=9.0-StarboardHall-ScienceFoyer"; location = "8.0-Pharmacy-StarboardHall" @@ -23386,6 +23512,13 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/engine, /area/station/engineering/gravity_generator) +"hPQ" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/showroomfloor, +/area/station/commons/toilet/auxiliary) "hPU" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -23406,10 +23539,10 @@ /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/solars/port/aft) "hQd" = ( +/obj/machinery/firealarm/directional/north, /obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ dir = 10 }, -/obj/machinery/firealarm/directional/north, /turf/open/floor/circuit, /area/station/tcommsat/server) "hQs" = ( @@ -23493,13 +23626,13 @@ "hRd" = ( /obj/structure/table/reinforced, /obj/item/binoculars, +/obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "hRA" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ - dir = 4 +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_ordmix{ + dir = 8 }, -/obj/machinery/atmospherics/components/binary/pump, /turf/open/floor/engine, /area/station/science/ordnance/burnchamber) "hRO" = ( @@ -23522,11 +23655,6 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) -"hSg" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron, -/area/station/hallway/secondary/recreation) "hSn" = ( /obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/brown/half/contrasted{ @@ -23612,9 +23740,6 @@ /area/station/security/execution/transfer) "hUq" = ( /obj/structure/table/glass, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) "hUC" = ( @@ -23628,14 +23753,15 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/dorms) -"hUH" = ( +"hUD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/corner, /turf/open/floor/iron/dark, -/area/station/science/xenobiology) +/area/station/science/ordnance) +"hUH" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "hUI" = ( /obj/structure/table, /obj/item/storage/belt/utility, @@ -23643,12 +23769,12 @@ /turf/open/floor/iron/smooth, /area/station/command/gateway) "hUO" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Lockers" - }, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/public/glass{ + name = "Lockers" + }, /turf/open/floor/iron/textured_half, /area/station/commons/fitness/locker_room) "hVb" = ( @@ -23658,9 +23784,9 @@ /turf/open/floor/plating, /area/station/security/prison/work) "hVh" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/effect/landmark/start/chief_medical_officer, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) @@ -23758,19 +23884,10 @@ /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/cmo) "hWE" = ( -/obj/machinery/button/door/directional/east{ - id = "AuxToilet2"; - name = "Lock Control"; - normaldoorcontrol = 1; - specialfunctions = 4 - }, -/obj/structure/toilet, -/obj/machinery/light/small/directional/west, -/obj/effect/spawner/random/trash/soap{ - spawn_scatter_radius = 1 - }, -/turf/open/floor/iron/showroomfloor, -/area/station/commons/toilet/auxiliary) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth_large, +/area/station/science/auxlab/firing_range) "hWJ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -23782,11 +23899,13 @@ /area/station/security) "hWL" = ( /obj/effect/turf_decal/weather/snow, -/obj/effect/turf_decal/weather/snow/corner, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, -/turf/open/floor/iron/freezer, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) "hWU" = ( /obj/machinery/door/airlock{ @@ -23815,9 +23934,9 @@ /area/station/commons/storage/tools) "hXl" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/effect/turf_decal/delivery/red, /turf/open/floor/iron/white/small, @@ -23901,8 +24020,8 @@ /area/station/engineering/atmos) "hYK" = ( /obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, /obj/structure/disposalpipe/segment, +/obj/structure/cable, /turf/open/floor/iron/dark/side{ dir = 8 }, @@ -23935,37 +24054,14 @@ /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) "hYW" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/junction/flip{ - dir = 2 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/fore) -"hYX" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table/bronze, -/obj/effect/turf_decal/siding/thinplating_new/terracotta{ - dir = 4 - }, -/obj/item/pizzabox/margherita{ - pixel_x = 4; - pixel_y = 24 - }, -/obj/item/storage/bag/tray{ - pixel_x = 1; - pixel_y = -1 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/meeting_room) +/obj/machinery/light_switch/directional/east, +/obj/structure/closet/firecloset, +/turf/open/floor/iron/showroomfloor, +/area/station/commons/toilet/auxiliary) "hZP" = ( -/obj/structure/cable, /obj/structure/sign/poster/official/random/directional/north, /obj/effect/landmark/start/hangover, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "hZT" = ( @@ -23990,18 +24086,6 @@ /obj/item/clothing/head/beret/sec/navyofficer, /turf/open/floor/plating, /area/station/security/tram) -"iap" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table/glass, -/obj/item/folder/blue{ - pixel_x = 4; - pixel_y = 2 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/carpet/executive, -/area/station/command/meeting_room) "iaw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -24021,20 +24105,11 @@ /turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) "iaH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/wood/tile, -/area/station/command/meeting_room) -"iaJ" = ( -/obj/structure/transit_tube/crossing/horizontal, -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/space/basic, -/area/space/nearstation) +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/dark/smooth_large, +/area/station/ai_monitored/command/storage/eva) "iaK" = ( /obj/structure/table/wood, /obj/item/reagent_containers/cup/glass/bottle/wine{ @@ -24054,6 +24129,13 @@ dir = 8 }, /area/station/maintenance/starboard/greater) +"iaV" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/wood/tile, +/area/station/command/meeting_room) "ibe" = ( /obj/effect/turf_decal/bot_white, /obj/structure/closet/crate/freezer, @@ -24142,21 +24224,21 @@ /turf/open/floor/engine, /area/station/engineering/supermatter/room) "icN" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, /obj/effect/turf_decal/trimline/neutral/line{ dir = 8 }, -/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "icT" = ( +/obj/machinery/firealarm/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/west, /turf/open/floor/iron/white/side{ dir = 4 }, @@ -24172,11 +24254,12 @@ /turf/open/floor/iron/dark, /area/station/medical/medbay/central) "idd" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/obj/structure/cable, +/obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/iron/dark, /area/station/science/xenobiology) "ide" = ( @@ -24259,10 +24342,6 @@ /turf/open/floor/sepia, /area/station/maintenance/aft) "idJ" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/bot, -/obj/machinery/computer/security/telescreen/entertainment/directional/north, /turf/open/floor/iron/dark/textured_corner{ dir = 8 }, @@ -24278,10 +24357,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/diagonal, /area/station/command/heads_quarters/hop) -"idS" = ( -/obj/structure/table/wood, -/turf/open/floor/fake_snow, -/area/station/service/bar) "idW" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/machinery/light/small/directional/south, @@ -24289,8 +24364,8 @@ /turf/open/floor/iron, /area/station/maintenance/department/medical/central) "ief" = ( -/obj/structure/cable, /obj/machinery/telecomms/message_server/preset, +/obj/structure/cable, /turf/open/floor/circuit, /area/station/tcommsat/server) "iek" = ( @@ -24330,6 +24405,23 @@ /obj/machinery/light/dim/directional/north, /turf/open/floor/iron/white, /area/station/science/cytology) +"ifi" = ( +/obj/structure/table/reinforced, +/obj/machinery/requests_console/auto_name/directional/east, +/obj/item/stack/cable_coil{ + pixel_y = 4 + }, +/obj/item/stack/cable_coil, +/obj/item/plant_analyzer{ + pixel_y = 2; + pixel_x = -3 + }, +/obj/item/healthanalyzer{ + pixel_y = 2; + pixel_x = 3 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "ifl" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -24416,6 +24508,16 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) +"igS" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/diagonal, +/area/station/ai_monitored/command/storage/eva) "ihb" = ( /obj/effect/spawner/random/trash, /turf/open/floor/plating, @@ -24492,31 +24594,24 @@ /turf/open/floor/eighties/red, /area/station/service/abandoned_gambling_den/gaming) "ihC" = ( -/obj/structure/bodycontainer/morgue{ - dir = 1 - }, +/obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/dark/small, /area/station/medical/morgue) +"ihJ" = ( +/obj/structure/rack, +/obj/item/aicard, +/obj/item/clothing/gloves/color/yellow, +/obj/item/ai_module/reset, +/obj/effect/turf_decal/siding/dark, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) "ihZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/prison/workout) -"iia" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/dock) -"iij" = ( -/obj/structure/hedge, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, -/turf/open/floor/iron/smooth, -/area/station/hallway/secondary/command) "iio" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/stripes/line{ @@ -24525,6 +24620,13 @@ /obj/effect/turf_decal/loading_area, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) +"iis" = ( +/obj/structure/broken_flooring/side/directional/north{ + color = "#73737a" + }, +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "iix" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, @@ -24551,9 +24653,6 @@ /obj/machinery/camera/directional/west{ c_tag = "Engineering Supermatter Port" }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) "iiI" = ( @@ -24583,34 +24682,22 @@ }, /turf/open/floor/iron/smooth, /area/station/cargo/miningfoundry) -"iiW" = ( -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/science/xenobiology) "iiX" = ( /obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"ijk" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "ijz" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) "ijB" = ( -/obj/machinery/atmospherics/components/trinary/mixer/flipped{ - dir = 8 - }, /obj/effect/turf_decal/stripes/line{ dir = 6 }, /obj/item/radio/intercom/directional/south, +/obj/machinery/atmospherics/components/trinary/mixer/flipped{ + dir = 8 + }, /turf/open/floor/plating, /area/station/science/ordnance/storage) "ijF" = ( @@ -24635,8 +24722,17 @@ /turf/open/floor/iron/textured_large, /area/station/hallway/primary/central/fore) "ijV" = ( -/turf/open/misc/asteroid, -/area/station/maintenance/department/engine) +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/engineering/storage/tech) "ijY" = ( /obj/structure/closet/secure_closet/chief_medical, /obj/item/storage/briefcase/secure{ @@ -24701,6 +24797,16 @@ }, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/captain/private) +"ikS" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood/tile, +/area/station/tcommsat/server) "ikU" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 10 @@ -24766,6 +24872,18 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/smooth_large, /area/station/engineering/storage_shared) +"ilB" = ( +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"ilC" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "ilD" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 8 @@ -24773,11 +24891,11 @@ /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) "ilE" = ( +/obj/structure/extinguisher_cabinet/directional/east, /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, -/obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) "ilT" = ( @@ -24808,13 +24926,13 @@ /turf/open/floor/iron, /area/station/security/tram) "imI" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/item/radio/intercom/directional/south, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "imO" = ( @@ -24850,9 +24968,9 @@ /turf/open/floor/iron, /area/station/cargo/miningoffice) "inU" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron/white/side, /area/station/hallway/primary/central/aft) "ioa" = ( @@ -24932,20 +25050,18 @@ /turf/open/floor/iron, /area/station/security/warden) "ipf" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/item/kirbyplants/organic/applebush, -/obj/effect/turf_decal/siding/thinplating_new/terracotta{ +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/siding/dark/corner{ dir = 8 }, -/turf/open/floor/iron/dark/smooth_large, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/textured, /area/station/command/meeting_room) "ipj" = ( -/obj/structure/cable, /obj/machinery/airalarm/directional/north, /obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, @@ -24967,9 +25083,6 @@ /area/station/cargo/miningoffice) "ips" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/stairs{ @@ -24986,7 +25099,6 @@ /turf/open/floor/plating, /area/station/maintenance/central/greater) "ipx" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/decal/cleanable/dirt, /obj/structure/table/glass, @@ -24995,24 +25107,22 @@ name = "Research Director's Fax Machine"; pixel_y = 9 }, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) -"ipD" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/smooth, -/area/station/command/bridge) "ipF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/airalarm/directional/south, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) +"ipM" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "ipN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, /obj/effect/turf_decal/stripes/line, @@ -25050,9 +25160,6 @@ /area/station/service/abandoned_gambling_den) "iqp" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/holopad, /turf/open/floor/iron/smooth, @@ -25077,9 +25184,6 @@ /turf/open/floor/iron/cafeteria, /area/station/science/circuits) "iqF" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/smooth, @@ -25102,10 +25206,10 @@ /turf/open/floor/iron/small, /area/station/security/tram) "irc" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 5 }, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "iri" = ( @@ -25164,12 +25268,6 @@ "isj" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/teleporter) -"isl" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "ist" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -25232,12 +25330,6 @@ dir = 1 }, /area/station/command/gateway) -"isR" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "itb" = ( /turf/closed/wall/r_wall/rust, /area/station/ai_monitored/turret_protected/aisat/maint) @@ -25250,9 +25342,6 @@ /turf/open/floor/carpet/red, /area/station/command/heads_quarters/qm) "itw" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -25362,6 +25451,12 @@ /obj/item/melee/baseball_bat, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) +"ive" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/hallway/primary/starboard) "ivh" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -25381,7 +25476,7 @@ /area/station/maintenance/hallway/abandoned_command) "ivl" = ( /obj/item/kirbyplants/organic/applebush, -/obj/machinery/firealarm/directional/north, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth, /area/station/hallway/primary/central/fore) "ivm" = ( @@ -25438,11 +25533,10 @@ /turf/open/floor/iron, /area/station/cargo/lobby) "ivY" = ( -/obj/structure/table/reinforced, -/obj/effect/spawner/random/techstorage/tcomms_all, -/obj/machinery/light/cold/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, -/area/station/engineering/storage/tech) +/area/station/hallway/secondary/entry) "iwt" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 8 @@ -25473,15 +25567,25 @@ /turf/open/floor/iron/small, /area/station/maintenance/solars/port/aft) "ixG" = ( -/obj/machinery/airalarm/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/steam_vent, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/maintenance, /turf/open/floor/iron, -/area/station/engineering/storage/tech) +/area/station/maintenance/department/science/xenobiology) +"ixH" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/effect/turf_decal/delivery/red, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/science/xenobiology) "ixM" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 10 }, /obj/machinery/airalarm/directional/east, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "ixT" = ( @@ -25535,22 +25639,22 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) "iyr" = ( +/obj/machinery/light/cold/directional/north, +/obj/machinery/newscaster/directional/north, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 8 }, -/obj/machinery/light/cold/directional/north, -/obj/machinery/newscaster/directional/north, /turf/open/floor/iron/dark/side{ dir = 9 }, /area/station/science/ordnance/testlab) "iyt" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding, /obj/structure/disposalpipe/segment{ dir = 5 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/small, /area/station/science/lab) "iyC" = ( @@ -25575,9 +25679,6 @@ /obj/machinery/light/cold/dim/directional/north, /obj/structure/closet/secure_closet/engineering_personal, /obj/item/clothing/suit/hooded/wintercoat/engineering, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/small, /area/station/engineering/break_room) "izh" = ( @@ -25592,11 +25693,11 @@ /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) "izo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/grunge{ name = "Vacant Comissary" }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/textured_half{ dir = 1 }, @@ -25611,10 +25712,10 @@ /area/station/maintenance/central/greater) "izA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/starboard) "izD" = ( @@ -25777,10 +25878,6 @@ /obj/structure/cable, /turf/open/floor/stone, /area/station/service/bar/backroom) -"iBu" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/smooth, -/area/station/hallway/secondary/command) "iBE" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/cable, @@ -25790,10 +25887,10 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/central) "iCb" = ( @@ -25889,19 +25986,22 @@ }, /area/station/engineering/main) "iCJ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock/command{ name = "Research Division Server Room" }, /obj/effect/mapping_helpers/airlock/access/all/science/rd, /obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/server) "iDk" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood/tile, /area/station/command/meeting_room) "iDm" = ( @@ -26020,16 +26120,16 @@ /turf/open/floor/wood/large, /area/station/command/corporate_suite) "iFb" = ( -/obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) "iFm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/side{ dir = 1 }, @@ -26128,6 +26228,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"iGu" = ( +/obj/structure/rack, +/obj/effect/spawner/random/techstorage/ai_all, +/obj/effect/turf_decal/siding/dark{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) "iGA" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -26237,14 +26345,6 @@ /obj/effect/turf_decal/siding/wideplating, /turf/open/floor/wood, /area/station/engineering/atmos/office) -"iHM" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white/side{ - dir = 1 - }, -/area/station/science/lower) "iHT" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -26282,14 +26382,10 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "iIw" = ( -/obj/structure/cable, /obj/item/wrench, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/lab) -"iIz" = ( -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "iIA" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/blue{ @@ -26328,12 +26424,12 @@ /turf/open/floor/iron/small, /area/station/engineering/break_room) "iIN" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding/wood{ dir = 8 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/grimy, /area/station/tcommsat/server) "iIR" = ( @@ -26373,7 +26469,6 @@ /turf/open/floor/iron/textured_half, /area/station/commons/dorms) "iJb" = ( -/obj/structure/cable, /obj/structure/table/glass, /obj/machinery/reagentgrinder{ pixel_x = -5; @@ -26387,6 +26482,7 @@ pixel_x = 12; pixel_y = 8 }, +/obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/cytology) "iJc" = ( @@ -26472,10 +26568,10 @@ /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) "iJL" = ( +/obj/structure/sign/warning/no_smoking/circle/directional/north, /obj/machinery/atmospherics/components/unary/thermomachine/freezer{ dir = 4 }, -/obj/structure/sign/warning/no_smoking/circle/directional/north, /turf/open/floor/iron/dark, /area/station/science/ordnance) "iJS" = ( @@ -26539,6 +26635,7 @@ /turf/open/floor/iron/smooth, /area/station/service/library) "iLp" = ( +/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -26547,7 +26644,6 @@ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/starboard) "iLA" = ( @@ -26593,6 +26689,15 @@ /obj/effect/mapping_helpers/airlock/access/any/command/hop, /turf/open/floor/plating, /area/station/maintenance/department/bridge) +"iLO" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/stairs, +/area/station/maintenance/department/science/xenobiology) "iLR" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -26637,23 +26742,29 @@ /obj/machinery/flasher/portable, /turf/open/floor/plating, /area/station/security/tram) +"iMG" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/recreation) "iMI" = ( -/obj/structure/cable, /obj/structure/sign/warning/no_smoking/circle/directional/north, +/obj/machinery/portable_atmospherics/canister, +/obj/structure/cable, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 8 }, -/obj/machinery/portable_atmospherics/canister, /turf/open/floor/iron/white/corner{ dir = 8 }, /area/station/science/xenobiology) "iMS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -26681,13 +26792,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"iNA" = ( -/obj/machinery/light/cold/directional/east, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "iNC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, @@ -26721,10 +26825,10 @@ /turf/open/floor/tram, /area/station/security/tram) "iNS" = ( -/obj/structure/chair{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, -/obj/machinery/airalarm/directional/south, +/obj/structure/urinal/directional/south, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) "iNV" = ( @@ -26754,9 +26858,9 @@ /area/station/command/heads_quarters/captain) "iOm" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/all/medical/psychology, /obj/machinery/door/airlock/medical{ @@ -26765,12 +26869,12 @@ /turf/open/floor/iron/dark/small, /area/station/medical/psychology) "iOq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ name = "Recreation" }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) "iOs" = ( @@ -26782,12 +26886,12 @@ /turf/open/floor/stone, /area/station/command/heads_quarters/captain/private) "iOv" = ( -/obj/structure/cable, /obj/machinery/door/airlock{ name = "Maintenance" }, /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, /obj/effect/mapping_helpers/airlock/unres, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) "iOx" = ( @@ -26803,7 +26907,6 @@ /turf/open/floor/stone, /area/station/command/heads_quarters/captain/private) "iOF" = ( -/obj/structure/cable, /obj/structure/table/glass, /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -26818,15 +26921,16 @@ pixel_x = 6; pixel_y = 5 }, +/obj/structure/cable, /turf/open/floor/iron/grimy, /area/station/tcommsat/server) "iOL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral/half/contrasted, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/side, /area/station/science/xenobiology) "iOM" = ( @@ -26871,16 +26975,17 @@ /area/station/engineering/supermatter/room) "iPy" = ( /obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/security/prison/garden) "iPF" = ( -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, -/area/station/hallway/primary/aft) +/area/station/maintenance/starboard/central) "iPJ" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 9 @@ -26978,10 +27083,10 @@ /turf/open/floor/iron/dark/small, /area/station/service/chapel/storage) "iQV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/turf_decal/siding/wideplating/dark{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) "iRk" = ( @@ -27023,11 +27128,11 @@ /obj/item/food/meat/slab/monkey, /obj/item/food/meat/slab/monkey, /obj/item/food/meat/slab/monkey, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/freezer, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) "iSb" = ( /obj/structure/frame/computer{ @@ -27043,12 +27148,12 @@ /turf/open/floor/iron/dark/small, /area/station/hallway/secondary/dock) "iSh" = ( -/obj/machinery/atmospherics/components/tank{ - dir = 1 - }, /obj/effect/turf_decal/stripes/end{ dir = 8 }, +/obj/machinery/atmospherics/components/tank{ + dir = 1 + }, /turf/open/floor/plating, /area/station/science/ordnance/storage) "iSi" = ( @@ -27098,21 +27203,21 @@ /area/station/ai_monitored/command/nuke_storage) "iTy" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 6 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) "iTB" = ( -/obj/structure/cable, /obj/structure/window/reinforced/spawner/directional/south, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/structure/cable, /turf/open/floor/iron/dark/side{ dir = 1 }, @@ -27166,12 +27271,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"iUp" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/turf/open/floor/circuit, -/area/station/tcommsat/server) "iUA" = ( /obj/machinery/conveyor{ id = "mining" @@ -27208,9 +27307,6 @@ /obj/effect/turf_decal/bot, /obj/machinery/airalarm/directional/north, /obj/machinery/disposal/bin/tagger, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, /turf/open/floor/iron, /area/station/cargo/storage) "iUT" = ( @@ -27220,12 +27316,6 @@ /obj/machinery/duct, /turf/open/floor/iron/showroomfloor, /area/station/commons/dorms) -"iVk" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "iVq" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 10 @@ -27255,9 +27345,9 @@ /turf/open/floor/plating, /area/station/maintenance/port/aft) "iVE" = ( -/obj/structure/cable, /obj/machinery/telecomms/hub/preset, /obj/machinery/camera/autoname/directional/west, +/obj/structure/cable, /turf/open/floor/circuit, /area/station/tcommsat/server) "iVI" = ( @@ -27305,12 +27395,12 @@ /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) "iVT" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/broken_flooring/pile/directional/east, /obj/item/flashlight, +/obj/structure/cable, /turf/open/floor/plating, /area/station/hallway/secondary/dock) "iVY" = ( @@ -27324,21 +27414,17 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/port/aft) -"iWc" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"iWd" = ( -/turf/open/floor/fake_snow, -/area/station/engineering/supermatter/room) "iWe" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, /area/station/security/prison/garden) +"iWf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/greater) "iWj" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -27388,12 +27474,6 @@ }, /turf/open/floor/iron, /area/station/security) -"iWI" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/transit_tube/horizontal, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "iWQ" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/effect/landmark/start/chemist, @@ -27506,6 +27586,27 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/command/teleporter) +"iYo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/white/side, +/area/station/science/research) +"iYr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 1; + id = "aibridge" + }, +/obj/effect/spawner/random/structure/grille, +/turf/open/floor/plating, +/area/station/maintenance/department/engine) "iYu" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/photocopier, @@ -27533,6 +27634,11 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/security/processing) +"iZl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/cytology) "iZs" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 4 @@ -27651,6 +27757,7 @@ location = "18.0-ToolStorage-Engineering" }, /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/fore) "iZM" = ( @@ -27689,45 +27796,34 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/port) -"jaa" = ( -/turf/open/floor/fake_snow, -/area/station/security/prison/workout) "jab" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"jat" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ - dir = 4 - }, -/turf/open/floor/circuit, -/area/station/tcommsat/server) "jax" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes/line{ +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/junction/flip, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/side{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, /area/station/hallway/primary/fore) -"jaD" = ( -/obj/effect/turf_decal/siding/thinplating_new/terracotta{ - dir = 1 - }, -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron/small, -/area/station/ai_monitored/command/storage/eva) "jaK" = ( -/obj/effect/turf_decal/siding/thinplating_new/terracotta{ - dir = 1 +/obj/structure/table/glass, +/obj/item/folder/blue{ + pixel_x = 4; + pixel_y = 2 }, -/obj/machinery/holopad, -/obj/machinery/light/small/directional/north, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/iron/small, -/area/station/ai_monitored/command/storage/eva) +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet/executive, +/area/station/command/meeting_room) "jaL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -27746,12 +27842,12 @@ /turf/open/floor/catwalk_floor/iron_dark, /area/station/security/processing) "jbd" = ( -/obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ id = "rdoffice"; name = "Research Director's Shutters" }, +/obj/structure/cable, /turf/open/floor/plating, /area/station/command/heads_quarters/rd) "jbp" = ( @@ -27814,7 +27910,6 @@ /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) "jcm" = ( -/obj/structure/cable, /obj/effect/turf_decal/sand/plating, /obj/structure/closet/crate/large, /obj/effect/spawner/random/entertainment/plushie, @@ -27823,6 +27918,7 @@ /obj/effect/spawner/random/entertainment/plushie, /obj/effect/spawner/random/entertainment/plushie, /obj/structure/alien/weeds, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) "jct" = ( @@ -27844,14 +27940,14 @@ /turf/open/floor/plating, /area/station/service/chapel/funeral) "jcB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /obj/machinery/door/airlock/wood{ name = "Bar Backroom" }, /obj/effect/mapping_helpers/airlock/access/all/service/bar, /obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, /turf/open/floor/iron/dark/textured_half{ dir = 1 }, @@ -27886,13 +27982,6 @@ /obj/effect/landmark/start/captain, /turf/open/floor/iron/freezer, /area/station/command/heads_quarters/captain/private) -"jdu" = ( -/obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "jdx" = ( /obj/structure/table/wood, /turf/open/floor/carpet, @@ -27921,7 +28010,7 @@ /turf/closed/wall, /area/station/service/kitchen) "jdJ" = ( -/obj/structure/statue/snow/snowman, +/obj/effect/turf_decal/siding/dark/corner, /turf/open/floor/iron/dark/textured_half{ dir = 1 }, @@ -27951,13 +28040,6 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/dark/small, /area/station/service/chapel/storage) -"jeC" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "jeF" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -27986,6 +28068,15 @@ /obj/structure/sign/departments/medbay/alt/directional/west, /turf/open/floor/plating, /area/station/medical/medbay/lobby) +"jfj" = ( +/obj/machinery/door/airlock{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/science/maintenance, +/obj/effect/mapping_helpers/airlock/unres, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "jfs" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 @@ -28039,11 +28130,11 @@ /turf/open/floor/iron/white/small, /area/station/service/hydroponics) "jgb" = ( +/obj/structure/cable, /obj/effect/turf_decal/tile/red/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 8 }, -/obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/service/greenroom) "jgj" = ( @@ -28115,12 +28206,12 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "jhY" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/dock) @@ -28133,13 +28224,18 @@ /turf/open/floor/iron/textured_half, /area/station/hallway/primary/aft) "jie" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 9 }, /obj/structure/broken_flooring/singular/directional/east, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"jif" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/construction) "jig" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 9 @@ -28189,10 +28285,6 @@ }, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) -"jiR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "jiT" = ( /obj/structure/cable, /turf/open/floor/iron/white/corner{ @@ -28200,10 +28292,10 @@ }, /area/station/science/lower) "jiY" = ( +/obj/machinery/computer/security/telescreen/entertainment/directional/west, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, -/obj/machinery/computer/security/telescreen/entertainment/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "jje" = ( @@ -28233,7 +28325,6 @@ /obj/structure/bed/dogbed/renault, /mob/living/basic/pet/fox/renault, /obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/captain/private) "jjO" = ( @@ -28243,14 +28334,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/medical/chemistry) -"jkz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/white/side{ - dir = 8 - }, -/area/station/science/lobby) "jkC" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/machinery/light/warm/directional/east, @@ -28261,22 +28344,15 @@ /area/station/commons/fitness/recreation/entertainment) "jkE" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"jkH" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "jkT" = ( /obj/structure/table/wood, /obj/machinery/fax/auto_name, @@ -28340,9 +28416,6 @@ /obj/item/lighter, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/newscaster/directional/west, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, /turf/open/floor/wood, /area/station/command/heads_quarters/ce) "jlN" = ( @@ -28375,13 +28448,6 @@ /obj/structure/flora/bush/flowers_pp/style_2, /turf/open/floor/grass, /area/station/service/chapel) -"jlZ" = ( -/obj/effect/turf_decal/tile/dark_red/half/contrasted{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/customs) "jmd" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt, @@ -28431,9 +28497,9 @@ /turf/open/floor/plating, /area/station/maintenance/port/lesser) "jmW" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) "jmX" = ( @@ -28461,15 +28527,15 @@ /turf/open/floor/catwalk_floor, /area/station/engineering/break_room) "jnh" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/siding/dark{ + dir = 8 + }, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating_new/terracotta/end{ - dir = 4 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/small, -/area/station/ai_monitored/command/storage/eva) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/textured, +/area/station/command/meeting_room) "jnk" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green{ @@ -28605,11 +28671,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"jpE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth_large, -/area/station/science/auxlab/firing_range) +"jpF" = ( +/obj/machinery/button/door/directional/west{ + id = "aibridge"; + name = "AI Maintenance Space Bridge Control"; + req_access = list("command") + }, +/turf/open/floor/plating, +/area/station/ai_monitored/turret_protected/aisat/maint) "jpM" = ( /obj/structure/closet{ name = "Evidence Closet 3" @@ -28617,7 +28686,6 @@ /turf/open/floor/iron/smooth, /area/station/security/evidence) "jpW" = ( -/obj/structure/cable, /obj/structure/table/wood, /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -28628,6 +28696,7 @@ pixel_x = 1; pixel_y = 5 }, +/obj/structure/cable, /turf/open/floor/wood/tile, /area/station/service/lawoffice) "jqd" = ( @@ -28651,6 +28720,11 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) +"jqJ" = ( +/obj/structure/closet/emcloset, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "jqK" = ( /obj/effect/turf_decal/tile/green/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -28670,6 +28744,16 @@ }, /turf/open/floor/iron, /area/station/security/prison/rec) +"jrg" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/item/storage/fancy/cigarettes/cigars{ + pixel_y = 4 + }, +/turf/open/floor/wood/large, +/area/station/maintenance/department/science/xenobiology) "jrk" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -28747,11 +28831,14 @@ /turf/open/floor/iron, /area/station/security/tram) "jrU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/dark/hidden{ - dir = 1 +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating_new/terracotta{ + dir = 8 }, -/turf/open/floor/circuit, -/area/station/tcommsat/server) +/turf/open/floor/wood/tile, +/area/station/command/corporate_showroom) "jsa" = ( /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/white/side{ @@ -28794,9 +28881,6 @@ "jsN" = ( /obj/structure/hedge, /obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /turf/open/floor/plating, /area/station/command/heads_quarters/hop) "jsS" = ( @@ -28835,13 +28919,14 @@ /area/station/command/heads_quarters/hop) "jtB" = ( /obj/effect/turf_decal/stripes/white/corner, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/dark/corner, /area/station/cargo/storage) "jtD" = ( -/obj/structure/closet/emcloset, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/light/small/directional/south, +/obj/machinery/newscaster/directional/south, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) "jtG" = ( @@ -28861,13 +28946,25 @@ "jtY" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes/corner{ +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/dark/side{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/status_display/ai/directional/east, -/turf/open/floor/iron, /area/station/hallway/primary/fore) +"juf" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/machinery/door/airlock/command/glass{ + name = "Telecommunications Server Room" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "comms-entrance-north" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/tcommsat/server) "juo" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/decal/cleanable/dirt, @@ -28881,11 +28978,11 @@ /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/hop) "juU" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /obj/effect/decal/cleanable/dirt, /obj/machinery/light_switch/directional/west, /obj/effect/landmark/event_spawn, /obj/machinery/portable_atmospherics/pump/lil_pump, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /turf/open/floor/iron/dark, /area/station/science/ordnance) "jvd" = ( @@ -28926,22 +29023,22 @@ /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) "jvP" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/effect/turf_decal/siding/white{ dir = 8 }, /obj/effect/landmark/generic_maintenance_landmark, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/construction) "jvQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/chair/plastic{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "jvR" = ( @@ -28965,10 +29062,10 @@ /turf/open/floor/iron/small, /area/station/command/teleporter) "jwf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/chair{ pixel_y = -2 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "jwh" = ( @@ -29017,19 +29114,18 @@ /turf/open/floor/tram, /area/station/security/tram) "jxk" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wood{ dir = 9 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood/tile, /area/station/science/lower) "jxp" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/foyer) "jxC" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, @@ -29177,6 +29273,10 @@ }, /turf/open/floor/tram, /area/station/maintenance/port/aft) +"jzj" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "jzo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -29207,12 +29307,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"jAb" = ( -/obj/structure/cable, -/turf/open/floor/iron/stairs{ - dir = 1 - }, -/area/station/engineering/storage/tech) "jAf" = ( /obj/structure/mirror/directional/east, /obj/structure/chair/stool/bar/directional/east, @@ -29220,9 +29314,14 @@ /turf/open/floor/iron/showroomfloor, /area/station/service/barber) "jAp" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/white/diagonal, -/area/station/maintenance/department/science/xenobiology) +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side, +/area/station/science/xenobiology) "jAq" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -29271,6 +29370,9 @@ /turf/open/floor/iron/dark/small, /area/station/ai_monitored/security/armory) "jBu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock{ name = "Maintenance" }, @@ -29278,9 +29380,6 @@ /obj/effect/mapping_helpers/airlock/unres{ dir = 8 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/greater) "jBA" = ( @@ -29344,6 +29443,13 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"jCE" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/large, +/area/station/maintenance/department/science/xenobiology) "jCH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -29396,19 +29502,11 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark, /area/station/command/corporate_dock) -"jDS" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "jDT" = ( -/obj/machinery/light/floor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, +/obj/machinery/light/floor, /obj/effect/turf_decal/siding/wood/corner{ dir = 4 }, @@ -29429,6 +29527,12 @@ /obj/structure/sign/warning/no_smoking/circle/directional/north, /turf/open/floor/iron, /area/station/science/lobby) +"jEp" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/delivery, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/iron/dark/smooth_large, +/area/station/ai_monitored/command/storage/eva) "jEu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/item/kirbyplants/random, @@ -29617,12 +29721,12 @@ }, /area/station/cargo/storage) "jGK" = ( -/obj/structure/chair/wood{ - dir = 1 - }, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/wood{ + dir = 1 + }, /turf/open/floor/iron/small, /area/station/service/barber) "jGL" = ( @@ -29630,11 +29734,11 @@ dir = 5 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/cold_temp/directional/north, +/obj/machinery/light/small/directional/north, /obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ dir = 8 }, -/obj/structure/sign/warning/cold_temp/directional/north, -/obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/science/xenobiology) "jGN" = ( @@ -29651,9 +29755,9 @@ /turf/open/floor/wood/tile, /area/station/command/corporate_showroom) "jGT" = ( +/obj/machinery/status_display/evac/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron, /area/station/commons/dorms) "jGW" = ( @@ -29697,11 +29801,6 @@ /obj/machinery/incident_display/tram/directional/north, /turf/open/floor/iron, /area/station/security/tram) -"jHx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold/dark/hidden, -/turf/open/floor/circuit, -/area/station/tcommsat/server) "jHB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -29757,27 +29856,20 @@ /turf/open/floor/iron, /area/station/science/lobby) "jIc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock{ - name = "Auxiliary Bathrooms" + name = "Maintenance" }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half, -/area/station/commons/toilet/auxiliary) +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "jId" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, -/obj/effect/landmark/event_spawn, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) -"jIj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "jIl" = ( /obj/effect/turf_decal/siding/red{ dir = 10 @@ -29785,9 +29877,9 @@ /turf/open/floor/iron/small, /area/station/security/brig) "jIm" = ( -/obj/structure/cable, /obj/structure/window/spawner/directional/north, /obj/structure/window/spawner/directional/south, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) "jIn" = ( @@ -29887,6 +29979,10 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"jKb" = ( +/obj/effect/spawner/random/trash/hobo_squat, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "jKg" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -29907,15 +30003,22 @@ /turf/open/floor/iron/smooth, /area/station/cargo/warehouse) "jKq" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/line{ dir = 5 }, /obj/machinery/light/small/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/science/xenobiology) +"jKC" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/starboard/central) "jKJ" = ( /obj/machinery/door/window/right/directional/north, /turf/open/floor/iron, @@ -29926,8 +30029,13 @@ pixel_x = 2; pixel_y = 8 }, +/obj/machinery/light/small/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"jKT" = ( +/obj/structure/cable, +/turf/open/floor/iron/grimy, +/area/station/commons/vacant_room/office) "jKU" = ( /turf/closed/wall, /area/station/engineering/atmos/storage/gas) @@ -29937,18 +30045,10 @@ }, /turf/open/floor/iron, /area/station/commons/storage/tools) -"jLl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/maintenance/starboard/greater) "jLt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/iron/white, -/area/station/science/cytology) +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) "jLv" = ( /obj/effect/turf_decal/bot{ dir = 1 @@ -29963,13 +30063,6 @@ }, /turf/open/floor/iron, /area/station/security/prison) -"jLF" = ( -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 4; - name = "killroom vent" - }, -/turf/open/floor/circuit/telecomms/mainframe, -/area/station/science/xenobiology) "jLI" = ( /turf/open/floor/iron/half{ dir = 8 @@ -30000,8 +30093,8 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/central) "jMa" = ( -/obj/structure/cable, /obj/machinery/telecomms/server/presets/security, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 6 }, @@ -30013,16 +30106,9 @@ }, /turf/open/floor/engine/o2, /area/station/engineering/atmos) -"jMC" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/station/science/xenobiology) "jML" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, @@ -30148,7 +30234,9 @@ "jOF" = ( /obj/item/kirbyplants/random, /obj/machinery/light_switch/directional/west, -/obj/machinery/airalarm/directional/north, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/construction/mining/aux_base) "jOM" = ( @@ -30158,6 +30246,12 @@ /obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"jOO" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/turf/open/floor/grass, +/area/station/medical/morgue) "jOS" = ( /obj/machinery/vending/cigarette, /obj/machinery/light/small/directional/south, @@ -30200,11 +30294,18 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"jPy" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/white/small, +/area/station/science/cubicle) "jPM" = ( -/obj/structure/rack, -/obj/effect/spawner/random/techstorage/security_all, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "jQf" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -30213,11 +30314,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/security/execution/transfer) -"jQj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/maintenance/starboard/greater) "jQv" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -30276,6 +30372,18 @@ }, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"jRo" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/fore) "jRs" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron, @@ -30360,13 +30468,13 @@ /turf/open/floor/wood, /area/station/maintenance/starboard/greater) "jSp" = ( +/obj/structure/cable, /obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line, /obj/effect/turf_decal/stripes/red/line{ dir = 1 }, -/obj/structure/cable, /turf/open/floor/iron/small, /area/station/hallway/primary/central/fore) "jSw" = ( @@ -30394,8 +30502,8 @@ /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) "jSR" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "jSS" = ( @@ -30408,14 +30516,18 @@ /turf/open/floor/plating, /area/station/command/corporate_showroom) "jSU" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/construction) +"jSX" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "jTf" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -30448,14 +30560,20 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"jTu" = ( -/obj/structure/cable, +"jTp" = ( +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/grimy, +/area/station/commons/vacant_room/office) +"jTu" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green{ dir = 9 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) "jTA" = ( @@ -30466,8 +30584,8 @@ "jTC" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/camera/autoname/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) "jTD" = ( @@ -30477,11 +30595,11 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "jTU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, @@ -30501,9 +30619,9 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "jUc" = ( -/obj/structure/cable, /obj/machinery/firealarm/directional/east, /obj/machinery/light/small/directional/east, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "jUl" = ( @@ -30527,9 +30645,6 @@ /obj/structure/table, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/item/instrument/harmonica, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /turf/open/floor/iron, /area/station/security/prison/rec) "jUr" = ( @@ -30580,6 +30695,7 @@ /turf/open/floor/plating, /area/station/maintenance/port/aft) "jVJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/table, /obj/item/bikehorn/rubberducky{ color = "#a61a11"; @@ -30595,19 +30711,11 @@ pixel_x = -8; pixel_y = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "jVM" = ( /turf/closed/wall, /area/station/maintenance/central/greater) -"jVQ" = ( -/obj/effect/spawner/random/trash, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/maintenance/port/aft) "jVY" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -30618,9 +30726,6 @@ /obj/machinery/power/apc/auto_name/directional/north, /obj/machinery/firealarm/directional/east, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/security/prison/garden) "jWe" = ( @@ -30668,8 +30773,8 @@ "jWz" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/light_switch/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) "jWA" = ( @@ -30713,38 +30818,24 @@ /obj/effect/mapping_helpers/airlock/access/any/security/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"jXr" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, -/obj/machinery/door/airlock/command/glass{ - name = "Telecommunications Server Room" - }, -/obj/machinery/atmospherics/pipe/heat_exchanging/junction, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "comms-entrance-north" - }, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/tcommsat/server) "jXA" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ name = "Telecomms Storage" }, /obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/navigate_destination, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/textured_half, /area/station/engineering/storage/tcomms) "jXB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock/public/glass{ name = "Lockers" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/textured_half{ dir = 8 }, @@ -30834,12 +30925,25 @@ /obj/machinery/door/firedoor, /turf/open/floor/plating, /area/station/service/bar) +"jYP" = ( +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 10 + }, +/obj/machinery/vending/wardrobe/coroner_wardrobe, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "jYQ" = ( -/obj/effect/turf_decal/weather/snow/corner{ +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/dark/corner{ dir = 4 }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/command/bridge) "jYU" = ( /obj/machinery/door/poddoor/shutters/preopen{ id = "hopqueue"; @@ -30863,6 +30967,13 @@ /obj/effect/mapping_helpers/airlock/access/all/command/teleporter, /turf/open/floor/iron/dark/textured_half, /area/station/command/teleporter) +"jZa" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tcomms) "jZl" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmospherics_engine) @@ -30878,17 +30989,14 @@ /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) "jZL" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/research/glass{ name = "Ordnance Storage" }, /obj/effect/mapping_helpers/airlock/access/all/science/ordnance, /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) "kam" = ( @@ -30903,12 +31011,6 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/plating, /area/station/service/janitor) -"kat" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "kau" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/table/reinforced, @@ -31011,9 +31113,6 @@ /turf/open/floor/iron/smooth, /area/station/engineering/main) "kci" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/maintenance_hatch{ name = "Construction Hatch" }, @@ -31021,6 +31120,9 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/construction) "kcA" = ( @@ -31031,12 +31133,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) -"kcQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 1 - }, -/turf/open/floor/iron/white/small, -/area/station/science/ordnance/storage) "kcW" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/smes/full, @@ -31051,9 +31147,12 @@ /turf/open/floor/wood/parquet, /area/station/service/library) "kdn" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/bot_white, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "kdv" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange, /obj/structure/lattice, @@ -31074,16 +31173,27 @@ /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/iron/white/side{ dir = 9 }, /area/station/science/lower) "kea" = ( +/obj/machinery/light_switch/directional/west, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light_switch/directional/west, /turf/open/floor/iron/white/small, /area/station/science/server) +"kej" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) "kel" = ( /obj/machinery/light/cold/directional/south, /obj/machinery/modular_computer/preset/id{ @@ -31144,12 +31254,16 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"kfI" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/lower) "kfM" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/machinery/airalarm/directional/east, /obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "kfW" = ( @@ -31173,10 +31287,15 @@ /turf/open/floor/iron/dark/herringbone, /area/station/security/execution/education) "kgk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/engineering/storage/tech) "kgn" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/tile/yellow{ @@ -31235,13 +31354,13 @@ /turf/open/floor/tram, /area/station/security/tram) "kho" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=6.3-Arrivals"; location = "6.2-Arrivals" }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "khp" = ( @@ -31276,12 +31395,12 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "khG" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/construction) "khQ" = ( @@ -31335,10 +31454,10 @@ /turf/open/floor/wood, /area/station/maintenance/hallway/abandoned_recreation) "kit" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 10 }, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "kiB" = ( @@ -31385,11 +31504,6 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/equipment) -"kiR" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron, -/area/station/construction/mining/aux_base) "kiW" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -31445,25 +31559,26 @@ /area/station/engineering/supermatter/room) "kjw" = ( /obj/effect/turf_decal/tile/blue, +/obj/structure/sign/directions/lavaland/directional/south, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, -/obj/structure/sign/directions/lavaland/directional/south, /turf/open/floor/iron/white/corner{ dir = 8 }, /area/station/hallway/secondary/dock) "kjx" = ( /obj/effect/turf_decal/weather/snow, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, /obj/structure/disposalpipe/segment{ dir = 5 }, /obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, -/turf/open/floor/iron/freezer, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) "kjO" = ( /obj/machinery/portable_atmospherics/canister/air, @@ -31583,8 +31698,8 @@ /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) "klf" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "klg" = ( @@ -31601,17 +31716,12 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "klF" = ( -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/station/science/xenobiology) +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/recreation) "klG" = ( /obj/machinery/suit_storage_unit/engine, /obj/effect/turf_decal/bot{ @@ -31649,12 +31759,12 @@ /turf/open/floor/tram, /area/station/maintenance/department/medical/central) "kmd" = ( -/obj/structure/cable, /obj/machinery/door/airlock/external{ name = "Solar Maintenance" }, /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/cable, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/solars/starboard/fore) "kmg" = ( @@ -31699,17 +31809,19 @@ /turf/open/floor/plating, /area/station/cargo/storage) "kms" = ( +/obj/machinery/firealarm/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "kmC" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/light_switch/directional/south, +/obj/structure/rack, +/obj/effect/spawner/random/techstorage/service_all, +/obj/effect/turf_decal/tile/green/opposingcorners, +/obj/effect/turf_decal/bot, +/obj/structure/sign/poster/official/random/directional/south, /turf/open/floor/iron/dark, -/area/station/command/corporate_dock) +/area/station/engineering/storage/tech) "kmD" = ( /obj/structure/chair/office/light{ color = "#6495ED"; @@ -31795,11 +31907,11 @@ /turf/open/floor/iron, /area/station/maintenance/port/aft) "knO" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, /obj/machinery/airalarm/directional/east, -/obj/structure/cable, /obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) "knR" = ( @@ -31815,16 +31927,14 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/dark/small, /area/station/medical/virology) -"kop" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/holopad, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) +"knY" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/science/xenobiology) "kov" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "koz" = ( @@ -31862,6 +31972,16 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/dark/diagonal, /area/station/service/bar) +"kpO" = ( +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/multitool, +/obj/item/clothing/glasses/meson, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "kpU" = ( /obj/effect/turf_decal/tile/blue/anticorner/contrasted, /turf/open/floor/iron/white, @@ -31874,8 +31994,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, /turf/open/floor/iron/white/side, /area/station/science/research) "kql" = ( @@ -31923,25 +32043,19 @@ /obj/item/mop, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"kqN" = ( -/obj/machinery/light/cold/directional/west, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "kqO" = ( +/obj/effect/mapping_helpers/airlock/access/all/medical/coroner, +/obj/machinery/door/airlock/medical/glass, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating_new/corner{ - dir = 1 +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/siding/dark_blue{ + dir = 4 }, -/obj/machinery/holopad, -/obj/effect/turf_decal/siding/thinplating_new/corner{ +/obj/effect/turf_decal/siding/dark_blue{ dir = 8 }, -/obj/structure/cable, -/turf/open/floor/iron/small, +/turf/open/floor/iron/dark, /area/station/medical/morgue) "kqU" = ( /obj/effect/decal/cleanable/dirt, @@ -31986,10 +32100,34 @@ /obj/item/kirbyplants/random/fullysynthetic, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) +"krv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/alien/weeds, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/maintenance/starboard/greater) "krz" = ( /obj/structure/cable, /turf/open/floor/iron/stairs, /area/station/maintenance/department/science/xenobiology) +"krB" = ( +/obj/machinery/door/airlock/command/glass{ + name = "E.V.A. Storage" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/command/eva, +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/iron/smooth_half{ + dir = 1 + }, +/area/station/ai_monitored/command/storage/eva) "krF" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -32141,19 +32279,15 @@ /turf/open/floor/wood, /area/station/engineering/atmos/pumproom) "ktl" = ( -/obj/structure/cable, -/obj/structure/table/reinforced, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/assembly/flash/handheld, -/obj/item/ai_module/reset{ - pixel_y = 14 +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side, +/area/station/science/xenobiology) "ktB" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -32244,11 +32378,12 @@ }, /obj/machinery/airalarm/directional/north, /obj/structure/chair, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /turf/open/floor/iron, /area/station/commons/storage/tools) +"kuY" = ( +/obj/structure/broken_flooring/side/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "kvl" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -32305,12 +32440,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/security/execution/transfer) -"kwu" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/maintenance/starboard/greater) "kwy" = ( /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, @@ -32322,16 +32451,28 @@ /turf/open/floor/plating, /area/station/maintenance/port/greater) "kwA" = ( +/obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, -/obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/science/robotics/augments) +"kwB" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "kwW" = ( /obj/machinery/light/small/directional/west, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) +"kwX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/research) "kwY" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, @@ -32390,16 +32531,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/small, /area/station/cargo/lobby) -"kxE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/research/glass{ - name = "Genetics" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/genetics, -/obj/machinery/door/firedoor, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/research) "kxF" = ( /obj/effect/spawner/random/maintenance, /obj/effect/decal/cleanable/dirt, @@ -32464,14 +32595,14 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "kzs" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/security/glass{ name = "Security Office" }, /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_white, /area/station/security/checkpoint/science) "kzv" = ( @@ -32635,9 +32766,9 @@ /turf/open/floor/iron, /area/station/hallway/primary/port) "kCI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) @@ -32730,6 +32861,20 @@ /obj/structure/chair/stool/directional/north, /turf/open/floor/carpet/purple, /area/station/commons/dorms) +"kDB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 1; + id = "aibridge" + }, +/obj/effect/spawner/random/structure/grille, +/turf/open/floor/plating, +/area/station/maintenance/department/engine) +"kDR" = ( +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/department/science/xenobiology) "kEd" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -32761,12 +32906,14 @@ }, /area/station/cargo/storage) "kEx" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/obj/machinery/light/small/dim/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/engineering/storage/tech) "kEA" = ( /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/stripes/line{ @@ -32807,13 +32954,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"kFA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/secondary/recreation) "kFD" = ( /obj/structure/disposalpipe/segment, /obj/machinery/autolathe, @@ -32830,6 +32970,15 @@ /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, /turf/open/floor/engine/n2o, /area/station/engineering/atmos) +"kFV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/white/side, +/area/station/science/research) "kFY" = ( /turf/closed/wall/r_wall, /area/station/medical/morgue) @@ -32915,11 +33064,12 @@ /turf/open/floor/iron/smooth, /area/station/command/bridge) "kHo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/obj/structure/table/reinforced, +/obj/machinery/firealarm/directional/east, +/obj/item/storage/box/bodybags, +/obj/item/clothing/mask/gas/plaguedoctor, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) "kHp" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -32931,6 +33081,11 @@ /obj/effect/turf_decal/siding/wideplating/corner, /turf/open/floor/wood, /area/station/engineering/atmos/office) +"kHJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science/ordnance/testlab) "kHL" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -32962,6 +33117,21 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"kHY" = ( +/obj/effect/turf_decal/trimline/dark/line{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/machinery/reagentgrinder{ + pixel_x = 3; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/rag{ + pixel_y = 4; + pixel_x = -6 + }, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/department/science/xenobiology) "kIj" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -33069,10 +33239,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"kJW" = ( -/obj/structure/cable, -/turf/open/floor/iron/stairs, -/area/station/engineering/storage/tech) "kKa" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, @@ -33100,6 +33266,12 @@ }, /turf/open/floor/wood/parquet, /area/station/service/library) +"kKN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "kKT" = ( /obj/machinery/computer/camera_advanced/xenobio{ dir = 4 @@ -33180,11 +33352,15 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"kML" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/secondary/dock) "kMW" = ( +/obj/machinery/holopad, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/holopad, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) "kMY" = ( @@ -33214,15 +33390,17 @@ /area/station/cargo/bitrunning/den) "kNf" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/blue/warning, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"kNk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/grimy, +/area/station/commons/vacant_room/office) "kNn" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -33254,11 +33432,11 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "kNJ" = ( -/obj/structure/cable, /obj/machinery/power/solar_control{ id = "forestarboard"; name = "Starboard Bow Solar Control" }, +/obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) "kNK" = ( @@ -33272,17 +33450,18 @@ /area/station/commons/dorms) "kNZ" = ( /obj/structure/cable, -/obj/machinery/light/small/directional/north, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/iron, -/area/station/construction/mining/aux_base) +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/science/cytology) "kOh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/research{ name = "Mech Bay" }, /obj/effect/mapping_helpers/airlock/access/all/science/robotics, /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/robotics/mechbay) "kOm" = ( @@ -33299,7 +33478,6 @@ /turf/open/floor/iron, /area/station/cargo/miningfoundry) "kOG" = ( -/obj/structure/cable, /obj/machinery/door/airlock/external{ name = "Solar Maintenance" }, @@ -33307,6 +33485,7 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, +/obj/structure/cable, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/solars/starboard/fore) "kOH" = ( @@ -33322,12 +33501,12 @@ /turf/open/floor/iron, /area/station/security/execution/transfer) "kOT" = ( -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 8 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 8 + }, /turf/open/floor/iron/white, /area/station/medical/paramedic) "kOV" = ( @@ -33422,9 +33601,6 @@ /obj/effect/turf_decal/stripes/corner{ dir = 8 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/cargo/storage) "kQk" = ( @@ -33439,12 +33615,9 @@ /area/station/maintenance/starboard/aft) "kQM" = ( /obj/machinery/holopad, -/turf/open/floor/fake_snow, +/turf/open/floor/iron, /area/station/cargo/storage) "kRb" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, /turf/open/floor/iron, /area/station/cargo/sorting) "kRi" = ( @@ -33511,8 +33684,8 @@ /turf/open/floor/iron/dark, /area/station/engineering/lobby) "kSd" = ( -/obj/structure/cable, /obj/machinery/firealarm/directional/north, +/obj/structure/cable, /turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/turret_protected/ai_upload) "kSj" = ( @@ -33522,18 +33695,10 @@ /turf/open/floor/plating, /area/station/maintenance/department/electrical) "kSv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 4 - }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/area/station/maintenance/starboard/central) "kSA" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -33599,16 +33764,9 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/hallway/secondary/command) -"kTM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/iron/dark/herringbone, -/area/station/security/courtroom) "kTX" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line{ @@ -33620,10 +33778,6 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/hallway/primary/central/fore) -"kUa" = ( -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "kUf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -33632,11 +33786,12 @@ /turf/open/floor/wood, /area/station/service/chapel/funeral) "kUF" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/side{ + dir = 4 }, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/area/station/science/research) "kUL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -33647,6 +33802,21 @@ "kUN" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos/pumproom) +"kUR" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/science/lab) +"kUW" = ( +/obj/machinery/door/airlock{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/greater) "kVb" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -33696,11 +33866,11 @@ /turf/open/floor/iron/small, /area/station/security/office) "kWF" = ( -/obj/effect/turf_decal/siding/wood/corner, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, +/obj/effect/turf_decal/siding/wood/corner, +/obj/machinery/power/apc/auto_name/directional/north, /obj/effect/turf_decal/siding/wood{ dir = 1 }, @@ -33714,6 +33884,16 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/port) +"kWN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/white/side, +/area/station/science/research) "kWR" = ( /obj/machinery/door/airlock/public/glass{ name = "Docking Corridor" @@ -33760,10 +33940,10 @@ /turf/open/floor/plating, /area/station/maintenance/department/medical/central) "kXQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) "kXS" = ( @@ -33810,8 +33990,6 @@ /turf/open/floor/iron/dark/small, /area/station/security/execution/education) "kYY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -33823,6 +34001,8 @@ name = "emergency shower"; pixel_y = -11 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/science/cytology) "kZh" = ( @@ -34019,12 +34199,12 @@ /area/station/hallway/secondary/exit/departure_lounge) "lcw" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/landmark/navigate_destination/chemfactory, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) @@ -34103,11 +34283,11 @@ /turf/open/floor/iron/textured_half, /area/station/security/brig) "lee" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/structure/chair/office{ dir = 8 }, +/obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) "lei" = ( @@ -34130,12 +34310,6 @@ dir = 8 }, /area/station/hallway/primary/starboard) -"les" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, -/turf/open/misc/dirt/station, -/area/station/service/chapel) "ley" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -34192,6 +34366,15 @@ }, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) +"leW" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/machinery/door/airlock/command/glass{ + name = "Telecommunications Server Room" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/tcommsat/server) "lfa" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, @@ -34341,16 +34524,16 @@ /turf/open/floor/iron/small, /area/station/maintenance/department/electrical) "lgw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral/half/contrasted, -/obj/effect/turf_decal/stripes/corner{ +/obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/item/radio/intercom/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/side, /area/station/science/xenobiology) "lgx" = ( -/obj/structure/disposalpipe/junction/flip, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -34358,6 +34541,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron/white/corner{ dir = 1 }, @@ -34406,10 +34590,10 @@ /turf/open/floor/iron, /area/station/maintenance/starboard/greater) "lhm" = ( -/obj/structure/cable, /obj/structure/disposalpipe/junction/flip{ dir = 8 }, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side, @@ -34424,18 +34608,6 @@ /obj/machinery/suit_storage_unit/ce, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) -"lht" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, -/turf/open/floor/iron/white, -/area/station/hallway/primary/starboard) "lhv" = ( /obj/structure/cable, /obj/machinery/power/solar{ @@ -34517,9 +34689,6 @@ dir = 4 }, /obj/machinery/incident_display/tram/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) "liJ" = ( @@ -34527,14 +34696,20 @@ /turf/open/floor/iron/dark/small, /area/station/service/chapel/storage) "liL" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/machinery/door/airlock/command/glass{ + name = "Telecommunications Server Room" + }, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/east, -/turf/open/floor/iron/showroomfloor, -/area/station/commons/toilet/auxiliary) +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/tcommsat/server) "liP" = ( -/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/trimline/neutral/warning{ + dir = 6 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/small, /area/station/medical/morgue) "liQ" = ( @@ -34576,14 +34751,14 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "ljg" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /obj/effect/turf_decal/weather/snow, /obj/machinery/light/small/directional/north, /obj/machinery/icecream_vat, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/freezer, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) "lji" = ( /obj/structure/flora/tree/jungle/style_2, @@ -34592,6 +34767,13 @@ }, /turf/open/floor/grass, /area/station/service/chapel) +"ljj" = ( +/obj/machinery/light/cold/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "ljl" = ( /obj/structure/lattice, /obj/structure/railing/corner{ @@ -34617,9 +34799,9 @@ }, /area/station/cargo/storage) "ljw" = ( +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/holopad, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "ljz" = ( @@ -34657,8 +34839,8 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/command/meeting_room) "ljP" = ( -/obj/structure/disposalpipe/trunk, /obj/structure/cable, +/obj/structure/disposalpipe/trunk, /obj/machinery/firealarm/directional/west, /obj/machinery/disposal/bin, /obj/effect/turf_decal/bot, @@ -34705,20 +34887,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/security/prison/workout) -"lkd" = ( -/obj/structure/cable, -/obj/structure/alien/weeds, -/turf/open/misc/asteroid, -/area/station/maintenance/starboard/greater) -"lko" = ( -/obj/machinery/door/airlock{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/greater) "lku" = ( /obj/structure/table, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -34727,11 +34895,15 @@ pixel_y = 7 }, /obj/item/pen, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron, /area/station/security/prison/rec) +"lkv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ + dir = 9 + }, +/turf/open/floor/circuit, +/area/station/tcommsat/server) "lkJ" = ( /obj/structure/flora/rock/pile/jungle/style_4, /turf/open/floor/grass, @@ -34746,9 +34918,6 @@ pixel_x = -2; pixel_y = 3 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron, /area/station/cargo/sorting) "lkM" = ( @@ -34777,22 +34946,20 @@ "lkV" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance) +"llr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/fore) "llC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 9 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"llH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron/dark/small, -/area/station/tcommsat/server) "llP" = ( /obj/structure/cable, /obj/structure/bed/medical{ @@ -34817,23 +34984,18 @@ /turf/closed/wall, /area/station/ai_monitored/security/armory) "llY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/siding/wideplating_new/terracotta{ dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood/tile, /area/station/maintenance/central/lesser) "lmb" = ( -/obj/structure/cable, -/obj/machinery/door/airlock{ - name = "Xenobiology Maintenance" - }, -/obj/structure/barricade/wooden, -/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/recreation) "lmm" = ( /mob/living/basic/frog, /obj/effect/turf_decal/weather/dirt{ @@ -34865,14 +35027,6 @@ "lmJ" = ( /turf/open/floor/iron, /area/station/engineering/atmos/project) -"lmK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, -/turf/open/floor/iron/dark/herringbone, -/area/station/security/courtroom) "lmZ" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -35000,15 +35154,15 @@ /turf/open/floor/iron/dark, /area/station/security/processing) "lom" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/floor, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ dir = 9 }, -/obj/machinery/light/floor, /turf/open/floor/iron/dark, /area/station/tcommsat/server) "lon" = ( @@ -35024,7 +35178,6 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/structure/cable, /obj/structure/disposalpipe/segment, -/obj/machinery/light/small/dim/directional/west, /turf/open/floor/iron, /area/station/maintenance/department/engine/atmos) "lox" = ( @@ -35048,6 +35201,13 @@ /obj/machinery/light/no_nightlight/directional/south, /turf/open/floor/iron/small, /area/station/engineering/atmos/office) +"lpt" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/science/cytology) "lpC" = ( /turf/open/floor/plating, /area/station/service/chapel/funeral) @@ -35172,8 +35332,8 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "lrh" = ( -/obj/structure/cable, /obj/effect/spawner/random/trash, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/aft) "lrE" = ( @@ -35206,11 +35366,11 @@ /turf/open/floor/engine, /area/station/engineering/supermatter/room) "lsh" = ( +/obj/structure/cable, /obj/effect/turf_decal/siding/wideplating/dark{ dir = 1 }, /obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/small, /area/station/service/barber) @@ -35280,13 +35440,11 @@ /turf/open/floor/iron/white/small, /area/station/service/hydroponics) "ltE" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/stairs{ - dir = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 }, -/area/station/engineering/storage/tech) +/turf/open/floor/iron, +/area/station/science/robotics/lab) "ltP" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/turf_decal/siding/wood{ @@ -35343,13 +35501,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/construction) -"lup" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tcomms) "lut" = ( /obj/structure/table/wood/fancy/red, /obj/structure/sign/painting/large/library{ @@ -35380,10 +35531,12 @@ /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) "lve" = ( -/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark/side, /area/station/science/xenobiology) "lvk" = ( @@ -35397,13 +35550,13 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, +/obj/structure/cable, /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, /obj/effect/turf_decal/trimline/neutral/line{ dir = 8 }, -/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/aft) "lvy" = ( @@ -35465,12 +35618,12 @@ /area/station/security/execution/education) "lwk" = ( /obj/structure/cable, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 8 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "lwn" = ( @@ -35489,12 +35642,6 @@ dir = 1 }, /area/station/security/execution/transfer) -"lwu" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 5 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "lwI" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/computer/security/mining{ @@ -35524,11 +35671,9 @@ /turf/open/floor/iron, /area/station/hallway/secondary/dock) "lxa" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/obj/structure/bodycontainer/morgue, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) "lxh" = ( /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/engine, @@ -35553,6 +35698,11 @@ dir = 1 }, /area/station/commons/fitness/locker_room) +"lxC" = ( +/obj/effect/spawner/random/structure/grille, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "lxE" = ( /obj/effect/spawner/random/structure/closet_empty/crate, /turf/open/floor/plating, @@ -35571,6 +35721,12 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"lxY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/grille, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "lxZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/red{ @@ -35631,6 +35787,11 @@ }, /turf/open/floor/iron/dark, /area/station/security/prison/safe) +"lzf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "lzg" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/airalarm/directional/north, @@ -35682,11 +35843,18 @@ /area/station/security/tram) "lzT" = ( /obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, /obj/machinery/door/airlock/command{ - name = "Council Chambers" + name = "E.V.A. Storage" }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/command/general, +/obj/effect/mapping_helpers/airlock/access/any/command/eva, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast Door" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/textured_half{ dir = 1 }, @@ -35854,15 +36022,8 @@ /turf/open/floor/plating, /area/station/maintenance/aft) "lCS" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance{ - name = "Coroner Office Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/all/medical/coroner, -/turf/open/floor/plating, +/obj/structure/closet/crate/grave/fresh, +/turf/open/misc/dirt/station, /area/station/medical/morgue) "lCT" = ( /obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ @@ -35871,9 +36032,6 @@ /turf/open/floor/engine/co2, /area/station/engineering/atmos) "lDc" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/command{ name = "Telecomms Server Room" }, @@ -35882,6 +36040,9 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "comms-entrance-south" }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_dark, /area/station/tcommsat/server) "lDo" = ( @@ -35901,12 +36062,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"lDr" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer2{ - dir = 9 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "lDw" = ( /turf/open/floor/iron, /area/station/science/ordnance/testlab) @@ -35924,19 +36079,14 @@ /obj/item/toy/crayon/spraycan/roboticist, /turf/open/floor/iron, /area/station/science/robotics/lab) +"lDJ" = ( +/obj/structure/flora/bush/jungle, +/obj/structure/marker_beacon/yellow, +/turf/open/floor/grass, +/area/station/medical/morgue) "lEa" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron/half, /area/station/hallway/primary/central/fore) -"lEg" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/broken_flooring/pile/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "lEs" = ( /obj/structure/extinguisher_cabinet/directional/east, /obj/effect/turf_decal/tile/neutral/opposingcorners{ @@ -36035,6 +36185,10 @@ }, /turf/open/misc/sandy_dirt, /area/station/hallway/primary/central/fore) +"lGp" = ( +/obj/effect/spawner/random/structure/grille, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "lGr" = ( /obj/effect/turf_decal/siding/brown{ dir = 6 @@ -36055,27 +36209,24 @@ /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain/private) "lGL" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 10 }, +/obj/machinery/light/cold/directional/north, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/cold/directional/north, /turf/open/floor/iron, /area/station/science/lower) "lHb" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/computer/robotics, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) "lHc" = ( -/obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/fueltank, +/obj/structure/cable, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) "lHd" = ( @@ -36163,6 +36314,12 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain/private) +"lHZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/cytology) "lIa" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -36189,20 +36346,17 @@ /area/station/medical/medbay/lobby) "lIh" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/junction/flip{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) "lIk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/item/kirbyplants/organic/applebush, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) "lIt" = ( @@ -36213,13 +36367,13 @@ /turf/open/floor/iron/dark/small, /area/station/maintenance/department/engine/atmos) "lIL" = ( -/obj/machinery/atmospherics/pipe/smart/simple/general/visible, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/window/left/directional/east{ name = "Maximum Security Test Chamber"; req_access = list("xenobiology") }, +/obj/machinery/atmospherics/pipe/smart/simple/general/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side{ dir = 8 }, @@ -36264,9 +36418,9 @@ /turf/open/floor/iron/freezer, /area/station/command/heads_quarters/captain/private) "lJg" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -36314,8 +36468,8 @@ name = "Recreation" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, /turf/open/floor/iron/textured_half, /area/station/commons/fitness/recreation/entertainment) @@ -36345,9 +36499,6 @@ /turf/open/floor/iron, /area/station/maintenance/starboard/aft) "lKV" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/smooth, /area/station/commons/storage/tools) "lLb" = ( @@ -36552,7 +36703,7 @@ }, /obj/effect/mapping_helpers/airlock/access/all/science/xenobio, /turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/area/station/science/xenobiology) "lOj" = ( /turf/closed/wall, /area/station/cargo/miningoffice) @@ -36570,12 +36721,16 @@ /turf/open/misc/asteroid, /area/station/maintenance/department/electrical) "lOO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding{ dir = 5 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/small, /area/station/science/lobby) +"lOS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/closed/wall/r_wall, +/area/station/command/corporate_dock) "lOY" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -36620,15 +36775,6 @@ }, /turf/open/floor/iron/dark, /area/station/commons/storage/tools) -"lPz" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/iron/white/corner, -/area/station/hallway/secondary/exit/departure_lounge) "lPC" = ( /obj/structure/bookcase/random, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -36639,12 +36785,20 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/announcement_system, /obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ dir = 8 }, -/obj/machinery/announcement_system, /turf/open/floor/iron/grimy, /area/station/tcommsat/server) +"lPJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark/small, +/area/station/tcommsat/server) "lPO" = ( /obj/structure/table, /obj/effect/spawner/surgery_tray/full{ @@ -36692,11 +36846,11 @@ /turf/open/floor/plating, /area/station/engineering/supermatter/room) "lQZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock{ name = "Maintenance" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /obj/effect/mapping_helpers/airlock/unres{ dir = 8 @@ -36712,22 +36866,14 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/smooth_large, /area/station/science/auxlab/firing_range) -"lRj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "lRm" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron/dark/corner{ dir = 8 }, @@ -36775,6 +36921,14 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) +"lSa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/lower) "lSb" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -36784,6 +36938,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"lSc" = ( +/obj/structure/cable, +/turf/open/floor/circuit, +/area/station/tcommsat/server) +"lSf" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "lSh" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -36802,6 +36964,14 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) +"lSw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/edge{ + dir = 1 + }, +/area/station/engineering/storage/tech) "lSy" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible, /turf/open/floor/engine/co2, @@ -36835,15 +37005,11 @@ /turf/open/floor/iron, /area/station/security/brig/entrance) "lTg" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) -"lTk" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/fake_snow, -/area/station/commons/fitness/locker_room) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/cafeteria, +/area/station/science/breakroom) "lTt" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -36892,6 +37058,10 @@ "lUo" = ( /turf/open/floor/iron, /area/station/science/lobby) +"lUt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "lUE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -36937,9 +37107,19 @@ /area/station/cargo/sorting) "lVg" = ( /obj/structure/transit_tube/horizontal, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"lVo" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "lVy" = ( /obj/effect/turf_decal/tile/green/anticorner/contrasted{ dir = 8 @@ -36974,9 +37154,6 @@ /area/station/maintenance/disposal/incinerator) "lWk" = ( /obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, /turf/open/floor/iron/large, /area/station/hallway/primary/central/fore) "lWp" = ( @@ -37039,22 +37216,23 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, /turf/open/floor/iron/dark/side{ dir = 4 }, /area/station/science/xenobiology) +"lXs" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/dock) "lXw" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/sign/warning/radiation/rad_area/directional/east, -/turf/open/floor/iron/stairs/right{ - dir = 1 - }, +/turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) "lXC" = ( /obj/structure/cable, @@ -37084,18 +37262,18 @@ /turf/open/floor/carpet/lone, /area/station/service/chapel/office) "lXR" = ( -/obj/structure/disposalpipe/junction, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, /turf/open/floor/iron, /area/station/hallway/primary/aft) "lXT" = ( -/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ dir = 4 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/medical/cryo) "lXU" = ( @@ -37109,6 +37287,11 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"lXV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science/robotics/augments) "lXX" = ( /obj/machinery/light/warm/directional/north, /turf/open/floor/iron, @@ -37125,13 +37308,13 @@ /turf/open/floor/plating, /area/station/cargo/sorting) "lYf" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 5 }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "lYj" = ( @@ -37173,24 +37356,24 @@ /turf/open/floor/plating, /area/station/maintenance/port/greater) "lYV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding/wideplating/dark{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) "lZa" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ - dir = 8 - }, /obj/machinery/computer/telecomms/monitor{ dir = 8; network = "tcommsat" }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ + dir = 8 + }, /turf/open/floor/iron/grimy, /area/station/tcommsat/server) "lZf" = ( @@ -37277,6 +37460,16 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) +"lZD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engine) "lZH" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -37310,13 +37503,9 @@ /obj/structure/cable, /turf/closed/wall, /area/station/maintenance/central/greater) -"maf" = ( -/turf/closed/wall/rust, -/area/station/hallway/primary/fore) "mag" = ( /obj/structure/cable, /obj/effect/spawner/random/trash, -/obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/iron, /area/station/maintenance/port/aft) "mak" = ( @@ -37326,27 +37515,14 @@ /obj/machinery/keycard_auth/wall_mounted/directional/south, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain) -"mau" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron/white/small, -/area/station/science/cubicle) -"maw" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, -/turf/open/floor/iron/smooth, -/area/station/command/bridge) "maE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/item/clothing/head/cone{ pixel_x = 6; pixel_y = 17 }, /obj/structure/broken_flooring/singular/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "maK" = ( @@ -37366,6 +37542,12 @@ }, /turf/open/floor/sepia, /area/station/maintenance/aft) +"mbk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/white/small, +/area/station/science/cubicle) "mbp" = ( /obj/structure/hedge, /obj/machinery/light_switch/directional/east, @@ -37377,10 +37559,6 @@ /obj/machinery/pdapainter/medbay, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/cmo) -"mbx" = ( -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/wood, -/area/station/engineering/main) "mbG" = ( /obj/structure/fluff/broken_canister_frame, /turf/open/floor/plating, @@ -37405,14 +37583,6 @@ /obj/machinery/cell_charger, /turf/open/floor/iron/grimy, /area/station/science/cubicle) -"mch" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "mcj" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/structure/table/reinforced/titaniumglass, @@ -37430,14 +37600,14 @@ /turf/open/misc/asteroid, /area/station/maintenance/starboard/greater) "mcn" = ( -/obj/machinery/status_display/ai/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron/white/side{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/area/station/science/lower) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/tile, +/area/station/command/meeting_room) "mco" = ( /obj/machinery/holopad, /turf/open/floor/iron/checker, @@ -37473,10 +37643,10 @@ /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) "mcS" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, /obj/machinery/light/cold/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) @@ -37507,13 +37677,20 @@ /turf/closed/wall/r_wall, /area/station/science/robotics/mechbay) "mdG" = ( -/obj/structure/chair{ - dir = 1 +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) +"mdV" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 }, -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/showroomfloor, -/area/station/commons/toilet/auxiliary) +/obj/machinery/door/poddoor/shutters{ + dir = 1; + id = "aibridge" + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engine) "meh" = ( /obj/structure/railing{ dir = 4 @@ -37537,20 +37714,15 @@ /turf/closed/wall, /area/station/command/heads_quarters/captain) "meG" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/light/small/directional/north, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/small/directional/north, /turf/open/floor/iron/white/side, /area/station/science/lower) -"meJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/greater) "meN" = ( /obj/structure/chair/sofa/bench{ dir = 8 @@ -37560,19 +37732,10 @@ dir = 4 }, /area/station/hallway/secondary/entry) -"meS" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/hallway/secondary/command) "mfl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/firealarm/directional/west, /obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/side{ dir = 8 @@ -37616,6 +37779,7 @@ /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/dark_red/fourcorners, /obj/machinery/recharger, +/obj/item/radio/intercom/directional/north, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) "mgt" = ( @@ -37670,13 +37834,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"mhW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ + dir = 8 + }, +/turf/open/floor/iron/grimy, +/area/station/tcommsat/server) "mhZ" = ( +/obj/structure/sign/poster/official/random/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/poster/official/random/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron/dark/smooth_large, /area/station/service/lawoffice) "mib" = ( @@ -37705,6 +37875,12 @@ /obj/structure/reagent_dispensers/wall/virusfood/directional/south, /turf/open/floor/iron/white, /area/station/medical/virology) +"mij" = ( +/obj/structure/fermenting_barrel, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/large, +/area/station/maintenance/department/science/xenobiology) "miz" = ( /obj/structure/table/glass, /obj/item/wrench, @@ -37731,13 +37907,6 @@ }, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) -"miT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "mjc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, @@ -37862,11 +38031,11 @@ /turf/open/floor/iron, /area/station/maintenance/fore/greater) "mkZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wood{ dir = 4 }, /obj/machinery/light/floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/grimy, /area/station/tcommsat/server) "mle" = ( @@ -37879,8 +38048,8 @@ /turf/open/floor/iron/white/textured_large, /area/station/command/heads_quarters/cmo) "mlm" = ( -/obj/structure/cable, /obj/structure/alien/weeds, +/obj/structure/cable, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) "mln" = ( @@ -37906,6 +38075,7 @@ /turf/open/floor/iron/smooth, /area/station/engineering/break_room) "mlD" = ( +/obj/structure/cable, /obj/structure/disposalpipe/segment, /obj/effect/landmark/start/hangover, /obj/effect/turf_decal/trimline/neutral/line{ @@ -37914,7 +38084,6 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 8 }, -/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "mlK" = ( @@ -37937,34 +38106,33 @@ /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) +"mmv" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/storage/tech) "mmw" = ( /obj/machinery/door/poddoor/shutters{ id = "evashutter"; name = "E.V.A. Storage Shutter" }, /obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, /turf/open/floor/iron/smooth_half{ dir = 1 }, /area/station/ai_monitored/command/storage/eva) "mmy" = ( +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/button/door/directional/south{ - id = "XenoPens"; - name = "Xenobiology Shutters"; - req_access = list("xenobiology") - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/science/xenobiology) +/turf/open/floor/iron, +/area/station/maintenance/starboard/greater) "mmE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -37983,6 +38151,14 @@ /obj/structure/cable, /turf/open/floor/wood/parquet, /area/station/service/library) +"mmR" = ( +/obj/structure/table/reinforced, +/obj/effect/spawner/surgery_tray/full/morgue, +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "mmT" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -38031,6 +38207,11 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"mnj" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/corporate_dock) "mnl" = ( /obj/structure/table, /obj/item/circuitboard/machine/coffeemaker/impressa, @@ -38042,18 +38223,8 @@ "mnw" = ( /obj/effect/spawner/random/vending/colavend, /obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"mny" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/floor/iron/dark/small, -/area/station/tcommsat/server) "mnC" = ( /obj/structure/table, /obj/item/phone{ @@ -38073,15 +38244,10 @@ /turf/open/floor/plating, /area/station/maintenance/central/greater) "mnN" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/bookcase/random, /obj/effect/turf_decal/siding/thinplating_new/terracotta{ - dir = 4 + dir = 10 }, -/obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark/smooth_large, /area/station/command/meeting_room) "mnU" = ( @@ -38104,6 +38270,7 @@ /obj/effect/turf_decal/siding/end{ dir = 8 }, +/obj/effect/mapping_helpers/airalarm/tlv_kitchen, /turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) "moj" = ( @@ -38189,12 +38356,21 @@ }, /turf/open/floor/wood/parquet, /area/station/medical/psychology) +"mpE" = ( +/obj/structure/cable, +/turf/open/floor/iron/white/small, +/area/station/science/cubicle) "mpJ" = ( -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron/half{ - dir = 8 +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/iron/dark/textured_half, +/area/station/command/bridge) +"mpK" = ( +/obj/effect/turf_decal/tile/dark_red/half/contrasted{ + dir = 1 }, -/area/station/hallway/primary/central/fore) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/customs) "mpL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/table, @@ -38215,12 +38391,6 @@ }, /turf/open/floor/iron/dark, /area/station/commons/storage/tools) -"mpM" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "mpQ" = ( /obj/structure/bed{ dir = 4 @@ -38232,6 +38402,18 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/small, /area/station/security/brig) +"mpU" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/storage/box/matches{ + pixel_x = -1; + pixel_y = -4 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/wood/large, +/area/station/maintenance/department/science/xenobiology) "mql" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 1 @@ -38249,22 +38431,17 @@ }, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"mqD" = ( -/obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron, -/area/station/maintenance/port/aft) "mqH" = ( /obj/structure/cable, /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/aft) "mqO" = ( -/obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/item/radio/intercom/directional/west, /obj/structure/table, /obj/item/wrench, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/secondary/construction) "mrc" = ( @@ -38280,6 +38457,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"mrs" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/machinery/door/airlock/command/glass{ + name = "Telecommunications Server Room" + }, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/tcommsat/server) "mrt" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/north, @@ -38329,9 +38514,6 @@ /obj/structure/dresser, /obj/structure/sign/poster/contraband/random/directional/east, /obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) "mtc" = ( @@ -38411,7 +38593,6 @@ /turf/open/floor/iron, /area/station/security/prison) "mud" = ( -/obj/structure/cable, /obj/machinery/door/airlock{ name = "Maintenance" }, @@ -38422,13 +38603,17 @@ /obj/effect/mapping_helpers/airlock/unres{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"mur" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/wood/tile, -/area/station/command/meeting_room) +"mus" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "mut" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -38451,6 +38636,10 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"muB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/closed/wall/r_wall, +/area/station/science/ordnance) "muI" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -38472,19 +38661,14 @@ "muS" = ( /turf/open/floor/iron/dark, /area/station/security/prison/workout) -"muW" = ( -/obj/structure/cable, -/obj/machinery/status_display/ai/directional/north, -/turf/open/floor/wood/tile, -/area/station/command/meeting_room) "mvd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/structure/cable, /obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/central/lesser) "mvh" = ( @@ -38505,7 +38689,6 @@ /turf/open/floor/iron, /area/station/security/brig/entrance) "mvC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/hallway/secondary/entry) "mvP" = ( @@ -38538,10 +38721,12 @@ /turf/open/floor/iron, /area/station/security/prison/workout) "mwu" = ( -/obj/structure/cable, -/obj/structure/hedge, -/turf/open/floor/plating, -/area/station/engineering/storage/tech) +/obj/machinery/light/cold/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "mwx" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, @@ -38565,9 +38750,6 @@ /obj/item/multitool, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /turf/open/floor/engine, /area/station/science/xenobiology) "mwN" = ( @@ -38620,8 +38802,8 @@ /turf/open/floor/noslip, /area/station/maintenance/port/aft) "mxP" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, /obj/machinery/airalarm/directional/east, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -38663,6 +38845,13 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/dorms) +"myp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/side, +/area/station/science/research) "myt" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/item/kirbyplants/random/fullysynthetic, @@ -38704,15 +38893,6 @@ /obj/item/clothing/mask/breath, /turf/open/floor/plating, /area/station/command/teleporter) -"mzb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table/glass, -/obj/item/radio/intercom/command, -/obj/item/paper/fluff/jobs/engineering/frequencies, -/turf/open/floor/carpet/executive, -/area/station/command/meeting_room) "mze" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -38729,11 +38909,11 @@ /turf/open/floor/iron/white/small, /area/station/science/server) "mzl" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/purple{ dir = 8 }, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/genetics) "mzo" = ( @@ -38772,17 +38952,17 @@ /turf/open/floor/iron, /area/station/maintenance/fore/greater) "mAs" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/multitool, -/obj/item/clothing/glasses/meson, -/obj/machinery/firealarm/directional/west, -/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, -/area/station/engineering/storage/tech) +/area/station/hallway/primary/starboard) "mAv" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/window/reinforced/spawner/directional/south, @@ -38795,13 +38975,10 @@ /turf/open/floor/iron, /area/station/security/checkpoint/escape) "mAP" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/door/airlock{ - id_tag = "AuxToilet2"; - name = "Unit 2" - }, -/turf/open/floor/iron/showroomfloor, -/area/station/commons/toilet/auxiliary) +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/starboard/greater) "mAR" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -38898,6 +39075,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"mDs" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/hallway/secondary/entry) "mDA" = ( /obj/structure/table/wood, /obj/machinery/computer/libraryconsole{ @@ -38938,15 +39126,25 @@ /turf/open/floor/engine, /area/station/engineering/atmospherics_engine) "mDW" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron/white/side, /area/station/science/lower) +"mEn" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Zoo" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/textured_half, +/area/station/hallway/secondary/entry) "mEq" = ( /obj/structure/closet/crate/wooden{ name = "Alms Box" @@ -39030,14 +39228,14 @@ /turf/open/floor/iron, /area/station/security/execution/transfer) "mFt" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock{ name = "Cytology Maintenance" }, /obj/effect/mapping_helpers/airlock/access/all/science/research, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "mFx" = ( @@ -39079,6 +39277,15 @@ }, /turf/open/floor/iron, /area/station/cargo/office) +"mFT" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/side, +/area/station/science/xenobiology) "mGg" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -39206,32 +39413,18 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/project) -"mHZ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden, -/turf/open/floor/iron/grimy, -/area/station/tcommsat/server) -"mIe" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/security/prison/workout) "mIg" = ( /obj/machinery/light/small/directional/west, /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/xenobiology) "mIh" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "mIi" = ( @@ -39239,15 +39432,13 @@ dir = 4 }, /obj/effect/landmark/start/lawyer, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) "mIm" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/iron/white/corner{ dir = 1 }, @@ -39306,9 +39497,6 @@ "mIR" = ( /obj/structure/chair/stool/directional/east, /obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) "mIT" = ( @@ -39322,10 +39510,10 @@ /turf/open/floor/iron/white/small, /area/station/security/warden) "mIW" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, @@ -39357,27 +39545,29 @@ /turf/open/floor/stone, /area/station/maintenance/aft) "mJy" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/corner{ +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark/corner{ dir = 4 }, -/turf/open/floor/iron/dark, /area/station/science/xenobiology) "mJB" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/brig/entrance) "mJC" = ( -/obj/structure/table/optable{ - desc = "A cold, hard place for your final rest."; - name = "Morgue Slab" +/obj/structure/bodycontainer/morgue/beeper_off{ + dir = 1 }, -/obj/machinery/newscaster/directional/south, -/obj/effect/turf_decal/siding/white, -/turf/open/floor/iron/small, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/dark, /area/station/medical/morgue) "mJK" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -39408,8 +39598,8 @@ /turf/open/floor/iron, /area/station/security/prison/workout) "mKe" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -39486,41 +39676,34 @@ /turf/open/floor/iron, /area/station/cargo/storage) "mLA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/alien/weeds, /obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/effect/decal/cleanable/cobweb, -/obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron, -/area/station/science/xenobiology) +/area/station/maintenance/starboard/greater) "mLH" = ( -/obj/machinery/light/cold/directional/east, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, +/obj/machinery/light/cold/directional/east, /turf/open/floor/iron/showroomfloor, /area/station/medical/coldroom) "mLM" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 }, +/obj/structure/filingcabinet, /obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ dir = 8 }, -/obj/structure/filingcabinet, /turf/open/floor/iron/grimy, /area/station/tcommsat/server) "mLO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/science/cytology) "mLZ" = ( @@ -39593,7 +39776,6 @@ /turf/open/floor/iron/dark, /area/station/science/robotics/lab) "mNv" = ( -/obj/structure/cable, /obj/machinery/door/airlock{ name = "Maintenance" }, @@ -39601,16 +39783,9 @@ dir = 1 }, /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/aft) -"mNz" = ( -/obj/structure/closet/emcloset, -/obj/machinery/newscaster/directional/south, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "mNQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -39619,12 +39794,6 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"mNS" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/wood/tile, -/area/station/command/meeting_room) "mOc" = ( /obj/machinery/door/airlock/engineering{ name = "Engine Airlock" @@ -39633,13 +39802,6 @@ /obj/effect/mapping_helpers/airlock/access/any/engineering/general, /turf/open/floor/plating, /area/station/engineering/supermatter/room) -"mOk" = ( -/obj/structure/table/glass, -/obj/item/folder/blue{ - pixel_y = 2 - }, -/turf/open/floor/carpet/executive, -/area/station/command/meeting_room) "mOm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39686,11 +39848,11 @@ /turf/open/floor/engine, /area/station/science/xenobiology) "mOM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, /obj/structure/chair/stool/directional/north, /obj/effect/landmark/generic_maintenance_landmark, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/light/colour_cycle/dancefloor_b, /area/station/maintenance/starboard/central) "mOV" = ( @@ -39714,25 +39876,37 @@ /turf/open/floor/iron, /area/station/security) "mPu" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/public/glass{ - name = "Zoo" +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half, -/area/station/hallway/secondary/entry) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "mPv" = ( /obj/item/kirbyplants/random/fullysynthetic, /turf/open/floor/iron, /area/station/maintenance/port/aft) "mPx" = ( -/obj/structure/chair{ - dir = 8 +/obj/machinery/door/window/right/directional/south{ + name = "Jetpack Storage" }, -/turf/open/floor/wood/tile, -/area/station/command/meeting_room) +/obj/item/tank/jetpack/carbondioxide{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/tank/jetpack/carbondioxide, +/obj/item/tank/jetpack/carbondioxide{ + pixel_x = 4; + pixel_y = -1 + }, +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/siding/dark, +/turf/open/floor/iron/dark/smooth_edge, +/area/station/ai_monitored/command/storage/eva) "mPB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, /turf/open/floor/plating, @@ -39750,8 +39924,8 @@ /turf/open/floor/iron/smooth, /area/station/command/bridge) "mQD" = ( -/obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) "mQF" = ( @@ -39773,24 +39947,18 @@ "mRl" = ( /turf/open/floor/engine/co2, /area/station/engineering/atmos) -"mRB" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/end, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "mRD" = ( /obj/effect/turf_decal/bot_white, /obj/effect/spawner/random/maintenance, /turf/open/floor/iron/dark, /area/station/cargo/storage) "mRK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, /obj/machinery/camera/autoname/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "mRQ" = ( @@ -39832,11 +40000,11 @@ /turf/open/floor/grass, /area/station/service/chapel) "mTc" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, @@ -39880,10 +40048,6 @@ "mTB" = ( /turf/closed/wall, /area/station/command/gateway) -"mTM" = ( -/obj/structure/cable, -/turf/open/floor/circuit, -/area/station/tcommsat/server) "mTN" = ( /obj/structure/chair/stool/directional/south, /obj/structure/mirror/directional/north, @@ -39947,13 +40111,13 @@ /turf/open/floor/wood/parquet, /area/station/service/library) "mUn" = ( -/obj/structure/cable, /obj/machinery/door/airlock{ name = "Maintenance" }, /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, /obj/effect/decal/cleanable/dirt, /obj/structure/alien/weeds, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) "mUO" = ( @@ -39961,11 +40125,20 @@ /turf/open/floor/iron/dark, /area/station/science/server) "mUQ" = ( +/obj/machinery/firealarm/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"mUX" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs/left{ + dir = 1 + }, +/area/station/maintenance/hallway/abandoned_command) "mUY" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 4 @@ -39976,6 +40149,7 @@ "mVc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line{ dir = 4 @@ -39983,7 +40157,6 @@ /obj/effect/turf_decal/stripes/red/line{ dir = 8 }, -/obj/structure/cable, /turf/open/floor/iron/small, /area/station/hallway/primary/central/aft) "mVm" = ( @@ -40004,6 +40177,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/small, /area/station/ai_monitored/security/armory) +"mVy" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/starboard/greater) "mVC" = ( /obj/machinery/door/airlock/external{ name = "Departure Lounge Airlock" @@ -40034,20 +40211,14 @@ dir = 4 }, /area/station/medical/medbay/central) -"mWc" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/science/lower) "mWB" = ( /turf/open/floor/plating, /area/station/engineering/supermatter/room) "mWE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/floor/iron/dark/small, -/area/station/tcommsat/server) +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "mWF" = ( /obj/machinery/status_display/evac/directional/north, /obj/structure/disposalpipe/segment{ @@ -40094,14 +40265,10 @@ /turf/open/floor/grass, /area/station/service/chapel) "mXk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/broken_flooring/singular/directional/east, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) +/obj/structure/cable, +/obj/structure/disposalpipe/junction/flip, +/turf/open/floor/iron/smooth, +/area/station/hallway/secondary/command) "mXt" = ( /obj/machinery/rnd/production/techfab/department/medical, /obj/effect/turf_decal/stripes/box, @@ -40136,11 +40303,11 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "mYd" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/central) "mYj" = ( @@ -40157,6 +40324,13 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) +"mYp" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/delivery, +/obj/structure/sign/poster/official/random/directional/west, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/dark/smooth_large, +/area/station/ai_monitored/command/storage/eva) "mYq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40166,15 +40340,6 @@ }, /turf/open/floor/iron/small, /area/station/security/prison/shower) -"mYu" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "mYE" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -40233,15 +40398,15 @@ }, /area/station/security/execution/education) "mZd" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, /obj/effect/turf_decal/trimline/neutral/line{ dir = 8 }, -/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "mZA" = ( @@ -40260,21 +40425,19 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"naa" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/tcommsat/server) "nah" = ( /obj/item/kirbyplants/random, /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) -"nay" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/public/glass{ - name = "Research Wing" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/white/textured_half{ - dir = 1 - }, -/area/station/hallway/primary/starboard) "naz" = ( /obj/machinery/igniter/incinerator_ordmix, /turf/open/floor/engine/vacuum, @@ -40282,12 +40445,6 @@ "naB" = ( /turf/closed/wall/rust, /area/station/cargo/lobby) -"naC" = ( -/obj/structure/cable, -/obj/structure/broken_flooring/singular/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/maintenance/starboard/greater) "naF" = ( /turf/open/floor/iron/dark/smooth_corner{ dir = 1 @@ -40318,6 +40475,18 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) +"nbv" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark/diagonal, +/area/station/ai_monitored/command/storage/eva) "nbF" = ( /obj/structure/disposalpipe/segment, /obj/machinery/light/small/directional/west, @@ -40339,7 +40508,6 @@ "ncb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/wood, -/obj/item/paper/calling_card, /obj/structure/alien/resin/membrane, /obj/structure/alien/weeds, /obj/structure/alien/weeds, @@ -40374,12 +40542,12 @@ /turf/open/floor/iron/checker, /area/station/security/breakroom) "ncr" = ( -/obj/structure/cable, /obj/structure/chair/office{ dir = 8 }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/start/lawyer, +/obj/structure/cable, /turf/open/floor/wood/tile, /area/station/service/lawoffice) "ncD" = ( @@ -40390,10 +40558,12 @@ /turf/open/space/basic, /area/space/nearstation) "ncH" = ( -/obj/structure/table, -/obj/item/wirecutters, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/science/xenobiology) "ncL" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/neutral/line{ @@ -40403,11 +40573,10 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "ncQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/machinery/airalarm/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +/turf/open/floor/iron, +/area/station/engineering/storage/tech) "nde" = ( /obj/structure/cable, /turf/open/floor/iron/dark/smooth_large, @@ -40460,9 +40629,6 @@ /obj/effect/turf_decal/tile/green/opposingcorners{ dir = 1 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron/dark, /area/station/medical/chemistry) "neF" = ( @@ -40498,21 +40664,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/lockers) -"nfl" = ( -/obj/structure/chair/wood{ - dir = 4 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/stone, -/area/station/service/bar) -"nfm" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/hallway/secondary/construction) "nfn" = ( /obj/effect/turf_decal/siding/wideplating{ dir = 1 @@ -40525,6 +40676,12 @@ }, /turf/open/floor/wood, /area/station/engineering/atmos/office) +"nfv" = ( +/obj/effect/turf_decal/trimline/dark/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/department/science/xenobiology) "nfG" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -40584,11 +40741,11 @@ /turf/open/floor/wood, /area/station/command/heads_quarters/qm) "nhl" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 10 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "nhu" = ( @@ -40615,7 +40772,6 @@ /turf/open/floor/wood, /area/station/maintenance/starboard/greater) "nhC" = ( -/obj/structure/cable, /obj/machinery/door/window/brigdoor/left/directional/north{ name = "Creature Pen"; req_access = list("research") @@ -40624,6 +40780,7 @@ name = "Creature Pen"; req_access = list("research") }, +/obj/structure/cable, /turf/open/floor/catwalk_floor/iron, /area/station/science/xenobiology) "nhU" = ( @@ -40648,11 +40805,11 @@ /turf/open/floor/iron/white/small, /area/station/service/hydroponics) "nhZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/starboard) "nib" = ( @@ -40673,35 +40830,25 @@ /turf/open/floor/iron, /area/station/medical/chemistry) "niw" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/obj/effect/spawner/random/vending/snackvend, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ +/obj/structure/closet/firecloset, +/obj/machinery/status_display/ai/directional/east, +/turf/open/floor/iron/dark/side{ dir = 4 }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron, /area/station/hallway/primary/fore) "niF" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/iron/white/side{ dir = 8 }, /area/station/science/lower) -"niI" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/siding/white{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/medical/medbay/aft) "niR" = ( /obj/structure/chair, /obj/machinery/light/small/directional/north, @@ -40717,6 +40864,8 @@ id = "bridge blast"; name = "Bridge Blast Door" }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/command/meeting_room) "niW" = ( @@ -40725,10 +40874,6 @@ }, /turf/open/floor/iron/small, /area/station/service/barber) -"niZ" = ( -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/maintenance/aft) "nje" = ( /obj/structure/railing{ dir = 1 @@ -40745,10 +40890,10 @@ /turf/open/floor/iron, /area/station/engineering/lobby) "njh" = ( -/obj/effect/spawner/random/structure/crate, -/obj/effect/decal/cleanable/dirt, +/obj/structure/broken_flooring/singular/directional/east, +/obj/structure/cable, /turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/area/station/maintenance/starboard/aft) "njs" = ( /obj/structure/chair/comfy/black{ dir = 1 @@ -40776,9 +40921,6 @@ /obj/structure/sign/poster/official/random/directional/north, /obj/machinery/camera/autoname/directional/north, /obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /turf/open/floor/wood/tile, /area/station/command/heads_quarters/hop) "njL" = ( @@ -40880,15 +41022,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"nlk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/wood/tile, -/area/station/command/meeting_room) "nln" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40911,10 +41044,6 @@ dir = 4 }, /area/station/science/xenobiology) -"nlP" = ( -/obj/structure/cable, -/turf/open/floor/fake_snow, -/area/station/commons/fitness/locker_room) "nlQ" = ( /obj/machinery/holopad, /obj/effect/turf_decal/siding/thinplating{ @@ -40951,6 +41080,16 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/small, /area/station/engineering/break_room) +"nmq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 1; + id = "aibridge" + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engine) "nmC" = ( /obj/structure/table, /obj/item/storage/bag/tray, @@ -40987,6 +41126,13 @@ /obj/structure/cable, /turf/open/floor/mineral/titanium, /area/station/command/heads_quarters/ce) +"nmZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/dark/diagonal, +/area/station/ai_monitored/command/storage/eva) "nnd" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -41017,12 +41163,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth_large, /area/station/engineering/break_room) -"nnD" = ( -/turf/open/floor/fake_snow, -/area/station/hallway/secondary/entry) "noe" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment, +/obj/structure/cable, /turf/open/floor/iron/dark/side{ dir = 8 }, @@ -41037,16 +41180,17 @@ /turf/open/floor/eighties, /area/station/service/abandoned_gambling_den/gaming) "noz" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/navigate_destination/eva, +/turf/open/floor/iron/dark/side{ dir = 4 }, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron, /area/station/hallway/primary/fore) "noB" = ( /obj/structure/table/reinforced/rglass, @@ -41079,12 +41223,16 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/command/meeting_room) +"noJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) "noN" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, -/obj/structure/cable, /obj/structure/steam_vent, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "noS" = ( @@ -41157,6 +41305,13 @@ }, /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) +"nqG" = ( +/obj/effect/turf_decal/trimline/neutral/warning{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) "nqJ" = ( /obj/structure/sink/directional/south, /obj/effect/turf_decal/siding/wood, @@ -41224,6 +41379,10 @@ }, /turf/open/floor/wood, /area/station/service/chapel) +"nrD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) "nsc" = ( /obj/structure/cable, /obj/item/kirbyplants/organic/applebush, @@ -41260,9 +41419,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, /turf/open/floor/iron/white/side, /area/station/hallway/primary/central/aft) "nsD" = ( @@ -41356,12 +41512,12 @@ /turf/open/floor/wood/parquet, /area/station/service/library) "ntW" = ( -/obj/machinery/light/small/directional/north, -/obj/machinery/vending/wardrobe/coroner_wardrobe, -/obj/effect/turf_decal/siding/white{ - dir = 1 +/obj/structure/table/optable{ + desc = "A cold, hard place for your final rest."; + name = "Morgue Slab" }, -/turf/open/floor/iron/small, +/obj/effect/turf_decal/trimline/dark_blue/filled/corner, +/turf/open/floor/iron/dark, /area/station/medical/morgue) "ntZ" = ( /obj/machinery/door/airlock/public/glass{ @@ -41399,17 +41555,10 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) -"nuz" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "nuC" = ( /obj/effect/turf_decal/siding, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/small, /area/station/science/lab) "nuL" = ( @@ -41422,9 +41571,9 @@ /turf/open/floor/iron/herringbone, /area/station/commons/dorms) "nuO" = ( -/obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) "nuS" = ( @@ -41463,8 +41612,6 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/greater) "nvB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -41485,9 +41632,6 @@ dir = 4 }, /obj/machinery/camera/autoname/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/white/corner{ dir = 1 }, @@ -41524,10 +41668,10 @@ }, /area/station/hallway/secondary/dock) "nwk" = ( +/obj/effect/spawner/random/trash/bin, /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 9 }, -/obj/effect/spawner/random/trash/bin, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) "nwK" = ( @@ -41549,15 +41693,21 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"nxD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +"nxp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/dead_body_placer{ - bodycount = 2 +/turf/open/floor/iron/white/corner, +/area/station/science/lower) +"nxy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/dark/hidden{ + dir = 1 }, +/turf/open/floor/circuit, +/area/station/tcommsat/server) +"nxD" = ( +/obj/effect/landmark/blobstart, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/small, /area/station/medical/morgue) "nxI" = ( @@ -41579,21 +41729,14 @@ /turf/open/floor/wood, /area/station/command/heads_quarters/qm) "nyd" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/broken_flooring/singular/directional/east, /obj/structure/steam_vent, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"nye" = ( -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 8; - name = "killroom vent" - }, -/turf/open/floor/circuit/telecomms/mainframe, -/area/station/science/xenobiology) "nyf" = ( /obj/machinery/camera/autoname/directional/east, /obj/effect/decal/cleanable/dirt, @@ -41656,9 +41799,13 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/central) "nyZ" = ( -/obj/structure/statue/snow/snowman, -/turf/open/floor/fake_snow, -/area/station/cargo/storage) +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "nzc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41754,9 +41901,9 @@ /turf/open/space/basic, /area/space) "nAn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/hallway/secondary/command) "nAo" = ( /obj/machinery/hydroponics/soil{ pixel_y = 8 @@ -41766,11 +41913,16 @@ /turf/open/misc/sandy_dirt, /area/station/maintenance/starboard/aft) "nAF" = ( +/obj/effect/landmark/start/roboticist, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/start/roboticist, /turf/open/floor/iron, /area/station/science/robotics/lab) +"nAI" = ( +/obj/structure/alien/weeds, +/obj/structure/cable, +/turf/open/misc/asteroid, +/area/station/maintenance/starboard/greater) "nAJ" = ( /obj/machinery/power/energy_accumulator/tesla_coil/anchored, /obj/structure/window/reinforced/plasma/spawner/directional/north, @@ -41791,9 +41943,6 @@ /turf/open/floor/iron, /area/station/engineering/atmos/project) "nBq" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) "nBw" = ( @@ -41808,21 +41957,21 @@ /turf/open/floor/stone, /area/station/command/corporate_suite) "nBF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/item/radio/intercom/directional/north, /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner{ dir = 1 }, /area/station/hallway/secondary/entry) "nBG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/effect/turf_decal/siding/wood{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, /turf/open/floor/plating, @@ -41843,10 +41992,10 @@ }, /area/station/science/xenobiology) "nCo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/chair/office{ dir = 8 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/construction/mining/aux_base) "nCt" = ( @@ -41880,10 +42029,10 @@ /turf/open/floor/plating, /area/station/hallway/secondary/construction) "nCU" = ( -/obj/vehicle/ridden/wheelchair{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +/obj/vehicle/ridden/wheelchair{ dir = 4 }, /obj/structure/sign/departments/psychology/directional/south, @@ -41976,13 +42125,6 @@ /obj/machinery/portable_atmospherics/canister, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"nEC" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white, -/area/station/science/cytology) "nEG" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, /obj/effect/turf_decal/siding/wideplating{ @@ -42002,13 +42144,7 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "nFa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/highsecurity{ - name = "Secure Tech Storage" - }, -/obj/effect/mapping_helpers/airlock/access/all/command/general, -/turf/open/floor/iron/textured_half, +/turf/closed/wall, /area/station/engineering/storage/tech) "nFc" = ( /obj/structure/chair/stool/bar/directional/east, @@ -42017,15 +42153,6 @@ "nFo" = ( /turf/closed/wall, /area/station/cargo/bitrunning/den) -"nFp" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ - dir = 8 - }, -/turf/open/floor/iron/grimy, -/area/station/tcommsat/server) "nFs" = ( /obj/machinery/telecomms/server/presets/command, /turf/open/floor/circuit, @@ -42216,12 +42343,12 @@ /turf/open/floor/circuit/green, /area/station/ai_monitored/command/nuke_storage) "nIx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wood{ dir = 8 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/grimy, /area/station/tcommsat/server) "nIA" = ( @@ -42235,21 +42362,19 @@ /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) "nIJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, /obj/item/kirbyplants/random/fullysynthetic, /obj/machinery/light/cold/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, /turf/open/floor/iron/dark/small, /area/station/medical/virology) "nIT" = ( -/obj/structure/railing{ - dir = 6 - }, -/turf/open/floor/catwalk_floor, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, /area/station/hallway/secondary/entry) "nIY" = ( /turf/closed/mineral/random/stationside, @@ -42274,13 +42399,6 @@ dir = 4 }, /area/station/hallway/primary/central/fore) -"nJn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "nJo" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -42292,14 +42410,15 @@ /turf/open/floor/plating, /area/station/maintenance/port/greater) "nJG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "Bridge Blast Door" +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 }, -/turf/open/floor/plating, -/area/station/command/meeting_room) +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "nJK" = ( /obj/structure/reagent_dispensers/watertank/high, /obj/effect/turf_decal/siding/thinplating_new/light{ @@ -42331,13 +42450,13 @@ /turf/open/floor/iron/white, /area/station/medical/treatment_center) "nKj" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/light/floor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ dir = 10 }, -/obj/machinery/light/floor, /turf/open/floor/iron/dark, /area/station/tcommsat/server) "nKz" = ( @@ -42353,8 +42472,6 @@ /turf/open/floor/iron/smooth, /area/station/cargo/miningfoundry) "nLk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/mapping_helpers/airlock/access/all/science/rd, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command{ @@ -42364,6 +42481,8 @@ id = "rdoffice"; name = "Research Director's Shutters" }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_white, /area/station/command/heads_quarters/rd) "nLI" = ( @@ -42390,18 +42509,12 @@ /turf/open/floor/engine, /area/station/engineering/supermatter/room) "nLM" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/line, /obj/structure/cable, -/obj/structure/table/reinforced, -/obj/item/stack/cable_coil{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/stock_parts/power_store/cell/high, -/obj/item/electronics/airlock{ - pixel_y = 13 - }, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) "nLQ" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, @@ -42427,11 +42540,11 @@ /turf/open/floor/plating, /area/station/engineering/supermatter/room) "nMn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/structure/disposalpipe/segment{ dir = 6 }, /obj/machinery/duct, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) "nMq" = ( @@ -42466,9 +42579,7 @@ /area/station/holodeck/rec_center) "nNe" = ( /obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, +/obj/effect/turf_decal/siding/dark, /turf/open/floor/iron/dark/textured_half{ dir = 1 }, @@ -42484,6 +42595,9 @@ /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) "nNz" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ dir = 4 @@ -42492,9 +42606,6 @@ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "nNA" = ( @@ -42514,10 +42625,10 @@ /turf/open/floor/plating, /area/station/science/ordnance/testlab) "nOD" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /obj/machinery/power/apc/auto_name/directional/west{ areastring = "/area/station/science/ordnance/freezerchamber" }, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/ordnance) @@ -42581,9 +42692,6 @@ "nPH" = ( /obj/structure/closet/secure_closet/brig, /obj/item/radio/intercom/directional/west, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron, /area/station/security/execution/transfer) "nPM" = ( @@ -42645,11 +42753,11 @@ /turf/open/floor/iron/dark, /area/station/security/prison/safe) "nQo" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green{ dir = 4 }, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/cafeteria, @@ -42714,13 +42822,17 @@ /area/station/security/checkpoint/escape) "nRd" = ( /obj/structure/cable, -/obj/effect/spawner/structure/window, /obj/machinery/door/poddoor/preopen{ id = "bridge blast"; name = "Bridge Blast Door" }, +/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/command/bridge) +"nRj" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/hallway/secondary/entry) "nRr" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, @@ -42732,12 +42844,15 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/wood, /area/station/engineering/break_room) -"nRP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/dark_red/half/contrasted, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/customs) +"nRS" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 2 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "nSb" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -42759,6 +42874,11 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"nSl" = ( +/obj/structure/railing, +/obj/structure/cable, +/turf/open/floor/catwalk_floor, +/area/station/hallway/secondary/entry) "nSA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -42807,23 +42927,16 @@ /obj/effect/turf_decal/tile/yellow/anticorner/contrasted, /obj/machinery/chem_dispenser, /obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) "nTC" = ( /turf/open/floor/iron/white/small, /area/station/security/prison/safe) "nTE" = ( -/obj/machinery/computer/operating{ - dir = 8 - }, -/obj/effect/turf_decal/siding/white{ - dir = 6 - }, -/turf/open/floor/iron/small, -/area/station/medical/morgue) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/greater) "nTP" = ( /obj/machinery/door/airlock/research/glass{ name = "Cubicle" @@ -42832,6 +42945,12 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/cubicle) +"nTU" = ( +/obj/effect/landmark/start/hangover, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "nUd" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -42924,12 +43043,12 @@ /turf/open/floor/iron/small, /area/station/hallway/secondary/service) "nVx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/corner{ dir = 1 }, @@ -42943,16 +43062,10 @@ /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) "nVF" = ( -/obj/structure/cable, /obj/effect/spawner/structure/window/reinforced/tinted, +/obj/structure/cable, /turf/open/floor/plating, /area/station/tcommsat/server) -"nVS" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/maintenance/department/medical/central) "nVU" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 4 @@ -42977,6 +43090,11 @@ /obj/machinery/computer/security/telescreen/entertainment/directional/east, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) +"nWp" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood/large, +/area/station/maintenance/department/science/xenobiology) "nWr" = ( /obj/structure/cable, /obj/structure/hedge, @@ -42993,6 +43111,14 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/eighties/red, /area/station/hallway/primary/central/fore) +"nXf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + id_tag = "AuxToilet3"; + name = "Unit 3" + }, +/turf/open/floor/iron/showroomfloor, +/area/station/maintenance/department/science/xenobiology) "nXt" = ( /obj/effect/turf_decal/tile/yellow/full, /obj/structure/table/reinforced, @@ -43035,18 +43161,12 @@ /turf/open/floor/iron/small, /area/station/engineering/break_room) "nXP" = ( -/obj/machinery/airalarm/directional/east, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, +/obj/machinery/airalarm/directional/east, /turf/open/floor/grass, /area/station/medical/virology) -"nXQ" = ( -/obj/structure/chair/wood{ - dir = 4 - }, -/turf/open/floor/fake_snow, -/area/station/service/bar) "nXS" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -43062,10 +43182,10 @@ /turf/open/floor/iron/showroomfloor, /area/station/medical/virology) "nYl" = ( +/obj/machinery/firealarm/directional/south, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/south, /turf/open/floor/iron/white/corner{ dir = 4 }, @@ -43124,14 +43244,6 @@ /obj/structure/holosign/barrier/atmos/tram, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) -"nZF" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "nZG" = ( /obj/machinery/vending/wardrobe/chef_wardrobe, /turf/open/floor/iron/kitchen/small, @@ -43170,10 +43282,10 @@ pixel_y = -28 }, /obj/machinery/status_display/ai/directional/west, +/obj/machinery/camera/autoname/directional/west, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, -/obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload_foyer) "oaK" = ( @@ -43213,8 +43325,6 @@ /turf/open/floor/wood, /area/station/engineering/break_room) "obb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/research{ name = "Research and Development Lab" }, @@ -43223,6 +43333,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/lab) "obe" = ( @@ -43242,11 +43354,11 @@ /turf/open/space/basic, /area/station/solars/port) "obs" = ( +/obj/machinery/power/apc/auto_name/directional/east, /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) "obN" = ( @@ -43288,14 +43400,13 @@ /turf/open/floor/iron, /area/station/security/brig/entrance) "odh" = ( -/obj/effect/landmark/atmospheric_sanity/ignore_area, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) -"odk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron/grimy, -/area/station/commons/vacant_room/office) +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/engineering/storage/tech) "odD" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/table/wood, @@ -43314,7 +43425,8 @@ /turf/open/floor/stone, /area/station/service/chapel) "odP" = ( -/obj/machinery/firealarm/directional/west, +/obj/structure/bodycontainer/morgue, +/obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron/dark/small, /area/station/medical/morgue) "odX" = ( @@ -43342,10 +43454,10 @@ /turf/open/floor/plating, /area/station/maintenance/port/lesser) "oez" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/turf_decal/siding/blue{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/white/small, /area/station/command/heads_quarters/cmo) "oeI" = ( @@ -43404,6 +43516,7 @@ dir = 6 }, /obj/machinery/vending/coffee, +/obj/machinery/light/small/directional/south, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) "ofu" = ( @@ -43428,6 +43541,13 @@ /obj/structure/cable, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/captain/private) +"ogl" = ( +/obj/effect/spawner/random/maintenance/two, +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "ogq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -43438,13 +43558,13 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "ogr" = ( -/obj/effect/turf_decal/tile/blue{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, -/obj/item/radio/intercom/directional/south, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +/obj/effect/turf_decal/tile/blue{ dir = 1 }, +/obj/item/radio/intercom/directional/south, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "ogv" = ( @@ -43485,26 +43605,15 @@ /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/chair/office/light{ dir = 8 }, /obj/effect/landmark/start/scientist, -/turf/open/floor/iron/white, -/area/station/science/auxlab/firing_range) -"ogW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/iron/white/corner{ - dir = 1 - }, -/area/station/hallway/secondary/entry) +/turf/open/floor/iron/white, +/area/station/science/auxlab/firing_range) "ohf" = ( /obj/structure/reagent_dispensers/fueltank/large, /obj/effect/turf_decal/bot{ @@ -43581,6 +43690,14 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/iron/dark/small, /area/station/security/checkpoint/customs) +"oib" = ( +/obj/effect/mapping_helpers/airlock/access/all/medical/coroner, +/obj/machinery/door/airlock/grunge{ + name = "On-Station Burial Site" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/medical/morgue) "oig" = ( /obj/effect/spawner/structure/window/reinforced, /obj/effect/turf_decal/stripes/corner{ @@ -43601,9 +43718,6 @@ dir = 4 }, /obj/structure/sign/warning/no_smoking/directional/east, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron, /area/station/cargo/lobby) "ois" = ( @@ -43621,11 +43735,11 @@ /area/station/maintenance/starboard/aft) "oiA" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) @@ -43635,18 +43749,15 @@ }, /obj/machinery/chem_master, /obj/machinery/camera/autoname/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) "oiT" = ( +/obj/machinery/firealarm/directional/east, /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 10 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/east, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) "oiU" = ( @@ -43693,6 +43804,7 @@ "okk" = ( /obj/structure/table, /obj/item/screwdriver, +/obj/machinery/airalarm/directional/south, /turf/open/floor/iron, /area/station/construction/mining/aux_base) "okl" = ( @@ -43716,9 +43828,6 @@ /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) "okW" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "sci-entrance" }, @@ -43732,6 +43841,9 @@ id = "rdordnance"; name = "Ordnance Lab Shutters" }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/ordnance) "okZ" = ( @@ -43755,6 +43867,11 @@ /obj/structure/alien/weeds, /turf/open/misc/asteroid, /area/station/maintenance/starboard/greater) +"olG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold/dark/hidden, +/turf/open/floor/circuit, +/area/station/tcommsat/server) "olI" = ( /obj/structure/table, /obj/item/restraints/handcuffs{ @@ -43770,6 +43887,13 @@ }, /turf/open/floor/iron/checker, /area/station/security/breakroom) +"olO" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/diagonal, +/area/station/ai_monitored/command/storage/eva) "olV" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -43795,12 +43919,13 @@ /obj/structure/cable, /turf/open/floor/wood/parquet, /area/station/service/library) -"omw" = ( -/obj/effect/turf_decal/weather/snow/corner{ +"omO" = ( +/obj/structure/railing{ dir = 1 }, -/turf/open/floor/iron/dark, -/area/station/security/prison/workout) +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood/large, +/area/station/maintenance/department/science/xenobiology) "omW" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/iron/white/corner, @@ -43871,16 +43996,14 @@ /turf/open/floor/iron/dark/small, /area/station/security/brig) "oom" = ( -/obj/structure/cable, -/obj/machinery/door/airlock{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 4 +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/corner, +/area/station/science/xenobiology) "ooo" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ @@ -43901,6 +44024,12 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"opg" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron/showroomfloor, +/area/station/commons/toilet/auxiliary) "opn" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -43938,9 +44067,9 @@ /turf/open/space/basic, /area/space/nearstation) "opN" = ( -/obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "opV" = ( @@ -43950,30 +44079,28 @@ /turf/open/floor/stone, /area/station/service/bar) "opW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 }, /obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/side{ dir = 1 }, /area/station/science/xenobiology) "oqg" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner{ dir = 1 }, /area/station/hallway/secondary/entry) "oqi" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4 - }, +/obj/machinery/atmospherics/components/binary/tank_compressor, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) "oqq" = ( @@ -43986,12 +44113,6 @@ /obj/effect/turf_decal/siding/wideplating, /turf/open/floor/wood, /area/station/engineering/atmospherics_engine) -"oqB" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/project) "oqK" = ( /obj/effect/decal/cleanable/dirt, /obj/item/kirbyplants/random, @@ -44049,11 +44170,11 @@ /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) "orW" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, /turf/open/floor/iron, /area/station/science/xenobiology) "osa" = ( @@ -44066,19 +44187,19 @@ "ose" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 9 }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "osj" = ( -/obj/structure/cable, /obj/machinery/power/terminal, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) "osp" = ( @@ -44108,12 +44229,10 @@ /turf/open/floor/engine, /area/station/engineering/supermatter/room) "osy" = ( -/obj/effect/turf_decal/siding/white{ - dir = 8 - }, /obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/medical/morgue) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/hallway/primary/starboard) "osP" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron, @@ -44133,15 +44252,24 @@ /obj/structure/broken_flooring/corner/directional/south, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"otB" = ( +"otk" = ( +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 8 + }, /obj/structure/cable, +/turf/open/floor/iron/smooth_large, +/area/station/science/robotics/mechbay) +"otB" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green/corner{ dir = 1 }, +/obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) "otJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 @@ -44149,10 +44277,11 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 8 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"otQ" = ( +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "otX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44274,12 +44403,12 @@ dir = 1 }, /area/station/command/gateway) -"owm" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white, -/area/station/science/cytology) +"owc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/furniture_parts, +/obj/structure/railing/corner/end, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/department/science/xenobiology) "owv" = ( /obj/machinery/atmospherics/components/unary/passive_vent{ dir = 1; @@ -44288,18 +44417,23 @@ /turf/open/floor/circuit, /area/station/science/server) "owD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/science/cytology) +"owF" = ( +/obj/structure/fermenting_barrel, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/large, +/area/station/maintenance/department/science/xenobiology) "owH" = ( +/obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/components/binary/valve/digital{ dir = 4 }, -/obj/effect/landmark/event_spawn, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) "owJ" = ( @@ -44327,6 +44461,9 @@ /area/station/hallway/primary/central/fore) "owZ" = ( /obj/item/kirbyplants/organic/applebush, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/smooth_large, /area/station/command/bridge) "oxc" = ( @@ -44344,12 +44481,14 @@ }, /turf/open/floor/wood, /area/station/engineering/break_room) -"oxg" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 4 +"oxl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 }, -/turf/open/floor/iron/white/small, -/area/station/science/ordnance/storage) +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science/lobby) "oxm" = ( /obj/effect/turf_decal/bot, /obj/machinery/door/window/right/directional/south{ @@ -44463,14 +44602,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, /turf/closed/wall/r_wall, /area/station/engineering/supermatter) -"ozV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/iron/dark/smooth_edge{ +"oAi" = ( +/obj/effect/turf_decal/trimline/dark/filled/warning{ dir = 8 }, -/area/station/maintenance/starboard/greater) +/turf/open/floor/iron/dark/small, +/area/station/maintenance/department/science/xenobiology) "oAn" = ( /obj/effect/turf_decal/siding/brown{ dir = 10 @@ -44489,6 +44626,16 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"oAS" = ( +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/dark/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/department/science/xenobiology) "oAY" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ @@ -44515,10 +44662,10 @@ /area/station/security/processing) "oBA" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, @@ -44571,7 +44718,6 @@ }, /area/station/security/warden) "oBX" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/purple{ dir = 1 @@ -44579,6 +44725,7 @@ /obj/effect/turf_decal/siding/purple/corner{ dir = 8 }, +/obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, @@ -44590,10 +44737,11 @@ /turf/open/floor/engine, /area/station/engineering/supermatter/room) "oCg" = ( -/obj/structure/rack, -/obj/effect/spawner/random/techstorage/medical_all, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/floor/iron/dark/small, +/area/station/tcommsat/server) "oCi" = ( /obj/effect/turf_decal/siding/wood, /obj/machinery/light/small/directional/east, @@ -44611,10 +44759,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"oCB" = ( -/obj/machinery/atmospherics/components/binary/tank_compressor, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "oCE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44744,6 +44888,12 @@ dir = 4 }, /area/station/maintenance/starboard/greater) +"oFg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "oFu" = ( /turf/closed/wall, /area/station/security/office) @@ -44761,11 +44911,6 @@ dir = 1 }, /area/station/hallway/primary/central/fore) -"oFI" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) "oGk" = ( /turf/open/floor/circuit, /area/station/tcommsat/server) @@ -44780,33 +44925,24 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/smooth_half, /area/station/cargo/storage) -"oGo" = ( -/obj/structure/table/glass, -/obj/item/stock_parts/power_store/cell/high{ - pixel_x = 11; - pixel_y = 6 - }, -/obj/item/folder/blue{ - pixel_x = -3; - pixel_y = 2 - }, -/turf/open/floor/carpet/executive, -/area/station/command/meeting_room) "oGL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/red/line{ dir = 4 }, /obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth_large, /area/station/science/auxlab/firing_range) "oGQ" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/starboard/greater) +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "oHa" = ( /obj/structure/table, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -44827,10 +44963,10 @@ /turf/open/floor/iron/stairs, /area/station/maintenance/port/greater) "oHp" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "oHw" = ( @@ -44840,12 +44976,12 @@ /turf/open/floor/iron/smooth, /area/station/maintenance/solars/port/aft) "oHy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/corner/directional/south, /obj/effect/mapping_helpers/broken_floor, /obj/machinery/camera/autoname/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/hallway/secondary/dock) "oHG" = ( @@ -44859,6 +44995,12 @@ dir = 1 }, /area/station/security/execution/transfer) +"oIa" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/dock) "oIf" = ( /obj/effect/turf_decal/sand/plating, /obj/machinery/modular_computer/preset/engineering{ @@ -44868,10 +45010,13 @@ /turf/open/floor/iron/small, /area/station/maintenance/department/electrical) "oIx" = ( -/obj/structure/closet/firecloset, -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron/showroomfloor, -/area/station/commons/toilet/auxiliary) +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/side, +/area/station/science/xenobiology) "oIE" = ( /obj/effect/turf_decal/stripes/end{ dir = 1 @@ -44945,11 +45090,11 @@ /turf/open/floor/iron/smooth_large, /area/station/engineering/supermatter/room) "oJn" = ( -/obj/structure/cable, /obj/structure/disposalpipe/sorting/mail{ dir = 4 }, /obj/effect/mapping_helpers/mail_sorting/science/rd_office, +/obj/structure/cable, /turf/open/floor/iron/white/side, /area/station/science/research) "oJv" = ( @@ -44980,10 +45125,8 @@ /turf/open/floor/plating, /area/station/maintenance/central/lesser) "oJz" = ( -/obj/structure/bodycontainer/morgue{ - dir = 2 - }, -/obj/machinery/camera/autoname/directional/west, +/obj/structure/bodycontainer/morgue, +/obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark/small, /area/station/medical/morgue) "oJA" = ( @@ -45016,10 +45159,10 @@ /obj/effect/turf_decal/stripes/red/line{ dir = 8 }, +/obj/machinery/light/small/directional/west, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, -/obj/machinery/light/small/directional/west, /turf/open/floor/iron/smooth_large, /area/station/science/auxlab/firing_range) "oJO" = ( @@ -45033,8 +45176,8 @@ /turf/open/floor/plating, /area/station/maintenance/central/greater) "oJP" = ( -/obj/structure/cable, /obj/machinery/telecomms/broadcaster/preset_left, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 5 }, @@ -45059,13 +45202,6 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/iron/dark, /area/station/security/prison/safe) -"oKs" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tcomms) "oKz" = ( /obj/structure/cable, /obj/machinery/door/airlock/security{ @@ -45164,18 +45300,12 @@ }, /turf/open/floor/plating, /area/station/construction/mining/aux_base) -"oNH" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/obj/structure/alien/weeds, -/turf/open/floor/iron, -/area/station/maintenance/starboard/greater) "oNN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 10 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side{ dir = 8 }, @@ -45237,12 +45367,12 @@ /turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) "oNX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/research/glass{ name = "Cytology Zoo" }, /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/textured_half{ dir = 1 }, @@ -45265,11 +45395,11 @@ /turf/open/floor/iron, /area/station/hallway/secondary/dock) "oOh" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 5 }, /obj/machinery/light/small/directional/south, +/obj/structure/cable, /turf/open/floor/iron/white/side{ dir = 1 }, @@ -45343,6 +45473,12 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/maintenance/port/aft) +"oOR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/transit_tube/horizontal, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "oOV" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 8 @@ -45417,10 +45553,13 @@ /turf/open/floor/catwalk_floor/iron_dark, /area/station/command/heads_quarters/rd) "oPM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/cold/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white, -/area/station/science/cytology) +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "oPQ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/west, @@ -45469,10 +45608,10 @@ /turf/closed/wall/r_wall, /area/station/security/execution/transfer) "oQJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/science/cytology) "oQK" = ( @@ -45521,6 +45660,7 @@ /turf/open/floor/iron, /area/station/cargo/storage) "oRv" = ( +/obj/structure/cable, /obj/effect/turf_decal/tile/red/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 8 @@ -45530,11 +45670,7 @@ }, /obj/item/kirbyplants/random, /obj/item/radio/intercom/directional/south, -/obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, /turf/open/floor/iron/smooth, /area/station/service/greenroom) "oRw" = ( @@ -45560,9 +45696,9 @@ }, /area/station/service/chapel/storage) "oRB" = ( -/obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/east, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) "oRJ" = ( @@ -45582,6 +45718,7 @@ name = "St. Brendan's" }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/maintenance/starboard/greater) "oRW" = ( @@ -45620,13 +45757,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/carpet/lone, /area/station/service/chapel/office) -"oSH" = ( -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/misc/dirt/station, -/area/station/service/chapel) "oTf" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -45675,6 +45805,11 @@ /obj/effect/turf_decal/siding{ dir = 8 }, +/obj/item/book/manual/chef_recipes, +/obj/item/stack/package_wrap{ + pixel_y = 2 + }, +/obj/item/holosign_creator/robot_seat/restaurant, /turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) "oTN" = ( @@ -45726,19 +45861,16 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "oUB" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral/half/contrasted, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/iron/dark/side, /area/station/science/xenobiology) -"oUC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron/white, -/area/station/science/cytology) "oUJ" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -45789,12 +45921,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/smooth, /area/station/engineering/main) -"oVD" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/maintenance/port/aft) "oVE" = ( /obj/structure/table/wood, /obj/effect/turf_decal/siding/wood{ @@ -45809,9 +45935,10 @@ /turf/open/floor/iron/dark/diagonal, /area/station/service/bar) "oVF" = ( -/mob/living/basic/mining/lobstrosity, -/turf/open/misc/asteroid/airless, -/area/station/maintenance/department/engine) +/obj/structure/hedge, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "oVK" = ( /obj/structure/chair{ pixel_y = -2 @@ -45839,6 +45966,12 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/carpet/royalblue, /area/station/command/heads_quarters/captain) +"oWf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/dock) "oWg" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -45859,27 +45992,19 @@ /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) "oWr" = ( -/obj/structure/cable, /obj/machinery/door/airlock{ name = "Xenobiology Maintenance" }, /obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/aft) -"oWC" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/floor/iron/dark/small, -/area/station/tcommsat/server) "oXa" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 10 }, /obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) "oXs" = ( @@ -45916,11 +46041,8 @@ /turf/open/floor/iron, /area/station/hallway/primary/port) "oYj" = ( -/obj/machinery/light_switch/directional/north, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, +/obj/machinery/light_switch/directional/north, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "oYv" = ( @@ -45931,6 +46053,14 @@ dir = 8 }, /area/station/engineering/main) +"oYx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/tcommsat/server) "oYF" = ( /obj/structure/reflector/box/anchored{ dir = 4 @@ -45951,6 +46081,7 @@ dir = 8 }, /obj/item/radio/intercom/command/directional/east, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/command/corporate_dock) "oZi" = ( @@ -46003,13 +46134,10 @@ /turf/open/floor/iron, /area/station/commons/dorms) "oZY" = ( -/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) "oZZ" = ( @@ -46044,17 +46172,6 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/security/tram) -"paT" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research/glass{ - name = "Cubicle" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/cubicle) "paX" = ( /obj/structure/chair/bronze{ dir = 8 @@ -46131,17 +46248,6 @@ }, /turf/open/floor/iron/smooth, /area/station/service/greenroom) -"pbO" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "pbV" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 @@ -46149,12 +46255,12 @@ /turf/open/floor/iron, /area/station/cargo/lobby) "pca" = ( +/obj/structure/cable, /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line{ dir = 1 }, /obj/effect/turf_decal/stripes/red/line, -/obj/structure/cable, /obj/structure/disposalpipe/segment, /turf/open/floor/iron/small, /area/station/hallway/primary/central/fore) @@ -46174,14 +46280,22 @@ dir = 8 }, /area/station/command/heads_quarters/hos) -"pcE" = ( -/obj/structure/cable, +"pcy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/research) +"pcE" = ( /obj/machinery/door/airlock/research/glass{ name = "Break Room" }, /obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/research) "pcK" = ( @@ -46197,12 +46311,12 @@ }, /area/station/hallway/primary/central/fore) "pcL" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green{ dir = 6 }, /obj/machinery/light/small/directional/south, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/cafeteria, @@ -46254,7 +46368,6 @@ /turf/open/floor/plating, /area/station/maintenance/department/medical/central) "pdU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -46262,6 +46375,7 @@ pixel_x = -8; pixel_y = -4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/science/cytology) "pdY" = ( @@ -46287,6 +46401,18 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"pem" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/subspace/transmitter, +/obj/item/stock_parts/subspace/transmitter, +/obj/item/stock_parts/subspace/ansible, +/obj/item/stock_parts/subspace/ansible, +/obj/item/stock_parts/subspace/ansible, +/obj/item/stock_parts/subspace/amplifier, +/obj/item/stock_parts/subspace/amplifier, +/obj/item/stock_parts/subspace/amplifier, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "peE" = ( /obj/structure/closet, /turf/open/floor/iron/smooth, @@ -46370,16 +46496,18 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "pfC" = ( -/obj/effect/turf_decal/siding/thinplating_new/terracotta{ - dir = 5 - }, -/obj/structure/tank_dispenser/oxygen{ - pixel_x = -1; +/obj/structure/table/glass, +/obj/item/folder/blue{ pixel_y = 2 }, -/obj/machinery/camera/autoname/directional/north, -/turf/open/floor/iron/small, -/area/station/ai_monitored/command/storage/eva) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet/executive, +/area/station/command/meeting_room) "pfT" = ( /obj/structure/training_machine, /turf/open/floor/iron/smooth_large, @@ -46420,7 +46548,7 @@ }, /obj/effect/decal/cleanable/cobweb, /obj/item/radio/intercom/directional/north, -/obj/item/kirbyplants/fern, +/obj/machinery/smartfridge/organ, /turf/open/floor/iron/white, /area/station/science/cytology) "phd" = ( @@ -46480,11 +46608,17 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/stone, /area/station/service/bar) +"phM" = ( +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/cafeteria, +/area/station/science/breakroom) "phY" = ( /obj/structure/railing{ dir = 1 @@ -46539,6 +46673,15 @@ /obj/effect/landmark/start/chemist, /turf/open/floor/iron/dark/small, /area/station/medical/chemistry) +"piI" = ( +/obj/structure/table, +/obj/item/flashlight/lamp{ + pixel_y = 7; + pixel_x = -5 + }, +/obj/effect/spawner/random/medical/minor_healing, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "piJ" = ( /obj/structure/bed, /obj/item/bedsheet/purple, @@ -46586,10 +46729,10 @@ /turf/open/floor/plating, /area/station/maintenance/port/lesser) "pjA" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, @@ -46599,11 +46742,11 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "pjT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) "pjX" = ( @@ -46690,9 +46833,6 @@ }, /turf/open/floor/grass, /area/station/service/hydroponics) -"ple" = ( -/turf/open/floor/fake_snow, -/area/station/service/chapel) "plf" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46711,23 +46851,21 @@ /turf/open/floor/iron/small, /area/station/hallway/primary/starboard) "plz" = ( -/obj/effect/spawner/structure/window, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast Door" + }, +/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/command/corporate_showroom) "plB" = ( -/obj/structure/cable, /obj/machinery/door/airlock/centcom{ name = "Frozeno!" }, /obj/effect/mapping_helpers/airlock/abandoned, +/obj/structure/cable, /turf/open/floor/plating, /area/station/service/abandoned_gambling_den/gaming) -"plE" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/commons/fitness/locker_room) "plJ" = ( /obj/machinery/photocopier, /obj/effect/turf_decal/siding/wood{ @@ -46786,9 +46924,19 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/command/heads_quarters/rd) +"pmZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 1 + }, +/obj/structure/table/wood/fancy/red, +/turf/open/floor/wood/large, +/area/station/maintenance/department/science/xenobiology) "pnf" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -46799,10 +46947,10 @@ /turf/closed/wall/r_wall, /area/station/maintenance/department/electrical) "pnq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock/public{ name = "Locker Room" }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/textured_half, /area/station/commons/fitness/recreation) "pnt" = ( @@ -46810,6 +46958,11 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"pnB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "pnF" = ( /obj/effect/turf_decal/tile/green/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -46859,10 +47012,11 @@ /turf/open/floor/iron/white, /area/station/medical/treatment_center) "pof" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/grimy, -/area/station/commons/vacant_room/office) +/obj/effect/turf_decal/siding/thinplating_new/terracotta, +/obj/machinery/vending/coffee, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/meeting_room) "pog" = ( /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/freezer, @@ -46932,24 +47086,24 @@ /turf/open/floor/iron, /area/station/cargo/storage) "ppm" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/mapping_helpers/broken_floor, /obj/item/clothing/head/cone{ pixel_x = 6; pixel_y = 1 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "ppp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /obj/structure/chair{ pixel_y = -2 }, /obj/effect/turf_decal/siding/blue, -/obj/structure/cable, /turf/open/floor/iron/white/small, /area/station/command/heads_quarters/cmo) "pps" = ( @@ -47043,15 +47197,12 @@ "pqT" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/item/kirbyplants/random, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "prf" = ( -/obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, /obj/structure/sign/warning/electric_shock, +/obj/structure/cable, /turf/open/floor/engine, /area/station/science/cytology) "prh" = ( @@ -47090,13 +47241,13 @@ /turf/open/floor/catwalk_floor/iron_smooth, /area/station/command/teleporter) "psn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/research/glass{ name = "Gun Range" }, /obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth_half{ dir = 1 }, @@ -47158,10 +47309,10 @@ /turf/open/floor/plating, /area/station/maintenance/port/aft) "ptj" = ( +/obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/iron/diagonal, /area/station/science/auxlab/firing_range) "ptl" = ( @@ -47246,6 +47397,11 @@ }, /turf/open/floor/wood, /area/station/service/chapel/office) +"pvU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/table_or_rack, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/department/science/xenobiology) "pvY" = ( /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ dir = 1 @@ -47264,12 +47420,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"pwA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/white/side, -/area/station/science/research) "pwN" = ( /turf/open/floor/iron/dark/small, /area/station/service/chapel/storage) @@ -47320,17 +47470,12 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"pyh" = ( -/obj/structure/cable, -/obj/structure/broken_flooring/singular/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "pyk" = ( /obj/structure/closet/crate/trashcart/filled, /obj/structure/spider/stickyweb, /obj/effect/spawner/random/maintenance/four, -/obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) "pys" = ( @@ -47358,6 +47503,12 @@ "pzd" = ( /turf/closed/wall, /area/station/commons/fitness/recreation/entertainment) +"pzg" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "pzk" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47365,16 +47516,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"pzs" = ( -/obj/effect/turf_decal/box/red/corners, -/obj/effect/turf_decal/stripes/white/line{ - dir = 6 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "pzy" = ( /obj/structure/table, /obj/item/storage/box/prisoner{ @@ -47386,11 +47527,6 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron, /area/station/security/execution/transfer) -"pzK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding, -/turf/open/floor/iron/white/small, -/area/station/science/lab) "pzL" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -47403,14 +47539,22 @@ /obj/item/stack/sheet/mineral/titanium, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) +"pAg" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/misc/dirt/station, +/area/station/medical/morgue) "pAl" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/white{ dir = 5 }, /obj/machinery/light_switch/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) "pAo" = ( @@ -47446,11 +47590,12 @@ /obj/effect/turf_decal/stripes/white/line{ dir = 9 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, /turf/open/floor/engine, /area/station/science/xenobiology) +"pAC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/science/ordnance/testlab) "pAH" = ( /obj/machinery/vending/coffee, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -47507,16 +47652,16 @@ /turf/open/floor/iron/smooth, /area/station/cargo/warehouse) "pAY" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/blue{ dir = 4 }, /obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner{ dir = 1 }, @@ -47601,11 +47746,11 @@ /turf/closed/wall/r_wall, /area/station/engineering/atmos/project) "pCv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) "pCC" = ( @@ -47622,8 +47767,15 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/brig) +"pCT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "pCU" = ( -/obj/structure/cable, /obj/machinery/door/airlock{ name = "Supply Closet" }, @@ -47631,6 +47783,7 @@ /obj/effect/mapping_helpers/airlock/unres{ dir = 1 }, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/aft) "pDr" = ( @@ -47645,6 +47798,7 @@ /turf/open/floor/iron, /area/station/security/prison/rec) "pDw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/turf_decal/siding/blue{ dir = 4 }, @@ -47652,25 +47806,25 @@ name = "Medical Supplies"; req_access = list("medical") }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/white/small, /area/station/medical/storage) "pDD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wood{ dir = 8 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood/tile, /area/station/service/lawoffice) "pDK" = ( -/obj/effect/decal/cleanable/generic, -/obj/effect/spawner/random/structure/tank_holder, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +/obj/structure/rack, +/obj/effect/spawner/random/techstorage/engineering_all, +/obj/effect/turf_decal/tile/yellow/opposingcorners, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "pDQ" = ( -/obj/structure/cable, /obj/structure/table/glass, /obj/effect/decal/cleanable/dirt, /obj/item/folder/blue, @@ -47679,6 +47833,7 @@ /obj/item/clothing/glasses/sunglasses{ pixel_y = 15 }, +/obj/structure/cable, /turf/open/floor/wood/tile, /area/station/service/lawoffice) "pDU" = ( @@ -47692,15 +47847,6 @@ /obj/structure/chair/stool/directional/east, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) -"pEe" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "pEo" = ( /obj/item/radio/intercom/directional/west, /obj/structure/disposalpipe/segment, @@ -47718,10 +47864,10 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "pEq" = ( -/obj/structure/cable, /obj/structure/disposalpipe/junction/flip{ dir = 1 }, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, @@ -47787,12 +47933,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/dorms) -"pEy" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/science/robotics/lab) "pEB" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, @@ -47853,6 +47993,9 @@ name = "Freezer" }, /obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 1 + }, /turf/open/floor/iron/freezer, /area/station/service/kitchen) "pFk" = ( @@ -47862,11 +48005,9 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/greater) "pFI" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, @@ -47875,6 +48016,8 @@ codes_txt = "patrol;next_patrol=11.0-StarboardHall-RecreationHall"; location = "10.0-ScienceFoyer-StarboardHall" }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/starboard) "pFK" = ( @@ -47904,19 +48047,15 @@ /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) "pGp" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/camera/autoname/directional/south, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"pGD" = ( -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) "pGE" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -47929,11 +48068,10 @@ /turf/open/floor/circuit, /area/station/tcommsat/server) "pGK" = ( -/obj/structure/window/spawner/directional/east, -/obj/structure/window/spawner/directional/south, -/obj/structure/flora/rock/pile/jungle/style_random, -/turf/open/misc/sandy_dirt, -/area/station/hallway/secondary/entry) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/dock) "pGR" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -47973,16 +48111,10 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/chapel, /area/station/maintenance/starboard/greater) -"pHn" = ( -/obj/structure/cable, -/obj/structure/broken_flooring/singular/directional/east, -/obj/structure/alien/weeds, -/turf/open/floor/plating, -/area/station/maintenance/starboard/greater) "pHq" = ( -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/weather/snow/corner, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "pHw" = ( @@ -48011,9 +48143,12 @@ }, /area/station/commons/storage/tools) "pHI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/commons/fitness/recreation) +/obj/structure/hedge, +/obj/effect/turf_decal/siding/thinplating_new/terracotta/corner{ + dir = 8 + }, +/turf/open/floor/wood/tile, +/area/station/command/corporate_showroom) "pHJ" = ( /turf/open/floor/plating/rust, /area/station/maintenance/starboard/greater) @@ -48105,6 +48240,18 @@ }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) +"pIM" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/glass/shaker{ + pixel_x = -6 + }, +/obj/item/reagent_containers/cup/glass/bottle/wine/unlabeled{ + pixel_x = 6; + pixel_y = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "pIS" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -48135,15 +48282,20 @@ /turf/open/floor/iron, /area/station/cargo/storage) "pJr" = ( -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) -"pJu" = ( /obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"pJu" = ( /obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, /obj/machinery/door/airlock/command/glass{ name = "Telecommunications Server Room" }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 1 + }, /turf/open/floor/catwalk_floor/iron_dark, /area/station/tcommsat/server) "pJv" = ( @@ -48164,8 +48316,8 @@ /turf/open/floor/plating, /area/station/ai_monitored/security/armory) "pJz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/firealarm/directional/west, +/obj/structure/urinal/directional/south, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) "pJU" = ( @@ -48216,31 +48368,44 @@ /area/station/medical/medbay/lobby) "pKS" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ dir = 9 }, /obj/effect/turf_decal/siding/blue{ dir = 10 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/small, /area/station/command/heads_quarters/cmo) "pKU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "pKW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) +"pLe" = ( +/obj/structure/cable, +/obj/effect/landmark/navigate_destination, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/engineering/tech_storage, +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Tech Storage" + }, +/turf/open/floor/iron/dark/textured, +/area/station/engineering/storage/tech) "pLf" = ( /obj/machinery/griddle, /obj/effect/turf_decal/siding{ @@ -48248,15 +48413,6 @@ }, /turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) -"pLj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating_new/terracotta, -/obj/effect/turf_decal/siding/thinplating_new/terracotta/corner{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/ai_monitored/command/storage/eva) "pLl" = ( /obj/effect/spawner/random/vending/snackvend, /obj/effect/turf_decal/tile/red/opposingcorners{ @@ -48268,19 +48424,17 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/command{ - name = "E.V.A. Storage" - }, /obj/effect/turf_decal/delivery, /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/any/command/general, +/obj/machinery/door/airlock/command{ + name = "Council Chambers" + }, /obj/machinery/door/poddoor/preopen{ id = "bridge blast"; name = "Bridge Blast Door" }, -/turf/open/floor/iron/smooth_half{ - dir = 1 - }, +/turf/open/floor/iron/dark/textured_half, /area/station/command/corporate_showroom) "pLI" = ( /obj/structure/table/reinforced, @@ -48322,11 +48476,6 @@ }, /turf/open/floor/wood, /area/station/engineering/atmos/office) -"pMs" = ( -/obj/structure/transit_tube/horizontal, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/maintenance/starboard/aft) "pMA" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/catwalk_floor/iron_dark, @@ -48407,8 +48556,8 @@ /obj/effect/turf_decal/siding{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white/small, /area/station/science/lab) "pNZ" = ( @@ -48445,6 +48594,10 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"pOq" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "pOw" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -48474,6 +48627,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/prison) +"pOL" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer2{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "pOM" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line{ @@ -48501,15 +48660,10 @@ /turf/open/floor/wood/parquet, /area/station/service/library) "pOX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ +/obj/effect/turf_decal/trimline/neutral/end{ dir = 1 }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/start/coroner, -/turf/open/floor/iron/small, +/turf/open/floor/iron/dark, /area/station/medical/morgue) "pPj" = ( /obj/structure/mirror/directional/east, @@ -48530,12 +48684,16 @@ /turf/open/floor/iron/small, /area/station/engineering/atmos/storage/gas) "pPp" = ( +/obj/effect/spawner/random/engineering/tracking_beacon, /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 4 }, -/obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/engine, /area/station/science/xenobiology) +"pPD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/closed/wall, +/area/station/science/ordnance/testlab) "pPK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -48577,7 +48735,6 @@ /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) "pQE" = ( -/obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ id = "Xenolab"; @@ -48587,6 +48744,7 @@ id = "XenoPens"; name = "Xenobiology Lockdown" }, +/obj/structure/cable, /turf/open/floor/engine, /area/station/hallway/secondary/entry) "pQP" = ( @@ -48594,14 +48752,10 @@ /obj/machinery/atmospherics/components/unary/bluespace_sender, /turf/open/floor/iron/small, /area/station/engineering/atmos/office) -"pQY" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron/dark/side, -/area/station/science/xenobiology) +"pQW" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "pRc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -48714,23 +48868,20 @@ /turf/open/floor/plating, /area/station/maintenance/port/greater) "pST" = ( -/obj/structure/table, -/obj/item/plant_analyzer, -/obj/item/healthanalyzer{ - pixel_x = 5 - }, -/obj/machinery/camera/autoname/directional/west, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/greater) "pTh" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 10 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/smooth, +/area/station/hallway/secondary/command) +"pTi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, -/area/station/engineering/atmos) +/area/station/hallway/secondary/dock) "pTk" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -48806,11 +48957,12 @@ /turf/open/floor/iron/showroomfloor, /area/station/medical/coldroom) "pUy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/effect/turf_decal/siding/thinplating_new/terracotta, +/obj/structure/bookcase/random, +/obj/effect/turf_decal/siding/thinplating_new/terracotta{ + dir = 6 }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/wood/tile, +/turf/open/floor/iron/dark/smooth_large, /area/station/command/meeting_room) "pUA" = ( /obj/machinery/space_heater, @@ -48832,6 +48984,7 @@ pixel_y = 1 }, /obj/machinery/light/small/directional/east, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/command/corporate_dock) "pUM" = ( @@ -48855,10 +49008,10 @@ /turf/open/floor/iron/dark/small, /area/station/security/processing) "pVa" = ( +/obj/machinery/firealarm/directional/west, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, -/obj/machinery/firealarm/directional/west, /turf/open/floor/iron/white, /area/station/science/auxlab/firing_range) "pVj" = ( @@ -48869,17 +49022,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"pVq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/fore) "pVK" = ( /obj/effect/mapping_helpers/broken_floor, /turf/closed/wall, @@ -48904,15 +49046,6 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/tram) -"pVU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron/dark/side, -/area/station/science/xenobiology) "pVV" = ( /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron/stairs{ @@ -48920,10 +49053,10 @@ }, /area/station/cargo/lobby) "pWl" = ( +/obj/machinery/firealarm/directional/west, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/west, /turf/open/floor/iron/white/corner{ dir = 4 }, @@ -48938,12 +49071,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"pWw" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, -/turf/open/misc/dirt/station, -/area/station/service/chapel) "pWB" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -48952,9 +49079,9 @@ /area/station/command/heads_quarters/hop) "pWC" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/medical/glass{ name = "Primary Treatment Centre" }, @@ -49021,9 +49148,13 @@ dir = 9 }, /obj/structure/table/glass, +/obj/item/storage/box/monkeycubes{ + pixel_x = -6; + pixel_y = 5 + }, /obj/item/storage/box/monkeycubes{ pixel_x = 6; - pixel_y = 4 + pixel_y = 2 }, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) @@ -49092,18 +49223,15 @@ /turf/open/floor/iron/dark, /area/station/medical/medbay/central) "pXQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/science/robotics/augments) "pXS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/landmark/start/hangover, /obj/structure/broken_flooring/pile/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/hallway/secondary/dock) "pYi" = ( @@ -49206,10 +49334,16 @@ /obj/item/shard/titanium, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"qac" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/lower) "qak" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/fake_snow, +/turf/open/floor/iron/herringbone, /area/station/commons/dorms) "qan" = ( /obj/structure/cable/layer3, @@ -49277,12 +49411,6 @@ dir = 8 }, /area/station/hallway/secondary/dock) -"qbo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/science/robotics/augments) "qbq" = ( /obj/structure/chair{ dir = 1 @@ -49306,13 +49434,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/checkpoint/supply) -"qbz" = ( -/obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/maintenance/port/aft) "qbA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/small, @@ -49331,12 +49452,12 @@ /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) "qbN" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/purple{ dir = 4 }, /obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) "qbP" = ( @@ -49353,20 +49474,15 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) -"qcf" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark/side, -/area/station/hallway/secondary/construction) "qcr" = ( /obj/structure/flora/bush/flowers_yw/style_random, /mob/living/carbon/human/species/monkey, /turf/open/floor/grass, /area/station/medical/virology) "qcv" = ( +/obj/effect/landmark/navigate_destination/dockarrival, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/navigate_destination/dockarrival, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "qcB" = ( @@ -49427,11 +49543,6 @@ dir = 1 }, /area/station/hallway/primary/aft) -"qdN" = ( -/obj/machinery/status_display/ai/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) "qdR" = ( /obj/structure/toilet, /obj/machinery/light/small/directional/west, @@ -49441,9 +49552,6 @@ normaldoorcontrol = 1; specialfunctions = 4 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) "qdS" = ( @@ -49476,6 +49584,36 @@ "qei" = ( /turf/closed/wall, /area/station/science/ordnance/storage) +"qek" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/siding/dark{ + dir = 10 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/tank_dispenser/oxygen{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/smooth_corner{ + dir = 4 + }, +/area/station/ai_monitored/command/storage/eva) +"qem" = ( +/obj/effect/turf_decal/box/red/corners{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "qen" = ( /obj/structure/table, /obj/item/clothing/gloves/boxing, @@ -49531,12 +49669,12 @@ /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/captain/private) "qfA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock{ name = "Law Office" }, /obj/effect/mapping_helpers/airlock/access/any/service/lawyer, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/textured_half, /area/station/service/lawoffice) "qfK" = ( @@ -49558,6 +49696,20 @@ /obj/machinery/status_display/evac/directional/east, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"qgi" = ( +/obj/structure/rack, +/obj/item/poster/random_official{ + pixel_y = 7 + }, +/obj/item/poster/random_official{ + pixel_y = 3 + }, +/obj/item/poster/random_official, +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/science/xenobiology) "qgj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -49566,12 +49718,6 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"qgq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/science/lower) "qgs" = ( /obj/structure/cable, /obj/item/kirbyplants/random/fullysynthetic, @@ -49592,11 +49738,11 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "qgx" = ( -/obj/structure/cable, /obj/machinery/door/airlock{ name = "Law Office Maintenance" }, /obj/effect/mapping_helpers/airlock/access/any/service/lawyer, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) "qgJ" = ( @@ -49616,8 +49762,14 @@ "qgZ" = ( /turf/open/floor/carpet/lone, /area/station/service/chapel/office) -"qhh" = ( +"qhd" = ( /obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) +"qhh" = ( /obj/structure/table/glass, /obj/item/book/manual/wiki/cytology{ pixel_x = 6; @@ -49632,18 +49784,23 @@ pixel_y = 2 }, /obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/cytology) -"qhD" = ( +"qhl" = ( +/obj/structure/rack, +/obj/effect/spawner/random/techstorage/rnd_all, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"qhv" = ( +/obj/structure/broken_flooring/corner/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) +/turf/open/floor/plating, +/area/station/hallway/secondary/dock) "qhF" = ( -/obj/structure/cable, /obj/effect/turf_decal/trimline/white/line{ dir = 6 }, @@ -49651,6 +49808,7 @@ dir = 4 }, /obj/effect/turf_decal/trimline/white/mid_joiner, +/obj/structure/cable, /turf/open/floor/wood, /area/station/commons/fitness/recreation) "qhR" = ( @@ -49755,14 +49913,6 @@ /obj/structure/table, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) -"qiN" = ( -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/tcommsat/server) "qjh" = ( /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/white, @@ -49816,10 +49966,10 @@ /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/aft) "qka" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/science/cytology) "qke" = ( @@ -49899,28 +50049,15 @@ /turf/open/floor/iron, /area/station/hallway/secondary/entry) "qly" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/station/ai_monitored/command/storage/eva) -"qlz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ - dir = 9 - }, -/turf/open/floor/circuit, -/area/station/tcommsat/server) +/obj/effect/turf_decal/siding/thinplating_new/terracotta, +/turf/open/floor/wood/tile, +/area/station/command/meeting_room) "qlP" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/turf_decal/stripes/line{ - dir = 5 +/obj/structure/chair{ + dir = 1 }, -/obj/structure/window/spawner/directional/east, -/turf/open/floor/plating, -/area/station/ai_monitored/command/storage/eva) +/turf/open/floor/wood/tile, +/area/station/command/meeting_room) "qlV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -49929,17 +50066,10 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"qmb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/broken_flooring/corner/directional/south, -/turf/open/floor/plating, -/area/station/hallway/secondary/dock) "qme" = ( /obj/machinery/atmospherics/components/binary/volume_pump{ dir = 8 }, -/obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/engine, /area/station/engineering/supermatter/room) "qmv" = ( @@ -49949,6 +50079,15 @@ /obj/effect/mapping_helpers/airlock/access/any/engineering/general, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"qmy" = ( +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/white/corner{ + dir = 8 + }, +/area/station/hallway/secondary/dock) "qmz" = ( /obj/structure/table/wood, /turf/open/floor/wood, @@ -50008,17 +50147,17 @@ /turf/open/floor/iron/dark/small, /area/station/security/processing) "qnt" = ( -/obj/structure/cable, /obj/machinery/power/solar{ id = "forestarboard"; name = "Fore-Starboard Solar Array" }, +/obj/structure/cable, /turf/open/floor/iron/solarpanel/airless, /area/station/solars/starboard/fore) "qnJ" = ( +/obj/machinery/airalarm/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/airalarm/directional/east, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) "qnU" = ( @@ -50031,14 +50170,15 @@ }, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/qm) +"qod" = ( +/obj/effect/spawner/random/structure/crate_abandoned, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "qoj" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/window/right/directional/west{ - name = "Corpse Arrivals" +/obj/structure/bodycontainer/morgue{ + dir = 8 }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/south, -/turf/open/floor/plating, +/turf/open/floor/iron/dark/small, /area/station/medical/morgue) "qop" = ( /obj/structure/cable, @@ -50054,12 +50194,14 @@ /turf/open/floor/plating, /area/station/commons/dorms) "qoA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/landmark/generic_maintenance_landmark, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +/obj/machinery/holopad, +/obj/effect/spawner/random/engineering/tracking_beacon, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) "qoD" = ( /turf/closed/wall/r_wall, /area/station/command/corporate_showroom) @@ -50108,13 +50250,6 @@ /obj/item/restraints/handcuffs, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) -"qqd" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "qqB" = ( /obj/machinery/navbeacon{ codes_txt = "delivery;dir=8"; @@ -50157,13 +50292,13 @@ /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/captain/private) "qrm" = ( -/obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, /turf/open/floor/eighties, /area/station/service/abandoned_gambling_den/gaming) "qrB" = ( -/obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, /turf/open/floor/plating, /area/station/science/xenobiology) "qrJ" = ( @@ -50178,8 +50313,8 @@ "qsg" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/terminal, -/obj/structure/cable, /obj/structure/chair/stool/directional/east, +/obj/structure/cable, /turf/open/floor/circuit, /area/station/tcommsat/server) "qsi" = ( @@ -50224,15 +50359,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) -"qsV" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 5 - }, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/freezerchamber) "qsY" = ( /obj/structure/chair/stool/directional/west, /obj/effect/turf_decal/siding/wood{ @@ -50280,6 +50406,11 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/central/greater) +"qug" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/structure/cable, +/turf/open/floor/iron/dark/corner, +/area/station/engineering/storage/tech) "quq" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/closet/crate/cardboard, @@ -50343,6 +50474,15 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/security/courtroom) +"qvF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "qvL" = ( /obj/effect/turf_decal/siding/wood, /obj/item/kirbyplants/random, @@ -50356,14 +50496,12 @@ /obj/effect/landmark/start/medical_doctor, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"qwi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, +"qwc" = ( +/obj/structure/broken_flooring/singular/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /turf/open/floor/iron, -/area/station/maintenance/department/medical/central) +/area/station/maintenance/starboard/greater) "qwq" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/computer/prisoner/management{ @@ -50431,11 +50569,11 @@ /turf/open/floor/iron/solarpanel/airless, /area/station/solars/port) "qxi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) "qxv" = ( @@ -50447,12 +50585,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security) -"qxB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/tcommsat/server) "qxN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -50463,8 +50595,8 @@ /turf/open/floor/iron/white/textured_large, /area/station/command/heads_quarters/cmo) "qxP" = ( -/obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) "qxX" = ( @@ -50481,9 +50613,6 @@ dir = 8 }, /obj/effect/turf_decal/siding/wideplating/corner, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/wood, /area/station/engineering/main) "qyx" = ( @@ -50514,6 +50643,12 @@ /obj/structure/railing, /turf/open/space/basic, /area/space/nearstation) +"qyO" = ( +/obj/structure/broken_flooring/corner/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "qyT" = ( /turf/closed/wall, /area/station/hallway/secondary/exit/departure_lounge) @@ -50629,6 +50764,11 @@ /obj/machinery/bluespace_vendor/directional/north, /turf/open/floor/iron, /area/station/commons/dorms) +"qAl" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "qAn" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -50767,24 +50907,24 @@ /area/station/hallway/secondary/exit/departure_lounge) "qCc" = ( /obj/machinery/light/cold/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "qCj" = ( /obj/machinery/airalarm/directional/south, /obj/item/kirbyplants/organic/applebush, -/turf/open/floor/wood/tile, -/area/station/command/corporate_showroom) -"qCq" = ( -/obj/structure/cable, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/line{ +/obj/effect/turf_decal/siding/thinplating_new/terracotta/corner{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron/dark, -/area/station/science/xenobiology) +/turf/open/floor/wood/tile, +/area/station/command/corporate_showroom) +"qCx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/fore) "qCG" = ( /obj/effect/turf_decal/siding/white{ dir = 9 @@ -50830,9 +50970,6 @@ pixel_x = -4; pixel_y = 4 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, /turf/open/floor/iron/large, /area/station/command/heads_quarters/hop) "qCK" = ( @@ -50864,27 +51001,14 @@ }, /turf/open/floor/iron, /area/station/security/warden) -"qCY" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ - dir = 8 - }, -/turf/open/floor/wood/tile, -/area/station/tcommsat/server) "qDd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /obj/machinery/door/airlock{ name = "Theater Greenroom" }, /obj/effect/mapping_helpers/airlock/access/all/service/theatre, -/obj/structure/cable, /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment{ dir = 4 @@ -50894,12 +51018,12 @@ }, /area/station/service/greenroom) "qDi" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wood{ dir = 8 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/simple/dark/hidden, /turf/open/floor/wood/tile, /area/station/tcommsat/server) @@ -50994,10 +51118,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/checkpoint/customs) -"qEB" = ( -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/science/lower) "qEO" = ( /obj/machinery/camera/autoname/directional/east, /obj/machinery/status_display/evac/directional/east, @@ -51023,13 +51143,13 @@ /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) "qFb" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/white/side, /area/station/science/lower) "qFc" = ( @@ -51063,12 +51183,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/chemistry) -"qFL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron/herringbone, -/area/station/commons/dorms) "qGc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/firedoor, @@ -51098,6 +51212,13 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/grass/Airless, /area/station/hallway/primary/central/aft) +"qGk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark/diagonal, +/area/station/ai_monitored/command/storage/eva) "qGu" = ( /obj/effect/turf_decal/siding/dark_red, /obj/item/radio/intercom/directional/south, @@ -51107,14 +51228,14 @@ /turf/open/floor/stone, /area/station/command/heads_quarters/hos) "qGB" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/decal/cleanable/glass, /obj/effect/decal/cleanable/blood/gibs/down, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "qGH" = ( @@ -51135,10 +51256,6 @@ /obj/machinery/status_display/ai/directional/west, /turf/open/floor/grass, /area/station/service/chapel) -"qHt" = ( -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/maintenance/starboard/greater) "qHH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/firealarm/directional/south, @@ -51154,10 +51271,10 @@ /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) "qHY" = ( +/obj/machinery/firealarm/directional/north, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/north, /turf/open/floor/iron/white/side, /area/station/science/lower) "qIb" = ( @@ -51182,7 +51299,6 @@ /turf/closed/wall, /area/station/medical/cryo) "qIk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, /turf/open/floor/circuit/telecomms/mainframe, /area/station/science/xenobiology) "qIp" = ( @@ -51197,28 +51313,22 @@ /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) -"qIC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sink/directional/east, -/obj/structure/mirror/directional/west, -/turf/open/floor/iron/showroomfloor, -/area/station/commons/toilet/auxiliary) "qID" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/status_display/evac/directional/north, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron/white/side, /area/station/science/lower) "qIM" = ( -/obj/structure/cable, /obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/siding/corner{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/cytology) "qIQ" = ( @@ -51226,10 +51336,10 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/greater) "qIZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/mapping_helpers/broken_floor, /obj/structure/broken_flooring/pile/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/hallway/secondary/dock) "qJq" = ( @@ -51268,12 +51378,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) -"qKt" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/science/xenobiology) "qKx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -51380,6 +51484,11 @@ }, /turf/closed/wall, /area/station/maintenance/central/greater) +"qLE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/small, +/area/station/science/ordnance/storage) "qLU" = ( /obj/effect/turf_decal/tile/green/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -51403,10 +51512,10 @@ /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) "qMb" = ( -/obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, +/obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) "qMj" = ( @@ -51418,9 +51527,6 @@ dir = 1 }, /obj/machinery/camera/autoname/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /turf/open/floor/iron, /area/station/security/courtroom) "qMG" = ( @@ -51504,8 +51610,8 @@ /turf/open/floor/engine/n2o, /area/station/engineering/atmos) "qOG" = ( -/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/siding/wideplating_new/terracotta{ dir = 1 }, @@ -51558,9 +51664,11 @@ /turf/open/floor/iron/dark/textured, /area/station/engineering/atmos/office) "qPJ" = ( -/obj/machinery/status_display/ai/directional/north, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/small, +/area/station/science/ordnance/storage) "qPN" = ( /turf/closed/wall/r_wall, /area/station/security/prison/safe) @@ -51591,7 +51699,6 @@ dir = 6 }, /obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/iron/dark/small, /area/station/medical/chemistry) "qQv" = ( @@ -51646,29 +51753,26 @@ pixel_x = 1; pixel_y = 3 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, /turf/open/floor/wood, /area/station/command/heads_quarters/ce) +"qRa" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/white/small, +/area/station/science/ordnance/storage) "qRb" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/structure/railing, /turf/open/floor/iron, /area/station/engineering/atmos) -"qRh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "qRo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/public{ name = "Abandoned Dock" }, /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "qRs" = ( @@ -51719,11 +51823,6 @@ /obj/machinery/holopad, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"qRO" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "qRU" = ( /obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ dir = 8 @@ -51751,8 +51850,8 @@ /turf/open/floor/carpet, /area/station/service/library) "qSh" = ( -/obj/structure/cable, /obj/machinery/firealarm/directional/east, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) "qSk" = ( @@ -51792,10 +51891,10 @@ /area/station/hallway/secondary/command) "qTb" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/mapping_helpers/broken_floor, /obj/machinery/light/floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side{ dir = 8 }, @@ -51812,12 +51911,12 @@ }, /area/station/science/research) "qTk" = ( -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 8 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "qTn" = ( @@ -51865,8 +51964,8 @@ /area/station/service/bar/backroom) "qTv" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/structure/furniture_parts, -/turf/open/floor/plating, +/obj/effect/spawner/random/structure/grille, +/turf/open/floor/iron/dark, /area/station/maintenance/department/science/xenobiology) "qTz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -51904,24 +52003,14 @@ /obj/effect/turf_decal/loading_area, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"qUa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/hallway/secondary/recreation) -"qUe" = ( -/obj/structure/cable, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plating, -/area/station/maintenance/starboard/greater) "qUf" = ( -/obj/effect/turf_decal/tile/blue{ +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, -/obj/item/radio/intercom/directional/east, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ +/obj/effect/turf_decal/tile/blue{ dir = 1 }, +/obj/item/radio/intercom/directional/east, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "qUm" = ( @@ -51968,12 +52057,12 @@ /turf/open/floor/iron/smooth, /area/station/engineering/main) "qUL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ dir = 6 }, -/obj/structure/cable, /obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/lesser) "qUR" = ( @@ -51982,9 +52071,6 @@ dir = 8 }, /obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) "qUS" = ( @@ -51997,17 +52083,17 @@ /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) "qUZ" = ( -/obj/structure/cable, /obj/structure/lattice/catwalk, +/obj/structure/cable, /turf/open/space/basic, /area/station/solars/starboard/fore) "qVa" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash, /turf/open/floor/plating, @@ -52019,12 +52105,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/eighties/red, /area/station/hallway/primary/central/fore) -"qVn" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "qVo" = ( /obj/structure/cable, /obj/structure/chair/sofa/corp/left{ @@ -52083,10 +52163,10 @@ /turf/open/floor/wood, /area/station/cargo/boutique) "qWg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock{ name = "Bathrooms" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/textured_half, /area/station/commons/toilet/restrooms) "qWh" = ( @@ -52110,13 +52190,6 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron, /area/station/commons/dorms) -"qWD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "qWF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -52147,11 +52220,20 @@ /turf/open/floor/iron/grimy, /area/station/service/library/private) "qWL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/command/general, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast Door" + }, +/obj/machinery/door/airlock/command{ + name = "Council Chambers" + }, +/turf/open/floor/iron/dark/textured_half{ dir = 1 }, -/turf/open/floor/iron/cafeteria, -/area/station/science/breakroom) +/area/station/command/heads_quarters/hop) "qWQ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -52206,16 +52288,16 @@ /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) "qXh" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/blue{ dir = 4 }, /obj/structure/sign/poster/official/random/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner{ dir = 1 }, @@ -52227,10 +52309,6 @@ /obj/effect/turf_decal/tile/dark_red/fourcorners, /turf/open/floor/iron, /area/station/security/tram) -"qXk" = ( -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron/dark, -/area/station/security/prison/workout) "qXl" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -52322,9 +52400,9 @@ /turf/open/floor/iron/small, /area/station/hallway/secondary/service) "qYv" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment, /obj/machinery/airalarm/directional/east, +/obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) "qYy" = ( @@ -52414,11 +52492,11 @@ /turf/open/floor/iron, /area/station/hallway/primary/aft) "qZw" = ( +/obj/structure/cable, /obj/machinery/door/airlock/public/glass{ name = "Dormatories" }, /obj/machinery/door/firedoor, -/obj/structure/cable, /turf/open/floor/iron/textured_half{ dir = 8 }, @@ -52519,13 +52597,10 @@ /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) "raZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/camera/autoname/directional/west, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) "rbc" = ( @@ -52559,11 +52634,11 @@ /turf/open/floor/iron/white/small, /area/station/medical/treatment_center) "rbH" = ( -/obj/item/kirbyplants/random, -/obj/machinery/light_switch/directional/west, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/science/ordnance/testlab) "rbI" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 10 @@ -52576,9 +52651,6 @@ /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 1 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "rbT" = ( @@ -52590,11 +52662,11 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "rbW" = ( +/obj/structure/cable, /obj/machinery/door/airlock{ name = "Maintenance" }, /obj/effect/mapping_helpers/airlock/access/any/security/general, -/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/lesser) "rce" = ( @@ -52628,8 +52700,10 @@ /turf/open/floor/plating, /area/station/maintenance/department/medical/central) "rci" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/ordnance) @@ -52712,19 +52786,16 @@ /area/station/service/abandoned_gambling_den/gaming) "rdA" = ( /obj/machinery/light/small/directional/south, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, /obj/effect/turf_decal/siding/wideplating_new/terracotta{ dir = 6 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, /turf/open/floor/wood/tile, /area/station/maintenance/central/lesser) "rdH" = ( /obj/machinery/keycard_auth/wall_mounted/directional/south, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, /turf/open/floor/mineral/titanium, /area/station/command/heads_quarters/ce) "rdM" = ( @@ -52760,10 +52831,10 @@ /turf/open/floor/iron/white/small, /area/station/security/warden) "reg" = ( -/obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, /obj/structure/steam_vent, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) "reh" = ( @@ -52803,17 +52874,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/smooth_large, /area/station/maintenance/central/lesser) -"reE" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating_new/terracotta{ +"rez" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ dir = 1 }, -/obj/effect/turf_decal/siding/thinplating_new/terracotta, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/iron/small, -/area/station/ai_monitored/command/storage/eva) +/turf/open/floor/iron/white/small, +/area/station/science/ordnance/storage) +"reE" = ( +/obj/machinery/holopad, +/obj/structure/cable, +/turf/open/floor/wood/tile, +/area/station/command/meeting_room) "reG" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 1 @@ -52842,10 +52913,6 @@ "reM" = ( /turf/closed/wall/r_wall, /area/station/security/checkpoint/escape) -"reN" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "reS" = ( /obj/effect/spawner/random/trash, /obj/effect/decal/cleanable/dirt, @@ -52860,6 +52927,10 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/security/execution/transfer) +"rff" = ( +/obj/effect/spawner/random/trash/caution_sign, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "rfi" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -52881,9 +52952,6 @@ "rfB" = ( /obj/item/kirbyplants/random, /obj/structure/sign/poster/official/random/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "rfD" = ( @@ -52895,9 +52963,9 @@ /turf/open/floor/engine, /area/station/science/xenobiology) "rfO" = ( +/obj/item/radio/intercom/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/intercom/directional/west, /turf/open/floor/iron, /area/station/command/heads_quarters/rd) "rfP" = ( @@ -52912,6 +52980,9 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "rfW" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 @@ -52919,15 +52990,8 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 8 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"rfZ" = ( -/obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/commons/vacant_room/office) "rgA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, @@ -52939,9 +53003,6 @@ dir = 8 }, /obj/item/kirbyplants/random/fullysynthetic, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "rgM" = ( @@ -53017,19 +53078,10 @@ }, /turf/open/floor/iron, /area/station/cargo/lobby) -"rhH" = ( -/obj/effect/turf_decal/tile/blue, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron/white/corner{ - dir = 8 - }, -/area/station/hallway/secondary/dock) "rhL" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) "rig" = ( @@ -53042,26 +53094,26 @@ /turf/open/misc/dirt/station, /area/station/service/chapel) "riq" = ( -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/obj/structure/cable, /obj/machinery/door/window/brigdoor/left/directional/east{ name = "Secure Creature Pen"; req_access = list("research") }, +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 4 + }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/science/xenobiology) "rir" = ( /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) "riS" = ( -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 1 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 1 + }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "riV" = ( @@ -53076,9 +53128,6 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "rjo" = ( @@ -53166,15 +53215,23 @@ /turf/open/floor/iron/small, /area/station/hallway/primary/central/fore) "rkI" = ( -/obj/structure/disposalpipe/trunk, -/obj/structure/disposaloutlet{ - desc = "An outlet for the pneumatic disposal system. This one seems designed for rapid corpse disposal."; - name = "rapid corpse mover 9000" +/obj/machinery/door/airlock/highsecurity{ + name = "Secure Tech Storage" }, -/obj/structure/window/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/plating, -/area/station/medical/morgue) +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/mapping_helpers/airlock/access/all/engineering/tech_storage, +/obj/effect/mapping_helpers/airlock/access/all/command/eva, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/smooth_half{ + dir = 1 + }, +/area/station/engineering/storage/tech) "rkM" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 6 @@ -53208,6 +53265,11 @@ dir = 1 }, /area/station/commons/dorms) +"rln" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "rlq" = ( /obj/structure/bed{ dir = 4 @@ -53226,22 +53288,16 @@ "rlr" = ( /turf/closed/wall, /area/station/medical/storage) -"rlH" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/construction/mining/aux_base) "rlM" = ( /obj/effect/mapping_helpers/broken_floor, /obj/machinery/air_sensor/ordnance_burn_chamber, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) "rma" = ( +/obj/machinery/camera/autoname/directional/north, /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 6 }, -/obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) "rmc" = ( @@ -53269,18 +53325,15 @@ /obj/structure/table, /obj/effect/turf_decal/tile/blue/fourcorners, /obj/item/book/manual/wiki/security_space_law, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/security/courtroom) "rnc" = ( +/obj/structure/cable, /obj/item/kirbyplants/random, /obj/effect/turf_decal/siding/thinplating_new{ dir = 9 }, /obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) @@ -53321,18 +53374,6 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/wood/tile, /area/station/maintenance/port/lesser) -"roz" = ( -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) -"roC" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/stairs{ - dir = 8 - }, -/area/station/science/xenobiology) "roD" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, @@ -53353,6 +53394,19 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) +"rpc" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/science/xenobiology) "rpg" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -53446,9 +53500,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "rqF" = ( @@ -53461,8 +53512,18 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "rrb" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/catwalk_floor/iron_dark, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, /area/station/science/xenobiology) "rro" = ( /obj/structure/railing, @@ -53475,10 +53536,10 @@ }, /area/station/engineering/main) "rrp" = ( +/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/structure/cable, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "rrt" = ( @@ -53531,14 +53592,13 @@ /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/item/radio/intercom/directional/east, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/lawoffice) "rsl" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/table, /obj/item/stock_parts/subspace/ansible, @@ -53548,15 +53608,13 @@ /obj/item/stock_parts/subspace/crystal, /obj/item/stock_parts/subspace/crystal, /obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/engineering/storage/tcomms) "rsr" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/mineral/titanium, /area/station/command/heads_quarters/ce) "rss" = ( @@ -53589,24 +53647,48 @@ "rsL" = ( /turf/closed/wall/r_wall, /area/station/maintenance/starboard/fore) +"rsX" = ( +/obj/effect/turf_decal/siding{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/white/small, +/area/station/science/lab) "rsZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) +"rta" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "rth" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain) "rto" = ( -/obj/effect/turf_decal/siding/thinplating_new/terracotta{ - dir = 1 +/obj/structure/table/glass, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 11; + pixel_y = 6 }, -/obj/structure/sign/poster/official/random/directional/north, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/small, -/area/station/ai_monitored/command/storage/eva) +/obj/item/folder/blue{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet/executive, +/area/station/command/meeting_room) "rtH" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -53676,7 +53758,7 @@ /obj/machinery/camera/directional/south{ c_tag = "atmospherics - lower" }, -/turf/open/floor/fake_snow, +/turf/open/floor/iron, /area/station/engineering/atmos) "rui" = ( /obj/structure/cable, @@ -53688,6 +53770,13 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/checkpoint/engineering) +"ruB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/lower) "ruC" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/effect/turf_decal/tile/green/anticorner/contrasted, @@ -53785,9 +53874,6 @@ "rwo" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/machinery/camera/directional/west, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "rwq" = ( @@ -53886,6 +53972,19 @@ /obj/item/razor, /turf/open/floor/iron/dark/small, /area/station/security/execution/education) +"rxB" = ( +/obj/structure/curtain/cloth/fancy/mechanical/start_closed{ + desc = "A set of curtains serving as a fancy theater backdrop. They can only be opened by a button."; + id = "abandoned_brewery"; + name = "Abandoned Brewery" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/maintenance/department/science/xenobiology) "rxD" = ( /obj/structure/extinguisher_cabinet/directional/south, /obj/effect/turf_decal/tile/blue, @@ -53950,15 +54049,13 @@ /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) "rxZ" = ( -/obj/item/book/manual/chef_recipes, -/obj/item/stack/package_wrap{ - pixel_y = 2 - }, -/obj/item/holosign_creator/robot_seat/restaurant, /obj/effect/turf_decal/siding{ dir = 9 }, -/obj/structure/table, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, /turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) "rya" = ( @@ -53967,12 +54064,6 @@ }, /turf/open/floor/grass, /area/station/service/chapel) -"ryh" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/commons/storage/art) "ryi" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -53981,9 +54072,9 @@ /turf/open/floor/plating, /area/station/maintenance/fore/lesser) "ryk" = ( +/obj/machinery/status_display/ai/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron/white/side{ dir = 1 }, @@ -54028,14 +54119,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/cargo/storage) -"rza" = ( -/obj/structure/disposalpipe/junction{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/cafeteria, -/area/station/science/breakroom) "rzb" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -54049,6 +54132,9 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4 + }, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) "rze" = ( @@ -54077,6 +54163,13 @@ dir = 1 }, /area/station/hallway/secondary/entry) +"rzO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "rzX" = ( /obj/structure/hedge, /obj/machinery/status_display/supply{ @@ -54144,6 +54237,12 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/iron/textured_half, /area/station/security/brig/entrance) +"rBc" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "rBe" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -54153,18 +54252,13 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"rBg" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/science/ordnance/testlab) "rBq" = ( -/obj/structure/cable, /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/dark_red/fourcorners, /obj/item/restraints/handcuffs, /obj/machinery/light/small/directional/west, /obj/machinery/airalarm/directional/west, +/obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) "rBy" = ( @@ -54172,10 +54266,11 @@ /turf/open/floor/iron, /area/station/security/prison) "rBz" = ( -/obj/structure/bodycontainer/morgue{ - dir = 2 +/obj/effect/turf_decal/trimline/neutral/warning{ + dir = 4 }, -/obj/machinery/light/small/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark/small, /area/station/medical/morgue) "rBE" = ( @@ -54204,14 +54299,14 @@ /turf/open/floor/iron, /area/station/commons/dorms) "rBY" = ( -/obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "rCa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark/corner{ dir = 1 }, @@ -54271,14 +54366,14 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "rDD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/railing{ dir = 1 }, /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/white/corner, /area/station/commons/dorms) @@ -54355,11 +54450,11 @@ /area/station/hallway/primary/port) "rEY" = ( /obj/effect/turf_decal/tile/blue, -/obj/machinery/pdapainter{ +/obj/machinery/light/directional/north, +/obj/structure/filingcabinet/chestdrawer{ pixel_y = 2 }, -/obj/machinery/light/directional/north, -/obj/structure/sign/poster/official/random/directional/north, +/obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron/dark/textured_edge{ dir = 1 }, @@ -54371,11 +54466,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth, /area/station/engineering/main) -"rFi" = ( -/obj/item/kirbyplants/random, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "rFm" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -54390,11 +54480,11 @@ /area/station/hallway/primary/central/fore) "rFp" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/window/reinforced/spawner/directional/east, /obj/machinery/computer/pod/old/mass_driver_controller/ordnancedriver{ pixel_x = 24 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/side{ dir = 4 }, @@ -54429,7 +54519,6 @@ /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/xenobiology) "rFH" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -54437,6 +54526,7 @@ name = "Research Delivery"; req_access = list("science") }, +/obj/structure/cable, /turf/open/floor/iron/white/side{ dir = 6 }, @@ -54452,13 +54542,13 @@ /turf/open/floor/iron/white, /area/station/medical/treatment_center) "rGp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/research/glass{ name = "Testing Chamber" }, /obj/effect/mapping_helpers/airlock/access/all/science/ordnance, /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) "rGB" = ( @@ -54475,16 +54565,13 @@ /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 1 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/white, /area/station/medical/virology) "rGO" = ( -/obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/structure/table, /obj/item/screwdriver, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/secondary/construction) "rHe" = ( @@ -54503,9 +54590,6 @@ }, /obj/effect/turf_decal/tile/blue, /obj/machinery/vending/cigarette, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) "rHp" = ( @@ -54613,6 +54697,7 @@ /mob/living/carbon/human/species/monkey{ name = "George" }, +/obj/structure/cable, /turf/open/floor/grass, /area/station/science/xenobiology) "rJB" = ( @@ -54667,6 +54752,15 @@ }, /turf/open/floor/iron, /area/station/science/cytology) +"rKE" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/lower) "rKR" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -54700,9 +54794,6 @@ /obj/effect/turf_decal/stripes/white/line{ dir = 10 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /turf/open/floor/engine, /area/station/science/explab) "rLp" = ( @@ -54717,20 +54808,13 @@ /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) "rLt" = ( -/obj/item/clothing/head/cone{ - pixel_x = -8; - pixel_y = 8 - }, -/obj/item/clothing/head/cone{ - pixel_x = -5; - pixel_y = -9 - }, -/obj/effect/decal/cleanable/glass/titanium, -/obj/effect/decal/cleanable/insectguts, -/obj/machinery/light/small/dim/directional/north, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +/obj/structure/rack, +/obj/effect/spawner/random/techstorage/medical_all, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/bot, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "rLx" = ( /obj/effect/turf_decal/siding/thinplating/terracotta, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -54755,8 +54839,8 @@ /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/command/nuke_storage) "rMb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/landmark/generic_maintenance_landmark, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) "rMf" = ( @@ -54847,11 +54931,11 @@ /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) "rNd" = ( -/obj/structure/cable, /obj/machinery/door/airlock{ name = "Maintenance" }, /obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/central) "rNn" = ( @@ -54922,8 +55006,8 @@ /turf/open/floor/wood, /area/station/commons/fitness/recreation) "rOW" = ( -/obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, /turf/open/floor/plating, /area/station/science/server) "rOX" = ( @@ -54937,13 +55021,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, /turf/open/floor/engine/plasma, /area/station/engineering/atmos) -"rPm" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 4 - }, -/turf/open/floor/iron/smooth_large, -/area/station/science/robotics/mechbay) "rPx" = ( /obj/effect/turf_decal/siding/thinplating_new/dark{ dir = 1 @@ -55037,24 +55114,18 @@ "rQi" = ( /turf/closed/wall/r_wall, /area/station/engineering/main) -"rQm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 +"rQr" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/service/lawoffice) +/obj/effect/spawner/random/entertainment/dice, +/turf/open/floor/wood/large, +/area/station/maintenance/department/science/xenobiology) "rQw" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/engine, /area/station/science/xenobiology) -"rQA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/secondary/recreation) "rQC" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -55151,19 +55222,9 @@ /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) "rSt" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/white{ - dir = 9 - }, -/obj/machinery/door/airlock/medical/glass{ - name = "Coroner's Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/medical/coroner, -/turf/open/floor/iron/small, +/turf/open/floor/iron/dark/small, /area/station/medical/morgue) "rSy" = ( /obj/machinery/door/airlock{ @@ -55179,7 +55240,6 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/iron/dark, /area/station/service/lawoffice) "rSB" = ( @@ -55281,26 +55341,25 @@ /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) "rUI" = ( +/obj/item/radio/intercom/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/intercom/directional/west, /turf/open/floor/iron/white/side{ dir = 4 }, /area/station/science/lobby) "rUR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/structure/table_or_rack, -/turf/open/floor/plating, +/obj/effect/spawner/random/structure/grille, +/turf/open/floor/iron/dark, /area/station/maintenance/department/science/xenobiology) "rUV" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=7.0-Arrivals-Pharmacy"; location = "6.3-Arrivals" }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "rVj" = ( @@ -55341,15 +55400,6 @@ }, /turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) -"rVy" = ( -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/smooth_large, -/area/station/science/auxlab/firing_range) "rVH" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/structure/table/glass, @@ -55388,9 +55438,9 @@ /turf/open/floor/iron/smooth, /area/station/cargo/lobby) "rWm" = ( +/obj/machinery/camera/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/camera/directional/west, /turf/open/floor/iron/white/side{ dir = 4 }, @@ -55488,17 +55538,18 @@ /obj/effect/turf_decal/delivery/white, /turf/open/floor/iron/dark/side, /area/station/cargo/sorting) +"rWS" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/cytology) "rWU" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"rXh" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/stone, -/area/station/service/bar) "rXm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, /obj/effect/turf_decal/stripes/line, @@ -55507,9 +55558,14 @@ /turf/open/floor/engine, /area/station/engineering/supermatter/room) "rXv" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron, -/area/station/construction/mining/aux_base) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/hallway/secondary/command) "rXw" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, @@ -55520,13 +55576,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"rXM" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) "rXW" = ( /obj/structure/flora/bush/flowers_yw, /obj/machinery/door/window/left/directional/west{ @@ -55568,10 +55617,10 @@ /turf/open/floor/grass, /area/station/service/chapel) "rYx" = ( -/obj/effect/turf_decal/siding/wideplating/dark, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wideplating/dark, /turf/open/floor/iron/small, /area/station/service/barber) "rYD" = ( @@ -55642,7 +55691,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, -/obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/iron/dark, /area/station/service/lawoffice) "rZz" = ( @@ -55696,14 +55744,22 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"saA" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/cytology) "saL" = ( /obj/effect/turf_decal/siding/wood, /obj/machinery/light/small/directional/west, /turf/open/floor/wood/parquet, /area/station/service/library) "saY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, /turf/open/floor/iron, /area/station/science/robotics/augments) "sbq" = ( @@ -55719,9 +55775,6 @@ dir = 4 }, /obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) "sbN" = ( @@ -55829,6 +55882,13 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/dark, /area/station/security/interrogation) +"sdm" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "sdZ" = ( /obj/machinery/portable_atmospherics/canister, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -55841,9 +55901,9 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "sea" = ( +/obj/effect/turf_decal/siding/white/corner, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/white/corner, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) "seq" = ( @@ -55879,21 +55939,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/fore/greater) -"seV" = ( -/obj/structure/transit_tube/horizontal, -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/space/basic, -/area/space/nearstation) "sfk" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) "sfq" = ( +/obj/machinery/light/cold/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/cold/directional/north, /turf/open/floor/iron/white/side{ dir = 1 }, @@ -55958,6 +56012,17 @@ /obj/item/clothing/head/costume/festive, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"sgm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/starboard/greater) +"sgt" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/transit_tube/horizontal, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/starboard/greater) "sgw" = ( /obj/machinery/mass_driver/ordnance{ dir = 1 @@ -56034,13 +56099,17 @@ }, /turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) +/obj/effect/decal/cleanable/dirt, +/obj/structure/broken_flooring/singular/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "shD" = ( /turf/closed/wall, /area/station/hallway/secondary/recreation) -"shG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/hallway/secondary/recreation) "shL" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod One"; @@ -56060,8 +56129,8 @@ /turf/open/floor/grass, /area/station/service/chapel) "sib" = ( -/obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/secondary/construction) "sip" = ( @@ -56106,11 +56175,6 @@ }, /turf/open/floor/iron/grimy, /area/station/service/library/private) -"sjp" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/starboard/central) "sjq" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -56230,11 +56294,6 @@ }, /turf/open/floor/iron/dark/side, /area/station/security/execution/transfer) -"skd" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/fitness/locker_room) "skm" = ( /obj/structure/cable, /obj/structure/table, @@ -56282,9 +56341,6 @@ /area/station/security/warden) "skT" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) "skU" = ( @@ -56392,14 +56448,11 @@ codes_txt = "patrol;next_patrol=23.4-Evac"; location = "23.3-Evac" }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) "smk" = ( -/obj/structure/cable, /obj/effect/turf_decal/siding/thinplating_new/light, +/obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) @@ -56436,9 +56489,6 @@ "sny" = ( /obj/machinery/holopad, /obj/effect/spawner/random/engineering/tracking_beacon, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 2 - }, /turf/open/floor/iron, /area/station/security/courtroom) "snB" = ( @@ -56452,14 +56502,12 @@ "snJ" = ( /obj/effect/turf_decal/stripes/corner, /obj/machinery/light/small/directional/south, +/obj/item/kirbyplants/fern, /turf/open/floor/iron/white, /area/station/science/cytology) "snK" = ( /obj/effect/turf_decal/siding/thinplating_new/dark/corner, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 2 - }, /turf/open/floor/iron, /area/station/security/courtroom) "snW" = ( @@ -56473,16 +56521,16 @@ /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) "sok" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/blue{ dir = 4 }, /obj/machinery/light/cold/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner{ dir = 1 }, @@ -56557,9 +56605,6 @@ pixel_y = -2 }, /obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /turf/open/floor/iron/dark/small, /area/station/security/checkpoint/customs/auxiliary) "spk" = ( @@ -56602,19 +56647,16 @@ /turf/open/floor/iron/small, /area/station/service/bar) "spK" = ( +/obj/effect/turf_decal/tile/purple/opposingcorners, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/turf/open/floor/iron/cafeteria, +/area/station/science/circuits) "spP" = ( /obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) "sqa" = ( @@ -56674,9 +56716,6 @@ /obj/structure/chair/sofa/bench/left{ dir = 4 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) "sqY" = ( @@ -56733,25 +56772,25 @@ /turf/open/floor/iron, /area/station/hallway/secondary/recreation) "srE" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, /obj/machinery/door/airlock/command/glass{ name = "Telecommunications Server Room" }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden, /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "comms-entrance-south" }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden, /turf/open/floor/catwalk_floor/iron_dark, /area/station/tcommsat/server) "srH" = ( -/obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/heat_exchanging/junction{ dir = 8 }, @@ -56763,13 +56802,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/science/robotics/lab) -"srT" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/wood/tile, -/area/station/command/meeting_room) "sso" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, @@ -56796,11 +56828,11 @@ /area/station/maintenance/department/science/xenobiology) "ssY" = ( /obj/structure/kitchenspike, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /obj/effect/turf_decal/weather/snow, -/turf/open/floor/iron/freezer, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) "sta" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -56822,13 +56854,20 @@ }, /area/station/hallway/primary/central/fore) "stj" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/stairs{ +/obj/machinery/door/airlock/highsecurity{ + name = "Secure Tech Storage" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ dir = 1 }, -/area/station/maintenance/department/science/xenobiology) +/obj/effect/turf_decal/stripes/line, +/obj/effect/mapping_helpers/airlock/access/all/engineering/tech_storage, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/iron/smooth_half{ + dir = 1 + }, +/area/station/engineering/storage/tech) "stH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/brown/half, @@ -56837,20 +56876,13 @@ }, /turf/open/floor/iron/textured_half, /area/station/cargo/miningoffice) -"stP" = ( -/obj/effect/turf_decal/siding{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron/white/small, -/area/station/science/lab) "stV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/firealarm/directional/west, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "stX" = ( @@ -56905,6 +56937,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"suU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/recreation) "svd" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 @@ -56912,11 +56948,11 @@ /turf/open/floor/iron/small, /area/station/engineering/atmos/pumproom) "svh" = ( -/obj/structure/cable, /obj/machinery/door/airlock{ name = "Maintenance" }, /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) "svo" = ( @@ -56947,14 +56983,14 @@ /turf/open/floor/iron/dark, /area/station/science/genetics) "svz" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/research{ name = "Xenobiology Secure Lab" }, /obj/effect/mapping_helpers/airlock/access/all/science/xenobio, /obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/science/xenobiology) "svD" = ( @@ -57025,32 +57061,36 @@ /area/station/commons/vacant_room/office) "swk" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"swn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, +/turf/open/floor/circuit/telecomms/mainframe, +/area/station/science/xenobiology) "swu" = ( /turf/open/floor/wood, /area/station/security/detectives_office) "swB" = ( +/obj/structure/cable, /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line, /obj/effect/turf_decal/stripes/red/line{ dir = 1 }, -/obj/structure/cable, /turf/open/floor/iron/small, /area/station/hallway/primary/starboard) "swF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/line{ dir = 6 }, /obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/science/xenobiology) "swJ" = ( @@ -57069,12 +57109,6 @@ /obj/structure/closet/firecloset, /turf/open/floor/iron/small, /area/station/engineering/break_room) -"swL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron/dark/herringbone, -/area/station/security/courtroom) "swM" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -57133,11 +57167,11 @@ /turf/open/floor/plating, /area/station/maintenance/port/fore) "sxF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/junction/flip{ dir = 2 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side{ dir = 8 }, @@ -57207,12 +57241,16 @@ "syk" = ( /turf/closed/wall, /area/station/security/warden) +"sys" = ( +/obj/structure/broken_flooring/side/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "syA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock/public/glass{ name = "Dorms" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/textured_half{ dir = 1 }, @@ -57222,18 +57260,6 @@ /obj/structure/flora/bush/flowers_yw/style_random, /turf/open/misc/sandy_dirt, /area/station/medical/medbay/lobby) -"syK" = ( -/obj/effect/turf_decal/box/red/corners{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 5 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "syN" = ( /obj/effect/spawner/random/trash, /turf/open/floor/plating, @@ -57294,6 +57320,13 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/storage) +"sBc" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) "sBm" = ( /obj/structure/transport/linear/tram, /obj/structure/fluff/tram_rail/floor, @@ -57317,11 +57350,12 @@ /obj/item/clothing/gloves/color/orange, /obj/item/clothing/shoes/galoshes, /obj/structure/sign/poster/official/random/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/small, /area/station/service/janitor) +"sBA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/testlab) "sBL" = ( /obj/structure/sign/directions/science{ dir = 4; @@ -57413,13 +57447,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"sCB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/public{ - name = "Locker Room" - }, -/turf/open/floor/iron/textured_half, -/area/station/commons/fitness/recreation) "sCC" = ( /obj/machinery/door/airlock/external/glass{ name = "ATMOS PROJECT Airlock" @@ -57468,9 +57495,6 @@ "sDs" = ( /obj/item/kirbyplants/random, /obj/effect/turf_decal/siding/wideplating/dark, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/commons/dorms) "sDA" = ( @@ -57482,13 +57506,21 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) -"sDM" = ( -/obj/structure/cable, -/turf/open/floor/iron/dark/side{ +"sDE" = ( +/obj/effect/turf_decal/siding/wood{ dir = 4 }, -/area/station/science/lab) +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass, +/obj/machinery/button/curtain{ + id = "abandoned_brewery"; + name = "curtain control"; + pixel_y = -24 + }, +/turf/open/floor/wood/large, +/area/station/maintenance/department/science/xenobiology) "sDZ" = ( +/obj/structure/cable, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 @@ -57500,7 +57532,6 @@ codes_txt = "patrol;next_patrol=15.0-CentralStarboard-CentralFore"; location = "14.0-Dormatories-CentralStarboard" }, -/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "sEd" = ( @@ -57573,9 +57604,6 @@ dir = 6 }, /obj/structure/flora/bush/flowers_yw, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/grass, /area/station/service/chapel) "sGp" = ( @@ -57591,11 +57619,11 @@ /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) "sGE" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/effect/turf_decal/stripes/line{ dir = 1 }, /obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, /turf/open/floor/plating, /area/station/science/ordnance/storage) "sGN" = ( @@ -57683,10 +57711,10 @@ /area/station/science/cytology) "sIj" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) "sIz" = ( @@ -57748,11 +57776,11 @@ /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) "sJg" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, /obj/machinery/door/airlock/command{ name = "Research Division Server Room" }, /obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/server) "sJi" = ( @@ -57760,9 +57788,9 @@ /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) "sJr" = ( +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/holopad, /turf/open/floor/iron/smooth_large, /area/station/science/auxlab/firing_range) "sJv" = ( @@ -57777,11 +57805,11 @@ /turf/open/floor/iron, /area/station/hallway/primary/port) "sJw" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/holopad, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/holopad, /turf/open/floor/iron/dark, /area/station/engineering/storage/tcomms) "sJE" = ( @@ -57801,10 +57829,22 @@ /area/station/service/kitchen) "sJN" = ( /obj/effect/turf_decal/siding, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/small, /area/station/science/lab) +"sJO" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/fore) "sJR" = ( /turf/open/floor/plating, /area/station/maintenance/fore/greater) @@ -57840,14 +57880,14 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/central) "sKm" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line, /obj/effect/turf_decal/stripes/red/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/small, /area/station/hallway/primary/central/fore) "sKq" = ( @@ -57873,14 +57913,15 @@ /turf/open/floor/grass, /area/station/science/genetics) "sKB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 6 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/aft) "sKE" = ( @@ -57956,13 +57997,7 @@ /obj/structure/holosign/barrier/atmos/tram, /turf/open/floor/tram, /area/station/security/tram) -"sLU" = ( -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/hallway/secondary/dock) "sMh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock/research{ name = "Research Division Access" }, @@ -57974,6 +58009,7 @@ /obj/effect/mapping_helpers/airlock/unres{ dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/textured_half{ dir = 1 }, @@ -57998,11 +58034,6 @@ }, /turf/open/floor/iron/white/side, /area/station/hallway/primary/central/aft) -"sMu" = ( -/obj/structure/cable, -/obj/structure/railing, -/turf/open/floor/catwalk_floor, -/area/station/hallway/secondary/entry) "sMB" = ( /obj/effect/turf_decal/siding/wideplating, /obj/structure/rack, @@ -58043,11 +58074,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/paramedic) -"sMU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) "sNb" = ( /obj/effect/turf_decal/tile/blue, /obj/item/radio/intercom/directional/south, @@ -58085,10 +58111,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"sOf" = ( -/obj/structure/statue/snow/snowman, -/turf/open/floor/fake_snow, -/area/station/engineering/atmos/project) "sOi" = ( /obj/effect/turf_decal/siding/wood/end{ dir = 1 @@ -58118,13 +58140,13 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/chair/sofa/bench{ dir = 1 }, /obj/machinery/newscaster/directional/south, /obj/effect/landmark/start/hangover, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "sOy" = ( @@ -58156,15 +58178,6 @@ /obj/effect/landmark/navigate_destination, /turf/open/floor/iron/textured_half, /area/station/commons/storage/art) -"sPa" = ( -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/machinery/door/airlock/grunge{ - name = "St. Brendan's" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/greater) "sPb" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -58187,12 +58200,6 @@ /obj/structure/broken_flooring/pile/directional/east, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"sPO" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "sQb" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -58288,15 +58295,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/engine, /area/station/science/explab) -"sQX" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/components/binary/valve/digital{ - dir = 4 - }, -/turf/open/floor/iron/white/small, -/area/station/science/ordnance/storage) "sRf" = ( /obj/machinery/power/turbine/inlet_compressor{ dir = 8 @@ -58338,6 +58336,14 @@ "sRL" = ( /turf/closed/wall, /area/station/service/janitor) +"sRN" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/door/airlock{ + id_tag = "AuxToilet2"; + name = "Unit 2" + }, +/turf/open/floor/iron/showroomfloor, +/area/station/maintenance/department/science/xenobiology) "sRT" = ( /obj/machinery/disposal/bin, /obj/effect/turf_decal/siding/thinplating{ @@ -58411,16 +58417,23 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "sTi" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/item/clothing/head/cone{ pixel_x = -8; pixel_y = 17 }, /obj/structure/broken_flooring/singular/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"sTp" = ( +/obj/effect/turf_decal/trimline/dark/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/department/science/xenobiology) "sTq" = ( /obj/structure/railing{ dir = 10 @@ -58451,25 +58464,28 @@ /area/station/service/library/private) "sTR" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/mapping_helpers/airlock/access/all/medical/general, /obj/machinery/door/airlock/medical/glass{ name = "Medical Cold Room" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/small, /area/station/medical/coldroom) "sUe" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood, -/area/station/commons/fitness/recreation) +/obj/structure/table/reinforced/rglass, +/obj/machinery/coffeemaker/impressa{ + pixel_x = 2 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/turf/open/floor/iron/checker, +/area/station/command/bridge) "sUg" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, /turf/open/floor/iron, /area/station/security/courtroom) "sUr" = ( @@ -58537,11 +58553,6 @@ /obj/structure/cable, /turf/open/floor/iron/textured_half, /area/station/security) -"sVk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/maintenance/starboard/greater) "sVp" = ( /obj/structure/table, /obj/structure/sign/poster/official/corporate_perks_vacation/directional/east, @@ -58570,10 +58581,10 @@ /turf/open/floor/iron, /area/station/hallway/secondary/entry) "sVG" = ( +/obj/machinery/power/apc/auto_name/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) "sVN" = ( @@ -58618,14 +58629,20 @@ /turf/open/floor/iron/grimy, /area/station/maintenance/starboard/greater) "sWQ" = ( +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"sXc" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters{ + dir = 1; + id = "abandoned_lab"; + name = "Abandoned Lab Shutters" + }, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "sXi" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, @@ -58641,6 +58658,12 @@ }, /turf/open/floor/iron, /area/station/maintenance/department/engine/atmos) +"sXo" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "sXq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -58673,19 +58696,10 @@ /obj/machinery/telecomms/receiver/preset_left, /turf/open/floor/circuit, /area/station/tcommsat/server) -"sXz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/science/cytology) "sXD" = ( /obj/effect/turf_decal/siding/wood, /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /turf/open/floor/wood/parquet, /area/station/service/library) "sXE" = ( @@ -58696,24 +58710,18 @@ /turf/open/floor/iron/smooth_large, /area/station/engineering/storage_shared) "sXG" = ( -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, /obj/effect/turf_decal/stripes/red/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 4 + }, /turf/open/floor/engine, /area/station/science/cytology) "sXI" = ( /obj/structure/frame/machine, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) -"sXL" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/iron/white/small, -/area/station/science/ordnance/storage) "sXO" = ( /obj/structure/chair{ dir = 4 @@ -58743,11 +58751,11 @@ /obj/effect/turf_decal/stripes/red/line{ dir = 4 }, +/obj/machinery/light/small/directional/east, /obj/machinery/atmospherics/components/unary/outlet_injector{ dir = 8; pixel_x = -4 }, -/obj/machinery/light/small/directional/east, /turf/open/floor/engine, /area/station/science/cytology) "sYg" = ( @@ -58764,9 +58772,6 @@ dir = 1 }, /obj/machinery/camera/autoname/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) "sYs" = ( @@ -58777,22 +58782,18 @@ /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) "sYt" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/engineering{ - name = "Tech Storage" +/obj/structure/table/reinforced, +/obj/machinery/newscaster/directional/east, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/tech_storage, -/turf/open/floor/catwalk_floor/iron, -/area/station/engineering/storage/tech) -"sYu" = ( -/obj/machinery/status_display/ai/directional/east, -/obj/effect/turf_decal/weather/snow/corner{ +/obj/item/clothing/gloves/color/yellow, +/obj/item/t_scanner, +/turf/open/floor/iron/dark/side{ dir = 4 }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) +/area/station/engineering/storage/tech) "sYw" = ( /obj/structure/chair{ pixel_y = -2 @@ -58825,6 +58826,10 @@ }, /turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) +"sZh" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/secondary/recreation) "sZo" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 10 @@ -58844,7 +58849,6 @@ /turf/open/floor/iron, /area/station/hallway/primary/port) "sZx" = ( -/obj/structure/cable, /obj/structure/disposalpipe/trunk{ dir = 1 }, @@ -58854,6 +58858,7 @@ /obj/effect/turf_decal/siding/purple{ dir = 9 }, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) "sZA" = ( @@ -58865,14 +58870,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/grass, /area/station/service/chapel) -"sZH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/starboard/central) "sZJ" = ( /obj/structure/chair{ dir = 1; @@ -58943,13 +58940,13 @@ /turf/open/floor/iron/dark/small, /area/station/security/checkpoint/customs/auxiliary) "taL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock{ name = "Maintenance" }, /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/central) "taT" = ( @@ -58980,10 +58977,10 @@ /turf/open/floor/iron/textured_half, /area/station/security/execution/transfer) "tbk" = ( -/obj/structure/cable, /obj/machinery/door/airlock/hatch{ name = "Experimentation Chamber" }, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron, @@ -59024,18 +59021,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/lab) -"tbI" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) -"tbK" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "tbS" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -59045,8 +59030,8 @@ /turf/open/floor/iron/dark, /area/station/science/genetics) "tcz" = ( -/obj/effect/turf_decal/trimline/blue/filled/corner, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/trimline/blue/filled/corner, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "tcC" = ( @@ -59098,10 +59083,10 @@ /turf/open/floor/iron/dark, /area/station/security/lockers) "tdE" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 10 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) "tdF" = ( @@ -59125,7 +59110,6 @@ /turf/open/floor/iron/smooth_large, /area/station/maintenance/department/medical/central) "tdS" = ( -/obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/box/corners{ dir = 4 @@ -59133,6 +59117,7 @@ /obj/effect/turf_decal/stripes/white/line{ dir = 8 }, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/engine, @@ -59144,10 +59129,10 @@ /turf/open/floor/plating/rust, /area/station/maintenance/department/electrical) "tec" = ( -/obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, /obj/structure/steam_vent, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/central) "teo" = ( @@ -59282,6 +59267,14 @@ /obj/item/clipboard, /turf/open/floor/iron/white/small, /area/station/science/server) +"tfH" = ( +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/corner{ + dir = 8 + }, +/area/station/hallway/secondary/dock) "tfM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral, @@ -59336,9 +59329,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/small, /area/station/medical/cryo) "thb" = ( @@ -59350,10 +59340,10 @@ /turf/open/floor/wood, /area/station/engineering/break_room) "the" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/camera/autoname/directional/north, /obj/machinery/firealarm/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side{ dir = 1 }, @@ -59396,6 +59386,11 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) +"tis" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/side, +/area/station/science/research) "tit" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/portable_atmospherics/canister/air, @@ -59426,9 +59421,6 @@ "tiQ" = ( /obj/machinery/rnd/production/protolathe/department/science, /obj/machinery/camera/autoname/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/dark, /area/station/science/lab) "tiW" = ( @@ -59462,10 +59454,10 @@ /turf/open/floor/iron, /area/station/engineering/lobby) "tje" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wideplating/dark{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "tjg" = ( @@ -59480,6 +59472,15 @@ "tjj" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/ai_upload) +"tjm" = ( +/obj/machinery/status_display/evac/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/research) "tjs" = ( /obj/machinery/airalarm/directional/west, /obj/effect/spawner/random/entertainment/arcade{ @@ -59542,12 +59543,6 @@ /obj/item/broken_bottle, /turf/open/floor/iron, /area/station/maintenance/department/engine/atmos) -"tkS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/showroomfloor, -/area/station/commons/toilet/auxiliary) "tkU" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/effect/turf_decal/bot{ @@ -59619,6 +59614,13 @@ }, /turf/open/floor/iron/dark/small, /area/station/engineering/storage_shared) +"tmr" = ( +/obj/structure/bed/medical/emergency, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/bot_white, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "tms" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, @@ -59631,6 +59633,14 @@ /obj/machinery/light/floor, /turf/open/floor/grass, /area/station/service/hydroponics) +"tmI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Recreation" + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/secondary/recreation) "tmK" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -59674,6 +59684,13 @@ }, /turf/open/floor/iron/small, /area/station/maintenance/port/lesser) +"tmV" = ( +/obj/machinery/door/airlock{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/coroner, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "tnb" = ( /turf/open/floor/plating, /area/station/maintenance/central/lesser) @@ -59737,6 +59754,14 @@ }, /turf/open/floor/wood/parquet, /area/station/service/library) +"tob" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 8 + }, +/area/station/maintenance/starboard/greater) "tof" = ( /turf/closed/wall/rust, /area/station/ai_monitored/turret_protected/ai) @@ -59821,9 +59846,9 @@ /turf/open/misc/sandy_dirt, /area/station/security/tram) "toU" = ( -/obj/structure/disposalpipe/junction/flip, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/fore) "toX" = ( @@ -59841,8 +59866,15 @@ /area/station/service/lawoffice) "tpl" = ( /obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/science/cubicle) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/command/bridge) "tpm" = ( /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/noslip, @@ -59856,14 +59888,6 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) -"tpI" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 2 - }, -/obj/structure/statue/snow/snowman, -/turf/open/floor/iron/dark, -/area/station/science/genetics) "tpK" = ( /obj/effect/turf_decal/trimline/white/warning{ dir = 4 @@ -59921,15 +59945,15 @@ /turf/open/floor/plating, /area/station/maintenance/port/lesser) "tqs" = ( -/obj/structure/bodycontainer/morgue{ - dir = 1 +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/door/window/right/directional/east{ + name = "Corpse Arrivals" }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/dark/small, +/turf/open/floor/plating, /area/station/medical/morgue) "tqD" = ( -/obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/ai_upload) "tqF" = ( @@ -59950,15 +59974,15 @@ /turf/open/floor/iron, /area/station/hallway/secondary/dock) "tqX" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner{ dir = 1 }, @@ -59969,12 +59993,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/maintenance/hallway/abandoned_recreation) +"trl" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) "trp" = ( /turf/closed/wall, /area/station/maintenance/port/aft) "trz" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/machinery/status_display/ai/directional/west, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -60007,9 +60037,9 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "tsb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/line, /obj/structure/sign/departments/aiupload/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) "tsk" = ( @@ -60035,23 +60065,23 @@ /turf/open/floor/iron/textured_half, /area/station/service/chapel/office) "tst" = ( -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, /obj/effect/decal/cleanable/dirt, /obj/machinery/door/poddoor/preopen{ id = "Xenolab"; name = "Test Chamber Blast Door" }, +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 4 + }, /turf/open/floor/catwalk_floor/iron, /area/station/science/xenobiology) "tsA" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wood{ dir = 1 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, /turf/open/floor/iron/grimy, /area/station/tcommsat/server) @@ -60135,6 +60165,14 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/iron, /area/station/security/processing) +"tum" = ( +/obj/machinery/door/airlock{ + name = "Abandoned Brewery" + }, +/obj/effect/mapping_helpers/airlock/access/any/science/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "tuu" = ( /obj/structure/table, /obj/item/stack/sheet/glass/fifty, @@ -60161,11 +60199,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security) -"tuE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/science/server) "tuP" = ( /obj/machinery/light/small/directional/east, /obj/item/kirbyplants/random, @@ -60183,10 +60216,11 @@ /area/station/hallway/secondary/entry) "tuW" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 }, -/turf/open/floor/iron/dark/smooth_large, +/turf/open/floor/iron/checker, /area/station/command/bridge) "tuY" = ( /obj/effect/spawner/random/structure/closet_private, @@ -60230,13 +60264,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/captain/private) -"tvU" = ( -/obj/effect/turf_decal/stripes/white/line, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 2 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "tvW" = ( /obj/structure/chair/stool/directional/west, /obj/effect/turf_decal/siding/wood{ @@ -60269,9 +60296,9 @@ /area/space/nearstation) "twi" = ( /obj/structure/disposalpipe/segment, +/obj/structure/steam_vent, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/starboard/central) "twm" = ( @@ -60296,24 +60323,10 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/iron/small, /area/station/security/tram) -"twx" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "twA" = ( /obj/machinery/portable_atmospherics/scrubber/huge, /turf/open/floor/iron/dark, /area/station/engineering/atmos/storage) -"twE" = ( -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Recreation" - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/recreation) "twF" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating, @@ -60384,16 +60397,9 @@ /turf/closed/wall, /area/station/security/prison/workout) "txV" = ( -/obj/machinery/button/door/directional/east{ - id = "AuxToilet3"; - name = "Lock Control"; - normaldoorcontrol = 1; - specialfunctions = 4 - }, -/obj/structure/toilet, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/showroomfloor, -/area/station/commons/toilet/auxiliary) +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/central) "txW" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/window/reinforced/spawner/directional/south, @@ -60408,12 +60414,20 @@ /turf/open/floor/engine/o2, /area/station/engineering/atmos) "tye" = ( +/obj/machinery/door/airlock/command/glass{ + name = "E.V.A. Storage" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/command/eva, +/obj/effect/turf_decal/stripes/corner, /obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_half{ + dir = 1 }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) +/area/station/ai_monitored/command/storage/eva) "tyh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -60581,10 +60595,10 @@ /obj/effect/turf_decal/siding/wood/corner{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) "tAs" = ( @@ -60633,19 +60647,25 @@ /turf/open/floor/iron/white, /area/station/medical/treatment_center) "tAP" = ( -/obj/effect/landmark/blobstart, +/obj/effect/turf_decal/trimline/neutral/warning{ + dir = 10 + }, +/obj/effect/mapping_helpers/dead_body_placer{ + bodycount = 2 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/small, /area/station/medical/morgue) "tAQ" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/power/apc/auto_name/directional/north, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/central) "tAS" = ( @@ -60735,15 +60755,10 @@ /obj/structure/disposalpipe/segment, /turf/open/space/basic, /area/space/nearstation) -"tCG" = ( -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/science/robotics/mechbay) "tCZ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, -/obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "tDb" = ( @@ -60762,9 +60777,6 @@ dir = 4 }, /obj/machinery/shower/directional/west, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) "tDn" = ( @@ -60861,23 +60873,23 @@ /turf/open/floor/iron, /area/station/security/tram) "tEC" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/research{ name = "Robotics Lab" }, /obj/effect/mapping_helpers/airlock/access/all/science/robotics, /obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/robotics/lab) "tEL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "tFs" = ( @@ -60932,10 +60944,10 @@ /area/station/security/tram) "tGB" = ( /obj/machinery/light_switch/directional/south, +/obj/machinery/camera/autoname/directional/south, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, -/obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) "tGF" = ( @@ -60943,13 +60955,12 @@ /turf/open/floor/iron/smooth_large, /area/station/engineering/break_room) "tGI" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/tcommsat/server) +/obj/machinery/door/airlock{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/science/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "tGJ" = ( /obj/effect/turf_decal/tile/dark_red/fourcorners, /obj/machinery/computer/records/security, @@ -60990,16 +61001,19 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/security/tram) +"tHy" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "tHK" = ( /turf/closed/wall, /area/station/security/prison/shower) "tHL" = ( +/obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/catwalk_floor, /area/station/hallway/secondary/entry) "tIa" = ( @@ -61018,17 +61032,17 @@ /turf/open/floor/wood, /area/station/service/chapel/funeral) "tIB" = ( -/obj/item/clothing/head/cone{ - pixel_x = 16; - pixel_y = 7 +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 }, -/obj/item/clothing/head/cone{ - pixel_x = -1; - pixel_y = -5 +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 4 }, -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +/area/station/engineering/storage/tech) "tIN" = ( /obj/structure/table/reinforced, /obj/item/folder/yellow{ @@ -61067,14 +61081,14 @@ /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) "tJw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/research{ name = "Xenobiology Secure Lab" }, /obj/effect/mapping_helpers/airlock/access/all/science/xenobio, /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/science/xenobiology) "tJz" = ( @@ -61086,6 +61100,11 @@ }, /turf/open/floor/plating, /area/station/security/brig/entrance) +"tJC" = ( +/obj/machinery/light/cold/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/dock) "tJF" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/rack, @@ -61207,9 +61226,6 @@ }, /obj/structure/extinguisher_cabinet/directional/south, /obj/machinery/light/no_nightlight/directional/south, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron, /area/station/engineering/atmos) "tKG" = ( @@ -61247,19 +61263,19 @@ /turf/open/floor/plating, /area/station/maintenance/central/greater) "tLc" = ( -/obj/structure/table/reinforced, -/obj/effect/spawner/random/techstorage/service_all, -/obj/machinery/light/cold/directional/east, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/hallway/primary/starboard) "tLj" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 }, +/obj/machinery/light/small/broken/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/small/broken/directional/south, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) "tLn" = ( @@ -61290,19 +61306,18 @@ /turf/open/floor/plating, /area/station/maintenance/department/medical/central) "tMh" = ( -/obj/structure/fireaxecabinet/directional/south, /obj/machinery/door/window/brigdoor/left/directional/north{ name = "Command Desk"; req_access = list("command") }, -/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/siding/dark, /turf/open/floor/iron/dark/textured_half{ dir = 1 }, /area/station/command/bridge) "tMs" = ( -/obj/structure/cable, /obj/machinery/telecomms/server/presets/service, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 10 }, @@ -61335,7 +61350,6 @@ /turf/open/floor/wood, /area/station/engineering/atmos/pumproom) "tNn" = ( -/obj/structure/cable, /obj/machinery/door/airlock{ name = "Maintenance" }, @@ -61343,6 +61357,7 @@ /obj/effect/mapping_helpers/airlock/unres{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) "tNs" = ( @@ -61367,23 +61382,23 @@ /turf/open/floor/engine, /area/station/science/xenobiology) "tNy" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/research{ name = "Gun Lab" }, /obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/auxlab/firing_range) "tNz" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/central) "tNA" = ( @@ -61403,12 +61418,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) -"tNR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/turf/open/floor/iron/dark/side, -/area/station/science/xenobiology) "tNT" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron/kitchen/small, @@ -61441,22 +61450,14 @@ /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) "tOk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/line{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/hallway/secondary/recreation) -"tOs" = ( -/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, -/area/station/hallway/primary/starboard) +/area/station/hallway/secondary/recreation) "tOu" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, @@ -61486,11 +61487,11 @@ /turf/open/misc/sandy_dirt, /area/station/service/lawoffice) "tOZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/light/cold/directional/north, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) "tPf" = ( @@ -61498,11 +61499,11 @@ /turf/open/floor/iron/dark, /area/station/security/interrogation) "tPm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/sign/poster/official/random/directional/north, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) "tPE" = ( @@ -61511,19 +61512,30 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron/showroomfloor, /area/station/service/barber) -"tPH" = ( +"tPF" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, +/obj/machinery/light/floor, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/engineering/storage/tech) +"tPH" = ( /obj/machinery/airalarm/directional/south, +/obj/structure/cable, /turf/open/floor/wood, /area/station/commons/fitness/recreation) "tPM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral, /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, /obj/structure/disposalpipe/segment{ dir = 6 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "tPP" = ( @@ -61583,25 +61595,29 @@ /turf/open/floor/plating, /area/station/maintenance/port/aft) "tQA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, /obj/effect/turf_decal/tile/green{ dir = 8 }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, /turf/open/floor/iron/white, /area/station/medical/virology) -"tQQ" = ( +"tQM" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, /obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 1 }, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tcomms) +/area/station/science/xenobiology) "tQR" = ( /obj/machinery/door/airlock/engineering{ name = "Engine Airlock" @@ -61643,10 +61659,10 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"tRr" = ( -/obj/structure/statue/snow/snowman, -/turf/open/floor/stone, -/area/station/service/chapel) +"tRn" = ( +/obj/structure/closet/crate/grave/filled, +/turf/open/misc/dirt/station, +/area/station/medical/morgue) "tRw" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -61682,13 +61698,13 @@ }, /area/station/security/prison/safe) "tSq" = ( -/obj/structure/cable, /obj/machinery/telecomms/processor/preset_three, +/obj/structure/cable, /turf/open/floor/circuit, /area/station/tcommsat/server) "tSu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/start/hangover, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) "tSv" = ( @@ -61706,6 +61722,25 @@ }, /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) +"tSH" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/records/medical/laptop{ + dir = 8; + pixel_y = 1 + }, +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/trimline/dark_blue/filled/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"tSI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/broken_flooring/singular/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/starboard/aft) "tTg" = ( /obj/structure/table, /obj/item/trash/cheesie{ @@ -61717,13 +61752,13 @@ /turf/open/floor/iron/checker, /area/station/security/breakroom) "tTp" = ( -/obj/structure/cable, /obj/effect/turf_decal/caution/stand_clear/red{ dir = 8 }, /obj/effect/turf_decal/stripes{ dir = 4 }, +/obj/structure/cable, /obj/machinery/atmospherics/components/binary/pump{ dir = 4 }, @@ -61781,48 +61816,16 @@ /turf/open/floor/iron, /area/station/security/execution/transfer) "tUa" = ( -/obj/effect/gibspawner/human, -/obj/structure/table/optable{ - desc = "A cold, hard place for your final rest."; - name = "Morgue Slab" - }, -/mob/living/carbon/human/species/monkey{ - name = "Charles"; - real_name = "Charles" - }, -/turf/open/floor/iron/white/diagonal, -/area/station/maintenance/department/science/xenobiology) +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/rock/pile/jungle/style_random, +/obj/structure/sign/departments/restroom/directional/west, +/turf/open/misc/sandy_dirt, +/area/station/hallway/secondary/entry) "tUc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/public/glass{ - name = "Research Wing" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "sci-entrance" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "rdrnd"; - name = "Research and Development Shutters" - }, -/turf/open/floor/iron/white/textured_half{ - dir = 1 - }, -/area/station/hallway/primary/starboard) -"tUg" = ( -/obj/structure/cable, -/obj/machinery/vending/coffee, -/obj/effect/turf_decal/siding/thinplating_new/terracotta{ - dir = 4 - }, -/obj/machinery/camera/autoname/directional/north, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/meeting_room) +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/stairs, +/area/station/hallway/primary/central/fore) "tUj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -61837,21 +61840,12 @@ /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding{ dir = 9 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/small, /area/station/science/lobby) -"tUq" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/security/prison) "tUz" = ( /obj/structure/disposalpipe/trunk{ dir = 4 @@ -61865,17 +61859,18 @@ /area/station/medical/pharmacy) "tUH" = ( /obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/central) "tUZ" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 9 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "tVc" = ( @@ -61911,10 +61906,6 @@ }, /turf/open/floor/plating, /area/station/science/robotics/lab) -"tWl" = ( -/obj/structure/statue/snow/snowman, -/turf/open/floor/fake_snow, -/area/station/medical/chemistry) "tWm" = ( /obj/structure/flora/bush/jungle/c/style_3, /obj/effect/turf_decal/weather/dirt, @@ -61949,10 +61940,10 @@ /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) "tWG" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 5 }, +/obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) @@ -62000,9 +61991,6 @@ dir = 8 }, /obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "tXL" = ( @@ -62058,10 +62046,6 @@ }, /turf/open/floor/tram, /area/station/security/tram) -"tYN" = ( -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/secondary/dock) "tYT" = ( /turf/open/misc/asteroid/airless, /area/space/nearstation) @@ -62166,23 +62150,23 @@ /turf/open/floor/iron/white, /area/station/medical/virology) "uax" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/chair/office{ dir = 8 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) "uaF" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/chair/sofa/bench/right{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "uaT" = ( @@ -62226,11 +62210,15 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) +"ubk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/starboard/greater) "ubl" = ( -/obj/structure/easel, -/obj/item/canvas/twentythree_twentythree, -/obj/item/canvas/twentythree_twentythree, /obj/machinery/newscaster/directional/south, +/obj/structure/table, +/obj/item/storage/box/lights/mixed, /turf/open/floor/iron, /area/station/commons/storage/art) "uby" = ( @@ -62243,21 +62231,23 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/camera/autoname/directional/north, +/obj/machinery/firealarm/directional/north, /turf/open/floor/iron/dark/corner{ dir = 1 }, /area/station/hallway/primary/central/fore) "ubT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 }, -/obj/structure/hedge, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ dir = 4 }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron, /area/station/hallway/primary/fore) "ubV" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -62267,12 +62257,12 @@ /turf/open/floor/iron/dark, /area/station/medical/medbay/central) "uch" = ( -/obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, /obj/machinery/power/apc/auto_name/directional/west, /obj/effect/turf_decal/stripes/white/line{ dir = 5 }, +/obj/structure/cable, /turf/open/floor/engine, /area/station/science/explab) "ucm" = ( @@ -62340,17 +62330,21 @@ /turf/open/floor/iron, /area/station/engineering/atmos/project) "ucY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/side{ dir = 8 }, /area/station/hallway/secondary/construction) +"udd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/white, +/area/station/science/cytology) "ude" = ( /obj/structure/disposalpipe/trunk{ dir = 4 @@ -62415,17 +62409,17 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "udK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=4.0-TechStorage-AftHall"; location = "3.0-StarboardHall-TechStorage" @@ -62434,7 +62428,6 @@ /area/station/hallway/primary/starboard) "udO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, -/obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/engine, /area/station/engineering/supermatter/room) "udW" = ( @@ -62537,15 +62530,26 @@ /obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/monitored/air_output, /turf/open/floor/engine/air, /area/station/engineering/atmos) +"ueT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/cytology) "ueX" = ( /turf/closed/wall/rust, /area/station/maintenance/port/fore) "ufb" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth_half, /area/station/hallway/primary/central/fore) +"ufd" = ( +/obj/effect/turf_decal/trimline/dark/end{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/department/science/xenobiology) "ufe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -62566,8 +62570,8 @@ /turf/open/floor/iron, /area/station/hallway/secondary/entry) "ufE" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -62580,10 +62584,10 @@ /area/station/hallway/primary/aft) "ufF" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, @@ -62602,27 +62606,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/textured_half, /area/station/security/brig/entrance) -"uge" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) -"ugh" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "ugj" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -62646,15 +62629,6 @@ }, /turf/open/floor/wood, /area/station/engineering/break_room) -"ugC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "ugF" = ( /obj/machinery/power/emitter, /obj/effect/turf_decal/stripes/line{ @@ -62663,12 +62637,12 @@ /turf/open/floor/iron/dark/small, /area/station/engineering/storage_shared) "ugH" = ( -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 8 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) "ugI" = ( @@ -62676,11 +62650,11 @@ /turf/open/floor/grass, /area/station/service/chapel) "ugJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood/parquet, /area/station/medical/psychology) "uhe" = ( @@ -62702,14 +62676,9 @@ /turf/open/floor/iron, /area/station/hallway/primary/starboard) "uhk" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/siding/white{ - dir = 8 - }, -/obj/machinery/iv_drip, -/turf/open/floor/iron/small, +/obj/machinery/smartfridge/organ, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/small, /area/station/medical/morgue) "uhq" = ( /obj/structure/chair/bronze, @@ -62761,11 +62730,11 @@ /turf/open/floor/iron/dark/small, /area/station/medical/chemistry) "uid" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) @@ -62788,18 +62757,11 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"uiz" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/yellow/opposingcorners, -/turf/open/floor/iron, -/area/station/hallway/secondary/construction) "uiB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding{ dir = 8 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/small, /area/station/science/lobby) "uiK" = ( @@ -62827,14 +62789,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/wood, /area/station/maintenance/hallway/abandoned_recreation) -"uiS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/status_display/evac/directional/north, -/turf/open/floor/iron/white/side{ - dir = 1 - }, -/area/station/science/research) "uiU" = ( /obj/effect/spawner/structure/window, /obj/structure/disposalpipe/segment{ @@ -62844,10 +62798,10 @@ /area/station/cargo/office) "uiY" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, @@ -62906,20 +62860,27 @@ /turf/open/floor/plating, /area/station/hallway/secondary/construction) "ujT" = ( -/obj/structure/cable, /obj/machinery/door/airlock{ name = "Sec Post Maintenance" }, /obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"ujZ" = ( +"ujX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"ujZ" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/grimy, /area/station/tcommsat/server) "ukf" = ( @@ -62930,6 +62891,14 @@ /obj/structure/disposalpipe/segment, /turf/closed/wall, /area/station/cargo/miningfoundry) +"ukk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/lower) "uku" = ( /obj/machinery/computer/crew{ dir = 8 @@ -62938,9 +62907,6 @@ /obj/machinery/light_switch/directional/south, /obj/machinery/camera/autoname/directional/east, /obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "ukA" = ( @@ -62949,22 +62915,12 @@ /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) "ukB" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/holopad, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) -"ukE" = ( -/obj/structure/cable, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 +/obj/effect/turf_decal/weather/dirt{ + dir = 10 }, -/turf/open/floor/iron/dark, -/area/station/science/xenobiology) +/obj/structure/flora/bush/flowers_br/style_random, +/turf/open/floor/grass, +/area/station/medical/morgue) "ukI" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -62974,9 +62930,9 @@ /turf/open/floor/plating, /area/station/engineering/atmos) "ukQ" = ( +/obj/machinery/airalarm/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/airalarm/directional/north, /turf/open/floor/iron/white/side{ dir = 1 }, @@ -63014,16 +62970,6 @@ /obj/structure/chair/stool/directional/north, /turf/open/floor/iron, /area/station/security/prison/workout) -"ulq" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/kirbyplants/organic/applebush, -/obj/effect/turf_decal/siding/thinplating_new/terracotta{ - dir = 8 - }, -/obj/machinery/light_switch/directional/north, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/meeting_room) "ulC" = ( /obj/structure/closet/secure_closet/atmospherics, /obj/effect/turf_decal/bot{ @@ -63042,9 +62988,9 @@ /turf/open/floor/plating, /area/station/maintenance/central/greater) "ulK" = ( -/obj/structure/cable, /obj/machinery/ntnet_relay, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /turf/open/floor/circuit, /area/station/tcommsat/server) "ulO" = ( @@ -63067,9 +63013,6 @@ /obj/effect/turf_decal/stripes/white/line{ dir = 4 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/engine, /area/station/science/explab) "ums" = ( @@ -63093,29 +63036,20 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"umJ" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "umL" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, /obj/effect/turf_decal/tile/brown/opposingcorners{ dir = 1 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/cargo/office) "unc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) "unf" = ( @@ -63136,11 +63070,11 @@ /turf/open/floor/plating, /area/station/maintenance/fore/greater) "unT" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/purple{ dir = 8 }, +/obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, @@ -63187,10 +63121,10 @@ /turf/open/floor/grass, /area/station/service/chapel) "upe" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/central) "upg" = ( @@ -63205,18 +63139,17 @@ /turf/open/floor/iron/small, /area/station/hallway/primary/port) "upr" = ( +/obj/machinery/firealarm/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/north, /turf/open/floor/iron/white/side{ dir = 1 }, /area/station/science/research) "upy" = ( -/obj/structure/cable, +/obj/machinery/status_display/evac/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron/white/side{ dir = 1 }, @@ -63255,10 +63188,10 @@ /turf/open/floor/iron, /area/station/cargo/sorting) "upP" = ( +/obj/machinery/light/small/directional/north, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/small/directional/north, /turf/open/floor/iron/white/side{ dir = 5 }, @@ -63270,8 +63203,8 @@ /turf/open/floor/iron, /area/station/security/courtroom) "uqc" = ( -/obj/structure/cable, /obj/effect/spawner/random/trash, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/central) "uqe" = ( @@ -63314,10 +63247,10 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "uqH" = ( +/obj/machinery/firealarm/directional/north, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/north, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) "uqL" = ( @@ -63330,19 +63263,19 @@ /area/station/maintenance/starboard/aft) "uqO" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) "uqU" = ( -/obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/structure/trap/stun, /obj/structure/alien/weeds, +/obj/structure/cable, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) "uqV" = ( @@ -63404,9 +63337,8 @@ /obj/structure/disposalpipe/junction{ dir = 1 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) "urm" = ( @@ -63462,6 +63394,12 @@ }, /turf/open/floor/iron, /area/station/security) +"ury" = ( +/obj/structure/transit_tube/horizontal, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/space/basic, +/area/space/nearstation) "urz" = ( /obj/structure/cable, /turf/closed/wall/r_wall, @@ -63572,15 +63510,12 @@ }, /area/station/hallway/secondary/construction) "utF" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/door/poddoor/preopen{ id = "bridge blast"; name = "Bridge Blast Door" }, /obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, /turf/open/floor/plating, /area/station/command/meeting_room) "utP" = ( @@ -63597,10 +63532,6 @@ /obj/effect/landmark/navigate_destination/dockescpod, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"uub" = ( -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "uur" = ( /obj/structure/table/wood/fancy/green, /obj/item/storage/wallet{ @@ -63650,14 +63581,14 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/research/glass{ name = "Gun Lab" }, /obj/effect/mapping_helpers/airlock/access/all/science/general, /obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/auxlab/firing_range) "uvb" = ( @@ -63701,17 +63632,10 @@ }, /turf/open/floor/iron, /area/station/security/execution/transfer) -"uwF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/closed/wall/r_wall, -/area/station/command/corporate_dock) "uwI" = ( +/obj/effect/landmark/transport/nav_beacon/tram/nav/immovable_rod, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/transport/nav_beacon/tram/nav/immovable_rod, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "uwO" = ( @@ -63737,17 +63661,19 @@ /obj/structure/trap/stun, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"uya" = ( -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/engineering/storage/tech) "uyA" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/singular/directional/south, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"uyF" = ( +/obj/effect/turf_decal/tile/yellow/opposingcorners, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) "uyH" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -63774,14 +63700,6 @@ "uzJ" = ( /turf/open/floor/iron, /area/station/cargo/storage) -"uzK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron/white/side{ - dir = 1 - }, -/area/station/science/lower) "uzY" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -63793,10 +63711,10 @@ /area/station/hallway/secondary/dock) "uzZ" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 10 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -63833,6 +63751,14 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/wood/tile, /area/station/command/bridge) +"uAX" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/floor, +/turf/open/floor/plating, +/area/station/maintenance/department/engine) "uAY" = ( /turf/open/floor/plating, /area/station/maintenance/department/bridge) @@ -63858,12 +63784,12 @@ /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) "uBo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/blue{ dir = 4 }, /obj/machinery/light/floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner{ dir = 1 }, @@ -63876,12 +63802,6 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"uBy" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/stairs, -/area/station/engineering/storage/tech) "uBE" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, /obj/machinery/light/no_nightlight/directional/north, @@ -63966,11 +63886,12 @@ /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) "uDg" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/side{ dir = 1 }, @@ -64032,6 +63953,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"uDI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "uDQ" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/east, @@ -64092,11 +64019,10 @@ /turf/open/floor/plating, /area/station/maintenance/central/lesser) "uEQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/starboard) "uES" = ( @@ -64118,12 +64044,6 @@ }, /turf/open/floor/wood, /area/station/engineering/atmospherics_engine) -"uFc" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "uFe" = ( /obj/effect/turf_decal/arrows/red{ dir = 4; @@ -64147,20 +64067,12 @@ dir = 1 }, /area/station/command/bridge) -"uFo" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "uFt" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 9 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, @@ -64176,12 +64088,12 @@ /turf/open/floor/iron/textured_half, /area/station/security/lockers) "uFA" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/public/glass{ name = "Research Wing" }, /obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/textured_half{ dir = 1 }, @@ -64200,9 +64112,6 @@ /obj/effect/turf_decal/siding/wood, /obj/machinery/vending/wardrobe/jani_wardrobe, /obj/machinery/camera/autoname/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/small, /area/station/service/janitor) "uGj" = ( @@ -64219,7 +64128,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/public/glass{ name = "Research Wing" }, @@ -64232,6 +64140,7 @@ id = "rdrnd"; name = "Research and Development Shutters" }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/textured_half{ dir = 1 }, @@ -64262,11 +64171,11 @@ /obj/structure/disposalpipe/segment{ dir = 10 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding{ dir = 8 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/small, /area/station/science/lobby) "uGO" = ( @@ -64283,41 +64192,22 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding{ dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/small, /area/station/science/lobby) "uGU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/mapping_helpers/mail_sorting/science/research, /obj/structure/disposalpipe/sorting/mail/flip{ dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side{ dir = 10 }, /area/station/science/research) -"uGW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/white/side, -/area/station/science/research) -"uGX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/white/side, -/area/station/science/research) "uHc" = ( /obj/structure/frame/machine, /obj/item/stack/cable_coil/five, @@ -64330,8 +64220,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/cable, /obj/structure/sign/departments/rndserver/directional/south, +/obj/structure/cable, /turf/open/floor/iron/white/side, /area/station/science/research) "uHo" = ( @@ -64390,9 +64280,9 @@ }, /area/station/service/chapel/office) "uHR" = ( -/obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) "uIj" = ( @@ -64416,10 +64306,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/office) -"uIy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/hallway/secondary/recreation) "uIA" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 9 @@ -64439,12 +64325,12 @@ "uIP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /obj/effect/turf_decal/tile/red/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 8 }, /obj/machinery/firealarm/directional/north, -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 6 }, @@ -64462,6 +64348,18 @@ }, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) +"uJc" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Applied Sciences" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "sci-entrance" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/textured_half, +/area/station/science/lobby) "uJi" = ( /obj/effect/turf_decal/tile/green/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -64549,10 +64447,10 @@ /turf/open/floor/iron, /area/station/commons/dorms) "uKH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/camera/directional/north, /obj/machinery/status_display/ai/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side{ dir = 1 }, @@ -64585,14 +64483,14 @@ /turf/open/floor/plating, /area/station/maintenance/port/greater) "uLD" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/cable, /obj/machinery/duct, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/central/lesser) "uLO" = ( @@ -64633,9 +64531,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/small, /area/station/medical/cryo) "uMu" = ( @@ -64645,16 +64540,9 @@ /turf/open/floor/iron, /area/station/security/tram) "uME" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table/greyscale, -/obj/item/bodypart/leg/left/monkey{ - pixel_x = 5; - pixel_y = 7 - }, -/obj/item/scalpel, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/white/diagonal, -/area/station/maintenance/department/science/xenobiology) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/hallway/primary/starboard) "uMF" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; @@ -64698,13 +64586,11 @@ /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) "uNe" = ( -/obj/machinery/vending/wardrobe/sec_wardrobe, -/obj/effect/turf_decal/tile/dark_red/half/contrasted{ - dir = 1 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/customs) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/showroomfloor, +/area/station/commons/toilet/auxiliary) "uNz" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/dark_red{ @@ -64750,12 +64636,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"uNK" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/turf/open/floor/iron/dark, +/area/station/science/server) "uNR" = ( -/obj/structure/cable, /obj/structure/chair{ dir = 4; pixel_y = -2 }, +/obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) "uNX" = ( @@ -64796,15 +64687,8 @@ /turf/open/floor/wood/tile, /area/station/maintenance/central/lesser) "uOH" = ( -/obj/item/kirbyplants/random, -/obj/machinery/light_switch/directional/west, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) -"uOP" = ( -/obj/structure/cable, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/wood/tile, -/area/station/command/meeting_room) +/turf/open/misc/dirt/station, +/area/station/medical/morgue) "uPf" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -64832,15 +64716,15 @@ /turf/open/floor/tram, /area/station/security/tram) "uPJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/starboard) "uPM" = ( @@ -64860,10 +64744,10 @@ /turf/open/space/basic, /area/space/nearstation) "uQb" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, /turf/open/floor/plating, /area/station/science/ordnance/storage) "uQc" = ( @@ -64985,13 +64869,18 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/execution/education) +"uRP" = ( +/obj/structure/rack, +/obj/effect/spawner/random/techstorage/arcade_boards, +/obj/effect/turf_decal/tile/green/opposingcorners, +/obj/effect/turf_decal/bot, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "uRR" = ( /obj/structure/table, /obj/item/plant_analyzer, /obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/security/prison/garden) "uRW" = ( @@ -65020,30 +64909,30 @@ /turf/open/floor/wood/parquet, /area/station/service/library) "uSi" = ( +/obj/machinery/holopad, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/holopad, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload_foyer) "uSj" = ( /turf/closed/wall/r_wall, /area/station/medical/medbay/central) "uSo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/railing/corner{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/dorms) "uSB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/directional/west, -/obj/structure/cable, /obj/effect/landmark/navigate_destination/tcomms, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/iron, /area/station/science/lower) "uSM" = ( @@ -65071,8 +64960,8 @@ /turf/open/floor/iron/textured_half, /area/station/commons/storage/art) "uTb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/structure/table/glass, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/service/lawoffice) "uTz" = ( @@ -65118,17 +65007,17 @@ /turf/open/floor/engine/n2o, /area/station/engineering/atmos) "uTO" = ( -/obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, /turf/open/floor/plating, /area/station/security/checkpoint/science) "uTR" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/white/corner{ dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) "uUa" = ( @@ -65179,20 +65068,22 @@ /turf/open/floor/iron/small, /area/station/hallway/primary/central/aft) "uUe" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/closed/wall/r_wall, -/area/station/command/corporate_dock) +/obj/effect/turf_decal/siding/thinplating_new/terracotta, +/obj/machinery/computer/security/telescreen/entertainment/directional/north, +/obj/item/kirbyplants/organic/applebush, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/meeting_room) "uUf" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding{ dir = 1 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/small, /area/station/science/lobby) "uUj" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/starboard) "uUq" = ( @@ -65256,16 +65147,9 @@ /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/floor/iron, /area/station/engineering/atmos) -"uVc" = ( -/obj/effect/turf_decal/tile/green/opposingcorners, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 8 - }, -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron, -/area/station/service/hydroponics) "uVo" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 @@ -65273,7 +65157,6 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "uVB" = ( @@ -65299,13 +65182,6 @@ /obj/machinery/status_display/evac/directional/west, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) -"uVO" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "uVT" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/hop) @@ -65332,23 +65208,17 @@ /turf/open/floor/iron, /area/station/science/robotics/augments) "uWn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) "uWo" = ( /turf/closed/wall, /area/station/medical/paramedic) -"uWr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple/opposingcorners, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/cafeteria, -/area/station/science/circuits) "uWv" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/flora/bush/flowers_pp/style_random, @@ -65365,6 +65235,10 @@ dir = 1 }, /area/station/security/prison/safe) +"uWz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/closed/wall/r_wall, +/area/station/command/corporate_dock) "uWG" = ( /obj/structure/closet/firecloset, /obj/machinery/status_display/ai/directional/south, @@ -65372,10 +65246,10 @@ /area/station/hallway/primary/starboard) "uWQ" = ( /obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/structure/disposalpipe/sorting/mail{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) "uWZ" = ( @@ -65401,7 +65275,6 @@ /turf/open/floor/plating, /area/station/maintenance/aft) "uXV" = ( -/obj/structure/cable, /obj/machinery/door/window/brigdoor/left/directional/south{ name = "Creature Pen"; req_access = list("research") @@ -65410,6 +65283,7 @@ name = "Creature Pen"; req_access = list("research") }, +/obj/structure/cable, /turf/open/floor/catwalk_floor/iron, /area/station/science/xenobiology) "uXY" = ( @@ -65451,11 +65325,11 @@ /turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) "uYO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /obj/item/radio/intercom/directional/south, /obj/structure/broken_flooring/singular/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "uYY" = ( @@ -65470,6 +65344,14 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/security/courtroom) +"uZf" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science/research) "uZk" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/chair{ @@ -65477,13 +65359,6 @@ }, /turf/open/floor/iron, /area/station/security/brig/entrance) -"uZr" = ( -/obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "uZA" = ( /obj/structure/chair{ dir = 1; @@ -65542,26 +65417,24 @@ "vaw" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/item/radio/intercom/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) -"vaF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/kirbyplants/organic/applebush, -/obj/effect/turf_decal/weather/snow/corner{ +"vaR" = ( +/obj/structure/chair/wood{ dir = 4 }, -/turf/open/floor/iron/smooth, -/area/station/hallway/secondary/command) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/large, +/area/station/maintenance/department/science/xenobiology) "vba" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, /turf/open/floor/iron, /area/station/medical/chemistry) "vbp" = ( @@ -65570,10 +65443,10 @@ /area/station/maintenance/starboard/central) "vbq" = ( /obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) "vbA" = ( @@ -65581,6 +65454,12 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) +"vbJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/commons/fitness/recreation) "vbK" = ( /turf/closed/wall, /area/station/science/research) @@ -65612,17 +65491,10 @@ /turf/open/floor/circuit, /area/station/tcommsat/server) "vbR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) -"vbS" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) +/obj/machinery/status_display/ai/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/wood/tile, +/area/station/command/meeting_room) "vcd" = ( /obj/structure/chair{ dir = 8 @@ -65662,12 +65534,12 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock{ name = "Law Office" }, /obj/effect/mapping_helpers/airlock/access/any/service/lawyer, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/textured_half{ dir = 1 }, @@ -65676,11 +65548,11 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding{ dir = 10 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/small, /area/station/science/lobby) "vdg" = ( @@ -65689,10 +65561,10 @@ /area/space/nearstation) "vdj" = ( /obj/effect/turf_decal/tile/blue, -/obj/structure/filingcabinet/chestdrawer{ - pixel_y = 2 - }, -/obj/machinery/status_display/evac/directional/north, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/trunk, +/obj/machinery/computer/security/telescreen/entertainment/directional/north, /turf/open/floor/iron/dark/textured_edge{ dir = 1 }, @@ -65729,12 +65601,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"vdN" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/maintenance/port/aft) "vdX" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -65756,10 +65622,10 @@ /obj/effect/turf_decal/siding{ dir = 6 }, +/obj/item/assembly/igniter, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, -/obj/item/assembly/igniter, /turf/open/floor/iron/white/small, /area/station/science/lobby) "vej" = ( @@ -65771,10 +65637,6 @@ /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/open/floor/iron/dark/small, /area/station/maintenance/department/engine/atmos) -"veq" = ( -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "vex" = ( /obj/effect/turf_decal/stripes/end, /obj/item/kirbyplants/random/fullysynthetic, @@ -65855,28 +65717,29 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) +"vfH" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "vfI" = ( /obj/machinery/light_switch/directional/north, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/effect/turf_decal/siding/end{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom{ + dir = 8 }, -/obj/effect/turf_decal/siding/end, -/obj/machinery/smartfridge/drying, /turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) "vfK" = ( +/obj/effect/decal/cleanable/dirt, /obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) +/turf/open/floor/plating, +/area/station/maintenance/starboard/greater) "vfN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -65941,27 +65804,25 @@ /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) "vgy" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/blue{ dir = 4 }, /obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner{ dir = 1 }, /area/station/hallway/secondary/dock) "vgz" = ( -/obj/machinery/door/airlock{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/science/maintenance, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, /turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/area/station/tcommsat/server) "vgL" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/effect/turf_decal/tile/brown/opposingcorners, @@ -65992,12 +65853,11 @@ /turf/open/floor/iron/dark/diagonal, /area/station/service/bar) "vgY" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 9 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 }, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "vhr" = ( /obj/structure/sink/directional/west, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -66012,15 +65872,17 @@ /obj/machinery/holopad, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) -"vhC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"vhu" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/machinery/door/airlock/command/glass{ + name = "Telecommunications Server Room" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/starboard/central) +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "comms-entrance-south" + }, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/tcommsat/server) "vhI" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 4 @@ -66030,14 +65892,10 @@ }, /turf/open/floor/iron/dark, /area/station/security/processing) -"vhJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white, -/area/station/science/research) "vid" = ( -/obj/structure/closet/emcloset, +/obj/structure/cable, /turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/area/station/maintenance/aft) "vij" = ( /obj/structure/chair/comfy/black{ dir = 4 @@ -66057,15 +65915,15 @@ }, /area/station/science/research) "viy" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/blue/anticorner/contrasted, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "viA" = ( -/obj/structure/cable, /obj/effect/spawner/structure/window/reinforced/tinted, +/obj/structure/cable, /turf/open/floor/plating, /area/station/science/server) "viE" = ( @@ -66092,34 +65950,28 @@ /area/station/engineering/atmos/pumproom) "viK" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock{ name = "Maintenance" }, /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, /obj/effect/mapping_helpers/airlock/unres, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"viO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/west, +/turf/open/floor/wood/large, +/area/station/maintenance/department/science/xenobiology) "viP" = ( /obj/structure/closet/emcloset, /turf/open/floor/iron/small, /area/station/maintenance/starboard/central) "viT" = ( /obj/machinery/light/cold/directional/east, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"viV" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/dark/small, -/area/station/tcommsat/server) "viW" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 4 @@ -66145,11 +65997,22 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"vje" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 10 + }, +/obj/structure/table/reinforced, +/obj/item/wrench, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/science/xenobiology) "vjp" = ( -/obj/structure/cable, /obj/effect/turf_decal/sand/plating, /obj/machinery/power/floodlight, /obj/structure/alien/weeds, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) "vjs" = ( @@ -66168,31 +66031,34 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/textured_half, /area/station/commons/toilet/restrooms) +"vjV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science/lower) +"vjX" = ( +/mob/living/basic/mining/lobstrosity, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "vkh" = ( /turf/closed/wall, /area/station/service/bar) "vkr" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/engineering{ name = "Starboard Bow Solar Access" }, /obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/starboard/fore) -"vks" = ( -/obj/structure/cable, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "vkt" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/science/research) "vkC" = ( @@ -66203,16 +66069,18 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "vkD" = ( -/obj/structure/table, -/obj/item/stack/ore/gold{ - pixel_x = 5; - pixel_y = 13 +/obj/structure/table/reinforced, +/obj/machinery/cell_charger{ + pixel_y = 3; + pixel_x = 1 }, -/obj/item/stack/ore/uranium{ - pixel_y = 6 +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high{ + pixel_y = 2; + pixel_x = 4 }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "vkI" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -66230,9 +66098,6 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/closet/secure_closet/security/science, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) "vkN" = ( @@ -66269,9 +66134,9 @@ /turf/open/floor/iron/white, /area/station/science/auxlab/firing_range) "vkV" = ( +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/light/colour_cycle/dancefloor_b, /area/station/maintenance/starboard/central) "vkW" = ( @@ -66310,6 +66175,13 @@ }, /turf/open/floor/light/colour_cycle/dancefloor_b, /area/station/maintenance/starboard/central) +"vlr" = ( +/obj/structure/fermenting_barrel, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/maintenance/department/science/xenobiology) "vlB" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/decal/cleanable/dirt, @@ -66325,7 +66197,6 @@ /area/station/maintenance/aft) "vlX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/chapel{ dir = 4 }, @@ -66368,19 +66239,16 @@ dir = 4 }, /obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/dark, /area/station/science/genetics) "vmr" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock{ name = "Maintenance" }, /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/central/lesser) "vmt" = ( @@ -66406,9 +66274,9 @@ }, /area/station/service/chapel/office) "vmJ" = ( -/obj/structure/cable, /obj/machinery/holopad, /obj/effect/turf_decal/siding/corner, +/obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/cytology) "vmL" = ( @@ -66434,10 +66302,10 @@ /turf/open/floor/wood, /area/station/service/chapel/office) "vnf" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side, @@ -66556,6 +66424,10 @@ }, /turf/open/space/basic, /area/space/nearstation) +"vob" = ( +/obj/machinery/light/small/dim/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/engine/atmos) "voe" = ( /obj/structure/chair/sofa/bench/right{ dir = 1 @@ -66566,8 +66438,8 @@ /turf/open/floor/iron, /area/station/security/tram) "voh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/science/cytology) "voj" = ( @@ -66704,7 +66576,6 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 }, -/obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) "vpZ" = ( @@ -66761,13 +66632,13 @@ /turf/open/floor/circuit, /area/station/science/server) "vqX" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, /obj/machinery/door/airlock/command/glass{ name = "Telecommunications Server Room" }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor/iron_dark, /area/station/tcommsat/server) "vrf" = ( @@ -66785,13 +66656,6 @@ dir = 8 }, /area/station/engineering/main) -"vrj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/iron, -/area/station/cargo/storage) "vrn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -66813,9 +66677,6 @@ /area/station/security/detectives_office) "vrB" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) "vrO" = ( @@ -66876,9 +66737,7 @@ /turf/open/floor/iron/dark/small, /area/station/engineering/storage_shared) "vsi" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/commons/fitness/recreation) "vso" = ( @@ -66900,17 +66759,17 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, +/obj/machinery/firealarm/directional/south, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/south, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/robotics/augments) "vsQ" = ( -/obj/machinery/light_switch/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, +/obj/machinery/light_switch/directional/north, /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) @@ -66924,6 +66783,13 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"vtd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/dock) "vtr" = ( /obj/machinery/light/floor, /turf/open/floor/wood/parquet, @@ -66957,6 +66823,15 @@ /obj/machinery/duct, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"vtU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/button/door/directional/east{ + name = "Abandoned Lab Shutters"; + id = "abandoned_lab" + }, +/obj/item/bot_assembly/medbot, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "vtX" = ( /obj/effect/landmark/start/assistant, /obj/effect/turf_decal/tile/neutral, @@ -66979,10 +66854,10 @@ /area/station/cargo/drone_bay) "vum" = ( /obj/structure/cable, -/obj/machinery/firealarm/directional/north, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, +/obj/machinery/firealarm/directional/north, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) "vun" = ( @@ -67017,12 +66892,12 @@ /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) "vuB" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, /obj/machinery/door/airlock/research/glass{ name = "Xenobiology Kill Room" }, /obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, /turf/open/floor/catwalk_floor/iron, /area/station/science/xenobiology) "vuD" = ( @@ -67092,10 +66967,10 @@ /turf/open/floor/carpet, /area/station/commons/dorms) "vve" = ( +/obj/structure/cable, /obj/machinery/door/airlock/public/glass{ name = "Aft Corridor" }, -/obj/structure/cable, /turf/open/floor/iron/textured_half, /area/station/hallway/primary/aft) "vvs" = ( @@ -67182,24 +67057,16 @@ /obj/structure/closet/firecloset, /turf/open/floor/iron/small, /area/station/maintenance/department/medical/central) -"vwx" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron/dark/small, -/area/station/tcommsat/server) "vwE" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ - dir = 8 - }, /obj/item/kirbyplants/random{ pixel_y = 8 }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ + dir = 8 + }, /turf/open/floor/iron/grimy, /area/station/tcommsat/server) "vwI" = ( @@ -67210,13 +67077,13 @@ /turf/open/floor/iron/checker, /area/station/command/heads_quarters/hos) "vwJ" = ( +/obj/item/radio/intercom/directional/south, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/intercom/directional/south, /turf/open/floor/iron/dark, /area/station/science/ordnance) "vwQ" = ( @@ -67278,9 +67145,6 @@ /area/station/maintenance/department/science/xenobiology) "vxs" = ( /obj/effect/landmark/start/assistant, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/commons/storage/art) "vxt" = ( @@ -67310,13 +67174,13 @@ /turf/open/floor/plating, /area/station/maintenance/department/electrical) "vyi" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wood{ dir = 9 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/simple/dark/hidden, /turf/open/floor/wood/tile, /area/station/tcommsat/server) @@ -67370,12 +67234,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"vzh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron/showroomfloor, -/area/station/commons/toilet/auxiliary) "vzt" = ( /obj/structure/hedge, /obj/machinery/light/cold/directional/east, @@ -67388,24 +67246,12 @@ /obj/structure/alien/weeds, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"vzy" = ( -/obj/structure/cable, -/obj/machinery/door/airlock{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/science/maintenance, -/obj/effect/mapping_helpers/airlock/unres, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "vzA" = ( /obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) "vzD" = ( /obj/effect/turf_decal/stripes/white/line, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/dark/side, /area/station/cargo/storage) "vzE" = ( @@ -67428,11 +67274,11 @@ /turf/open/floor/engine/helium, /area/station/ai_monitored/turret_protected/ai) "vzN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock/research/glass{ name = "Cytology Lab" }, /obj/effect/mapping_helpers/airlock/access/all/science/research, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/research) "vzV" = ( @@ -67483,9 +67329,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral, /obj/structure/extinguisher_cabinet/directional/east, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "vAx" = ( @@ -67516,18 +67359,6 @@ /obj/effect/mapping_helpers/airlock/unres, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"vAT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/public/glass{ - name = "Applied Sciences" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "sci-entrance" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/white/textured_half, -/area/station/science/lobby) "vAX" = ( /obj/machinery/door/airlock/public/glass{ name = "Applied Sciences" @@ -67552,12 +67383,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/office) -"vBZ" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "vCc" = ( /obj/machinery/door/airlock/public/glass{ name = "Lockers" @@ -67579,13 +67404,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"vCl" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tcomms) "vCm" = ( /obj/structure/railing{ dir = 1 @@ -67607,13 +67425,18 @@ /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) "vCs" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, +/obj/structure/cable, +/obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/iron/dark, /area/station/science/xenobiology) +"vCu" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/kitchen/small, +/area/station/service/kitchen) "vCO" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, @@ -67671,8 +67494,8 @@ /area/station/hallway/primary/central/aft) "vCZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral, /obj/structure/cable, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "vDe" = ( @@ -67693,9 +67516,9 @@ /area/station/medical/medbay/central) "vDC" = ( /obj/structure/disposalpipe/segment, -/obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/central) "vDG" = ( @@ -67715,15 +67538,6 @@ "vDX" = ( /turf/closed/wall, /area/station/maintenance/starboard/lesser) -"vDZ" = ( -/obj/structure/chair/wood{ - dir = 8 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/stone, -/area/station/service/bar) "vEa" = ( /obj/machinery/griddle, /turf/open/floor/iron/kitchen/small, @@ -67743,15 +67557,13 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"vEn" = ( -/obj/effect/turf_decal/tile/blue, +"vEm" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/white/corner{ - dir = 8 + dir = 4 }, -/area/station/hallway/secondary/dock) +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tcomms) "vEz" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -67799,11 +67611,11 @@ /turf/closed/wall/r_wall, /area/station/security/prison/shower) "vFh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/landmark/blobstart, /obj/effect/turf_decal/siding/wood{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/grimy, /area/station/maintenance/starboard/central) "vFm" = ( @@ -67833,11 +67645,11 @@ /turf/open/floor/plating, /area/station/maintenance/port/lesser) "vFB" = ( -/obj/structure/cable, /obj/machinery/door/airlock{ name = "Maintenance" }, /obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) "vFD" = ( @@ -67879,13 +67691,13 @@ /turf/open/floor/iron, /area/station/security/tram) "vGe" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, /obj/effect/turf_decal/tile/red/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, /obj/effect/landmark/start/clown, /turf/open/floor/iron/smooth, /area/station/service/greenroom) @@ -67927,12 +67739,16 @@ /turf/open/floor/plating, /area/station/maintenance/port/lesser) "vGX" = ( -/obj/structure/bodycontainer/morgue{ +/obj/structure/disposaloutlet{ + desc = "An outlet for the pneumatic disposal system. This one seems designed for rapid corpse disposal."; + name = "rapid corpse mover 9000"; + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ dir = 1 }, -/obj/machinery/light_switch/directional/west, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/iron/dark/small, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/plating, /area/station/medical/morgue) "vHu" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -67947,13 +67763,13 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "vHH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, /obj/item/kirbyplants/random, /obj/effect/turf_decal/siding/thinplating_new{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) "vHS" = ( @@ -67993,9 +67809,15 @@ }, /turf/open/floor/wood, /area/station/engineering/atmos/office) +"vIa" = ( +/obj/effect/turf_decal/siding/dark_blue{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "vId" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/iron/white/corner, /area/station/science/lower) "vIt" = ( @@ -68008,17 +67830,16 @@ /turf/open/floor/iron, /area/station/maintenance/starboard/aft) "vIz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) +/obj/structure/chair, +/turf/open/floor/wood/tile, +/area/station/command/meeting_room) "vIC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/structure/cable, /obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/lesser) "vIJ" = ( @@ -68130,11 +67951,11 @@ }, /area/station/hallway/secondary/entry) "vJR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/medical{ name = "Medbay" }, @@ -68164,9 +67985,9 @@ /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) "vKe" = ( -/obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, /obj/machinery/power/smes/full, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/secondary/construction) "vKi" = ( @@ -68209,13 +68030,13 @@ /turf/open/floor/iron/dark/small, /area/station/security/detectives_office) "vKX" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wood{ dir = 10 }, /obj/machinery/camera/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood/tile, /area/station/science/lower) "vKY" = ( @@ -68258,12 +68079,6 @@ /obj/structure/chair/stool/directional/east, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"vLv" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/turf/open/floor/circuit/telecomms/mainframe, -/area/station/science/xenobiology) "vLC" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -68282,12 +68097,12 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/research{ name = "Augment Corridor" }, /obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/robotics/augments) "vLQ" = ( @@ -68309,6 +68124,11 @@ /obj/effect/turf_decal/box/white, /turf/open/floor/engine, /area/station/engineering/atmospherics_engine) +"vMi" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "vMr" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/alien/weeds, @@ -68347,8 +68167,8 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "vMJ" = ( -/obj/structure/disposalpipe/sorting/mail, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/sorting/mail, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -68425,19 +68245,13 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"vOb" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 2 - }, -/turf/open/floor/iron/dark, -/area/station/medical/chemistry) "vOf" = ( -/obj/structure/cable, /obj/structure/chair{ dir = 1; pixel_y = -2 }, /obj/machinery/firealarm/directional/south, +/obj/structure/cable, /turf/open/floor/iron, /area/station/science/lower) "vOg" = ( @@ -68449,11 +68263,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth, /area/station/commons/storage/tools) -"vOr" = ( +"vOt" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/showroomfloor, -/area/station/commons/toilet/auxiliary) +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "vOL" = ( /obj/structure/railing{ dir = 1 @@ -68487,8 +68303,8 @@ /turf/open/floor/grass, /area/station/science/genetics) "vPs" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -68518,11 +68334,11 @@ /area/station/command/corporate_suite) "vPS" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, /obj/effect/spawner/random/trash, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/central) "vQk" = ( @@ -68583,13 +68399,6 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) -"vRh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white/side{ - dir = 1 - }, -/area/station/science/research) "vRt" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -68639,8 +68448,8 @@ /turf/open/floor/wood, /area/station/engineering/atmos/pumproom) "vSw" = ( -/obj/effect/landmark/start/hangover, /obj/structure/cable, +/obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/primary/aft) "vSx" = ( @@ -68652,10 +68461,10 @@ /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) "vSI" = ( -/obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, +/obj/machinery/door/firedoor, /turf/open/floor/iron/small, /area/station/service/bar) "vSL" = ( @@ -68669,9 +68478,6 @@ /turf/open/floor/iron, /area/station/hallway/primary/aft) "vSM" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/command{ name = "Telecomms Server Room" }, @@ -68680,6 +68486,9 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "comms-entrance-north" }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_dark, /area/station/tcommsat/server) "vSW" = ( @@ -68694,17 +68503,16 @@ /turf/open/floor/iron, /area/station/commons/storage/art) "vTf" = ( +/obj/machinery/air_sensor/ordnance_freezer_chamber, /obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ dir = 9 }, /obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ dir = 4 }, -/obj/machinery/air_sensor/ordnance_freezer_chamber, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/freezerchamber) "vTg" = ( -/obj/structure/cable, /obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, /obj/machinery/door/airlock/command/glass{ name = "Telecommunications Server Room" @@ -68712,6 +68520,7 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "comms-entrance-north" }, +/obj/structure/cable, /turf/open/floor/catwalk_floor/iron_dark, /area/station/tcommsat/server) "vTj" = ( @@ -68744,12 +68553,6 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"vTv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "vTx" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, @@ -68937,23 +68740,23 @@ /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) "vVX" = ( -/obj/structure/cable, /obj/machinery/telecomms/processor/preset_one, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /turf/open/floor/circuit, /area/station/tcommsat/server) "vWa" = ( -/obj/effect/turf_decal/siding/white{ - dir = 5 +/obj/effect/landmark/start/coroner, +/obj/machinery/holopad, +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 2 }, -/obj/structure/table/reinforced, -/obj/machinery/computer/records/medical/laptop, -/turf/open/floor/iron/small, +/turf/open/floor/iron/dark, /area/station/medical/morgue) "vWe" = ( +/obj/machinery/firealarm/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/west, /turf/open/floor/iron/white/corner, /area/station/science/lobby) "vWr" = ( @@ -68998,6 +68801,12 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"vWC" = ( +/obj/effect/spawner/random/structure/crate_abandoned, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "vWF" = ( /obj/docking_port/stationary/laborcamp_home/kilo{ dir = 4 @@ -69040,6 +68849,14 @@ /obj/item/clothing/gloves/boxing/blue, /turf/open/floor/iron, /area/station/security/prison/workout) +"vXc" = ( +/obj/effect/turf_decal/trimline/dark/line, +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/department/science/xenobiology) "vXd" = ( /obj/item/flashlight/lantern/on, /obj/effect/turf_decal/siding/wood, @@ -69054,10 +68871,6 @@ /obj/item/reagent_containers/cup/bowl, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"vXn" = ( -/obj/item/wirecutters, -/turf/open/floor/iron/white/diagonal, -/area/station/maintenance/department/science/xenobiology) "vXr" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -69098,8 +68911,8 @@ }, /area/station/science/lobby) "vXH" = ( -/obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, /turf/open/floor/plating, /area/station/science/lower) "vXL" = ( @@ -69113,17 +68926,18 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security) +"vYi" = ( +/obj/machinery/airalarm/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/diagonal, +/area/station/ai_monitored/command/storage/eva) "vYj" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"vYv" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "vYx" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 1 @@ -69170,9 +68984,9 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, +/obj/machinery/firealarm/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/west, /turf/open/floor/iron/white/side{ dir = 10 }, @@ -69184,8 +68998,8 @@ /turf/open/floor/iron/checker, /area/station/security/breakroom) "vYS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/grimy, /area/station/maintenance/starboard/central) "vYT" = ( @@ -69218,6 +69032,11 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"vZf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible, +/turf/open/floor/plating, +/area/station/science/ordnance/testlab) "vZm" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, @@ -69267,9 +69086,6 @@ /obj/structure/table, /obj/effect/turf_decal/tile/red/fourcorners, /obj/item/folder/red, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/security/courtroom) "wap" = ( @@ -69288,9 +69104,6 @@ /obj/effect/turf_decal/siding/thinplating_new/dark{ dir = 4 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/security/courtroom) "waD" = ( @@ -69334,10 +69147,10 @@ "waY" = ( /obj/effect/turf_decal/weather/snow, /obj/machinery/gibber, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 }, -/turf/open/floor/iron/freezer, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) "wbd" = ( /obj/structure/cable, @@ -69383,8 +69196,6 @@ /turf/open/floor/wood, /area/station/service/chapel/office) "wbO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding{ dir = 6 }, @@ -69392,22 +69203,17 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/iron/white/small, -/area/station/science/lab) -"wco" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white/side{ - dir = 4 - }, -/area/station/science/research) +/turf/open/floor/iron/white/small, +/area/station/science/lab) "wcp" = ( /turf/closed/wall/r_wall, /area/station/science/genetics) "wcq" = ( -/obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, /turf/open/floor/iron/white/small, /area/station/science/server) @@ -69441,12 +69247,6 @@ /area/station/hallway/secondary/exit/departure_lounge) "wcP" = ( /obj/machinery/modular_computer/preset/cargochat/cargo, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 2 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron, /area/station/cargo/sorting) "wcR" = ( @@ -69456,11 +69256,16 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/machinery/airalarm/directional/north, /obj/effect/landmark/start/hangover, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"wcT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/small, +/area/station/science/cubicle) "wcV" = ( /obj/structure/closet/crate, /obj/item/food/breadslice/plain, @@ -69485,18 +69290,8 @@ }, /obj/structure/cable, /obj/machinery/meter, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"wdd" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/starboard/central) "wdk" = ( /turf/closed/mineral/random/stationside, /area/station/maintenance/starboard/greater) @@ -69516,10 +69311,10 @@ /turf/open/space/basic, /area/space/nearstation) "wdS" = ( +/obj/machinery/camera/autoname/directional/west, /obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ dir = 4 }, -/obj/machinery/camera/autoname/directional/west, /turf/open/floor/circuit, /area/station/tcommsat/server) "wdY" = ( @@ -69537,14 +69332,14 @@ /area/station/science/robotics/mechbay) "wed" = ( /obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/research{ name = "Augment Corridor" }, /obj/effect/mapping_helpers/airlock/access/all/science/robotics, /obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/robotics/augments) "wen" = ( @@ -69589,15 +69384,15 @@ "wfn" = ( /turf/closed/wall, /area/station/engineering/break_room) +"wfp" = ( +/obj/structure/closet/firecloset, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "wfr" = ( /turf/closed/wall/r_wall, /area/station/medical/pharmacy) -"wfu" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/maintenance/port/aft) "wfG" = ( /obj/structure/disposalpipe/segment, /obj/machinery/firealarm/directional/west, @@ -69615,6 +69410,7 @@ "wgp" = ( /obj/structure/cable, /obj/machinery/holopad, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) "wgs" = ( @@ -69719,14 +69515,11 @@ /turf/open/floor/plating, /area/station/engineering/supermatter/room) "whu" = ( -/obj/structure/cable, /obj/machinery/blackbox_recorder, +/obj/structure/cable, /turf/open/floor/circuit, /area/station/tcommsat/server) "whA" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/maintenance_hatch{ name = "Construction Hatch" @@ -69735,6 +69528,9 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "whD" = ( @@ -69783,9 +69579,6 @@ dir = 8 }, /obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) "wie" = ( @@ -69794,9 +69587,6 @@ }, /obj/effect/spawner/random/vending/colavend, /obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, /turf/open/floor/iron/dark/side, /area/station/cargo/lobby) "win" = ( @@ -69805,24 +69595,6 @@ }, /turf/closed/wall/r_wall, /area/station/security/brig/entrance) -"wir" = ( -/obj/effect/turf_decal/box/red/corners{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 5 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 2 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) -"wiw" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/commons/fitness/locker_room) "wiC" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -69842,21 +69614,24 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"wiO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/grimy, +/area/station/commons/vacant_room/office) "wiP" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/space/nearstation) "wja" = ( -/turf/closed/wall/r_wall, -/area/station/commons/toilet/auxiliary) +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_burn_chamber_input, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "wjq" = ( /obj/structure/sign/painting/large/library{ dir = 1 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "wjr" = ( @@ -69904,16 +69679,20 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) +"wkq" = ( +/obj/structure/cable, +/turf/closed/wall/r_wall, +/area/station/command/meeting_room) "wkF" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/hallway/secondary/recreation) "wkG" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 10 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, @@ -69929,6 +69708,13 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"wlo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/dark/diagonal, +/area/station/ai_monitored/command/storage/eva) "wme" = ( /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, @@ -69939,15 +69725,14 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "wmu" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/siding/thinplating_new/terracotta/corner{ - dir = 1 +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/structure/fireaxecabinet/directional/east, +/obj/effect/turf_decal/siding/dark{ + dir = 8 }, -/turf/open/floor/iron/dark/smooth_large, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/textured, /area/station/command/meeting_room) "wmx" = ( /obj/structure/cable, @@ -69975,9 +69760,9 @@ /area/station/hallway/secondary/dock) "wmD" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) "wmE" = ( @@ -70069,6 +69854,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"wnI" = ( +/obj/machinery/door/airlock/glass, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/greater) +"wnO" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/research) "wnR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -70090,11 +69888,6 @@ "woi" = ( /turf/closed/wall/r_wall, /area/station/maintenance/solars/starboard/fore) -"wos" = ( -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/tcommsat/server) "woz" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/machinery/camera/autoname/directional/east, @@ -70113,7 +69906,10 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ dir = 8 }, /turf/open/floor/wood/tile, @@ -70155,9 +69951,6 @@ /obj/structure/chair/sofa/bench/left{ dir = 8 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "woY" = ( @@ -70197,8 +69990,6 @@ /turf/closed/wall/r_wall, /area/station/security/processing) "wqb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/white{ dir = 4 }, @@ -70207,6 +69998,8 @@ name = "Xenobiology Requests Console" }, /obj/effect/mapping_helpers/requests_console/ore_update, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) "wqj" = ( @@ -70253,9 +70046,6 @@ "wqY" = ( /obj/machinery/camera/autoname/directional/east, /obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron/dark, /area/station/security/prison/workout) "wrj" = ( @@ -70305,10 +70095,10 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, +/obj/structure/cable, /obj/effect/turf_decal/trimline/neutral/end{ dir = 1 }, -/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/aft) "wrO" = ( @@ -70330,26 +70120,30 @@ /turf/open/floor/carpet/lone, /area/station/service/abandoned_gambling_den) "wrW" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/computer/security{ dir = 8 }, /obj/machinery/camera/directional/east, /obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/machinery/light_switch/directional/south, /turf/open/floor/iron/dark, /area/station/command/corporate_dock) "wrZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 10 }, -/obj/structure/cable, /obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/central/lesser) "wsa" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, /obj/structure/window/reinforced/spawner/directional/west, /obj/effect/turf_decal/tile/red/anticorner/contrasted{ dir = 8 @@ -70358,9 +70152,6 @@ /obj/effect/turf_decal/siding/thinplating_new/dark/corner{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) "wsb" = ( @@ -70383,9 +70174,6 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/iron, /area/station/security/prison) "wsL" = ( @@ -70397,21 +70185,21 @@ /area/station/maintenance/starboard/fore) "wsR" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) "wtc" = ( -/obj/structure/cable, /obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/iron/dark/side, +/obj/structure/cable, +/turf/open/floor/iron/dark, /area/station/science/xenobiology) "wtd" = ( /obj/effect/turf_decal/delivery, @@ -70437,12 +70225,6 @@ /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron/white/small, /area/station/medical/storage) -"wtp" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/misc/dirt/station, -/area/station/service/chapel) "wtq" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/plating, @@ -70464,9 +70246,6 @@ /turf/closed/wall, /area/station/ai_monitored/turret_protected/ai_upload) "wtu" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/highsecurity{ name = "AI Upload" @@ -70475,6 +70254,9 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/textured_half, /area/station/ai_monitored/turret_protected/ai_upload) "wtv" = ( @@ -70530,9 +70312,9 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "wtT" = ( +/obj/machinery/light/cold/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/cold/directional/west, /turf/open/floor/iron/white/side{ dir = 4 }, @@ -70551,27 +70333,16 @@ /turf/open/floor/plating, /area/station/maintenance/aft) "wuj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/turf_decal/tile/blue, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "wum" = ( /turf/closed/wall/r_wall, /area/station/security/medical) -"wuo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron/white/side{ - dir = 8 - }, -/area/station/science/lobby) "wup" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 6 @@ -70582,10 +70353,15 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "wuq" = ( -/obj/structure/table, -/obj/effect/spawner/random/techstorage/rnd_secure_all, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) +/obj/effect/turf_decal/trimline/neutral/warning{ + dir = 4 + }, +/obj/effect/mapping_helpers/dead_body_placer{ + bodycount = 2 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) "wur" = ( /obj/structure/closet/l3closet/scientist, /obj/effect/turf_decal/stripes/line, @@ -70654,9 +70430,9 @@ /turf/open/floor/iron, /area/station/cargo/office) "wvM" = ( +/obj/machinery/light/floor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/floor, /turf/open/floor/iron/white/small, /area/station/science/cubicle) "wvZ" = ( @@ -70693,7 +70469,6 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "wwz" = ( -/obj/structure/cable, /obj/machinery/computer/mech_bay_power_console{ dir = 1 }, @@ -70701,21 +70476,32 @@ dir = 6 }, /obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) "wwI" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment, +/obj/structure/cable, /turf/open/floor/iron/white/side{ dir = 1 }, /area/station/science/lower) +"wwK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "wwQ" = ( /obj/structure/chair/office{ dir = 4 }, /turf/open/floor/iron/white/small, /area/station/science/server) +"wwT" = ( +/obj/effect/turf_decal/trimline/neutral/warning{ + dir = 8 + }, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) "wwU" = ( /obj/structure/hedge, /obj/machinery/camera/autoname/directional/east, @@ -70727,18 +70513,14 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/greater) "wxd" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock{ name = "Maintenance" }, /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, +/obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/station/maintenance/starboard/fore) -"wxu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/closed/wall/r_wall, -/area/station/maintenance/starboard/central) "wxG" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/light/small/dim/directional/north, @@ -70785,18 +70567,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"wxZ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/science/xenobiology) "wya" = ( /obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ dir = 1 @@ -70804,9 +70574,6 @@ /obj/machinery/chem_dispenser, /obj/effect/decal/cleanable/cobweb, /obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) "wyb" = ( @@ -70832,6 +70599,12 @@ /obj/effect/spawner/random/decoration/flower, /turf/open/floor/wood, /area/station/service/chapel/office) +"wyo" = ( +/obj/effect/turf_decal/tile/dark_red/half/contrasted, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/customs) "wyy" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/computer/scan_consolenew{ @@ -70931,11 +70704,14 @@ /turf/open/floor/iron/kitchen/small, /area/station/security/breakroom) "wAf" = ( -/obj/structure/chair/plastic{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) "wAh" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -70960,6 +70736,13 @@ }, /turf/open/floor/wood, /area/station/security/detectives_office) +"wAl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/hallway/primary/starboard) "wAS" = ( /obj/structure/table/wood, /obj/item/hand_labeler, @@ -70991,10 +70774,10 @@ /turf/open/floor/iron, /area/station/hallway/secondary/entry) "wBi" = ( -/obj/structure/cable, /obj/machinery/door/airlock/engineering{ name = "Supplies Depot" }, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/hallway/secondary/construction) @@ -71020,21 +70803,28 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"wBF" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "wBI" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/cytology) "wBN" = ( -/obj/structure/bed/maint, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "wCa" = ( -/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 5 }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, /turf/open/floor/iron/dark, /area/station/medical/cryo) "wCc" = ( @@ -71046,9 +70836,6 @@ /obj/machinery/flasher/directional/east{ id = "hopflash" }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron/half, /area/station/hallway/primary/central/fore) "wCx" = ( @@ -71156,13 +70943,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"wEf" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "wEs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -71182,15 +70962,11 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/textured_half, /area/station/service/hydroponics) -"wEC" = ( -/obj/structure/disposalpipe/segment, +"wEw" = ( +/obj/structure/lattice/catwalk, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white/side{ - dir = 1 - }, -/area/station/science/lower) +/turf/open/space/basic, +/area/space/nearstation) "wEF" = ( /obj/structure/table, /obj/machinery/light/small/directional/north, @@ -71212,12 +70988,12 @@ /turf/open/floor/plating, /area/station/maintenance/port/aft) "wFa" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/purple{ dir = 8 }, /obj/structure/filingcabinet/chestdrawer, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) "wFd" = ( @@ -71250,9 +71026,9 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "wFQ" = ( -/obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/structure/steam_vent, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) "wFV" = ( @@ -71276,10 +71052,10 @@ /turf/open/floor/plating, /area/station/hallway/secondary/dock) "wGq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/singular/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/hallway/secondary/dock) "wGu" = ( @@ -71333,15 +71109,26 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "wGU" = ( -/obj/structure/table, -/obj/effect/spawner/random/techstorage/ai_all, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/tcommsat/server) "wHg" = ( /obj/structure/filingcabinet/filingcabinet, /turf/open/floor/iron/grimy, /area/station/science/cubicle) +"wHl" = ( +/obj/structure/transit_tube/crossing/horizontal, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/space/basic, +/area/space/nearstation) +"wHJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/floor/iron/dark/small, +/area/station/tcommsat/server) "wHN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -71363,12 +71150,12 @@ /turf/open/floor/iron, /area/station/hallway/secondary/dock) "wHS" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/machinery/power/apc/auto_name/directional/north, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, @@ -71379,13 +71166,10 @@ /turf/open/misc/sandy_dirt, /area/station/medical/medbay/lobby) "wIm" = ( -/obj/machinery/door/airlock/hatch{ - name = "Centcom Dock" - }, -/obj/effect/mapping_helpers/airlock/access/any/command/general, -/obj/effect/mapping_helpers/airlock/access/any/admin/general, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/dark/smooth_large, +/area/station/ai_monitored/command/storage/eva) "wIp" = ( /obj/structure/window/reinforced/spawner/directional/north, /turf/open/space/basic, @@ -71400,11 +71184,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/supermatter/room) -"wIY" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/science/robotics/lab) "wJd" = ( /turf/closed/wall, /area/station/hallway/secondary/construction) @@ -71413,10 +71192,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"wJo" = ( -/obj/structure/cable, -/turf/closed/wall/r_wall, -/area/station/maintenance/department/science/xenobiology) "wJv" = ( /obj/structure/table/wood, /obj/effect/turf_decal/siding/wood/corner{ @@ -71512,10 +71287,12 @@ /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai_upload) "wKm" = ( -/obj/effect/turf_decal/siding/white/corner{ - dir = 4 +/obj/effect/turf_decal/siding/dark_blue/corner{ + dir = 1 }, -/turf/open/floor/iron/small, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, /area/station/medical/morgue) "wKn" = ( /obj/machinery/camera/autoname/directional/north, @@ -71600,12 +71377,12 @@ /turf/open/floor/engine, /area/station/engineering/supermatter/room) "wLZ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/directional/east, /obj/machinery/computer/atmos_control/ordnancemix{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/open/floor/iron/dark, /area/station/science/ordnance) "wMg" = ( @@ -71630,7 +71407,6 @@ /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) "wME" = ( -/obj/structure/cable, /obj/structure/table, /obj/machinery/power/apc/auto_name/directional/north, /obj/effect/spawner/round_default_module, @@ -71638,6 +71414,7 @@ /obj/item/radio/intercom/directional/north{ pixel_x = 27 }, +/obj/structure/cable, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai_upload) "wMG" = ( @@ -71663,7 +71440,6 @@ /turf/closed/wall/r_wall, /area/station/science/server) "wMP" = ( -/obj/structure/cable, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -71671,6 +71447,7 @@ /obj/machinery/light/cold/directional/north, /obj/effect/landmark/start/hangover, /obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, /turf/open/floor/plating, /area/station/science/lobby) "wMT" = ( @@ -71686,13 +71463,13 @@ /turf/open/floor/plating, /area/station/medical/medbay/lobby) "wNb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/item/assembly/timer{ pixel_x = 3; pixel_y = 3 }, /obj/machinery/newscaster/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side{ dir = 4 }, @@ -71701,13 +71478,6 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/fore/greater) -"wNg" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 8 - }, -/turf/open/floor/iron/smooth_large, -/area/station/science/robotics/mechbay) "wNs" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -71755,9 +71525,9 @@ /turf/open/floor/tram, /area/station/security/tram) "wNT" = ( +/obj/machinery/light_switch/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light_switch/directional/west, /turf/open/floor/iron, /area/station/command/heads_quarters/rd) "wNU" = ( @@ -71783,6 +71553,17 @@ /obj/machinery/light/small/dim/directional/north, /turf/open/floor/sepia, /area/station/maintenance/aft) +"wOc" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/science/xenobiology) "wOh" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/table/glass, @@ -71955,7 +71736,6 @@ /turf/open/floor/iron, /area/station/medical/chemistry) "wPX" = ( -/obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/chair/office{ dir = 4 @@ -71963,6 +71743,7 @@ /obj/effect/turf_decal/siding/purple{ dir = 8 }, +/obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, @@ -72032,15 +71813,15 @@ /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) "wQP" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/highsecurity{ name = "Secure Network Access" }, /obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, /obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/textured_half, /area/station/ai_monitored/turret_protected/ai_upload_foyer) "wQT" = ( @@ -72067,10 +71848,10 @@ /turf/open/floor/iron/cafeteria, /area/station/security/prison) "wRd" = ( +/obj/effect/mapping_helpers/broken_floor, /obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ dir = 6 }, -/obj/effect/mapping_helpers/broken_floor, /obj/machinery/atmospherics/components/unary/vent_scrubber, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/freezerchamber) @@ -72079,11 +71860,19 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"wRm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/turf/open/floor/iron/white/small, +/area/station/science/ordnance/storage) "wRo" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ - dir = 10 +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 5 }, -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_freezer_chamber_input, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/freezerchamber) "wRy" = ( @@ -72119,6 +71908,7 @@ /turf/open/floor/plating, /area/station/maintenance/central/greater) "wRP" = ( +/obj/structure/cable, /obj/machinery/camera/directional/south{ c_tag = "Atmospherics - South" }, @@ -72139,12 +71929,12 @@ /obj/item/flashlight{ pixel_y = 4 }, -/obj/structure/cable, /turf/open/floor/iron/white/small, /area/station/service/janitor) "wRU" = ( -/obj/machinery/smartfridge/organ, -/turf/open/floor/plating, +/obj/effect/landmark/start/coroner, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/dark/small, /area/station/medical/morgue) "wSg" = ( /obj/effect/turf_decal/tile/blue{ @@ -72173,19 +71963,14 @@ /obj/item/stack/medical/gauze, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"wSH" = ( -/obj/structure/cable, -/obj/machinery/door/airlock/highsecurity{ - name = "Secure Tech Storage" - }, -/obj/effect/mapping_helpers/airlock/access/all/command/general, -/turf/open/floor/iron/textured_half, -/area/station/engineering/storage/tech) "wSL" = ( -/obj/structure/rack, -/obj/effect/spawner/random/techstorage/engineering_all, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) +/obj/structure/bonfire, +/obj/item/storage/box/matches{ + pixel_x = -4; + pixel_y = -6 + }, +/turf/open/misc/dirt/station, +/area/station/medical/morgue) "wSZ" = ( /turf/closed/wall/r_wall, /area/station/maintenance/hallway/abandoned_command) @@ -72294,9 +72079,6 @@ req_access = list("medical") }, /obj/machinery/keycard_auth/wall_mounted/directional/east, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/cmo) "wTX" = ( @@ -72340,8 +72122,8 @@ /turf/open/floor/iron/white/small, /area/station/service/janitor) "wVg" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/science/ordnance/testlab) "wVr" = ( @@ -72394,15 +72176,21 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"wWN" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters{ + dir = 1; + id = "abandoned_lab"; + name = "Abandoned Lab Shutters" + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "wWR" = ( /obj/structure/table, /obj/item/clothing/gloves/color/orange, /obj/item/restraints/handcuffs, /obj/item/reagent_containers/spray/pepper, /obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron, /area/station/security/execution/transfer) "wWS" = ( @@ -72410,9 +72198,9 @@ /area/station/security/prison) "wWU" = ( /obj/structure/cable, -/obj/effect/spawner/random/trash, +/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/area/station/engineering/storage/tech) "wWX" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted{ dir = 4 @@ -72494,12 +72282,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood/tile, /area/station/science/lower) -"wYd" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) "wYv" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 9 @@ -72513,14 +72295,6 @@ "wYA" = ( /turf/closed/wall/r_wall, /area/station/medical/chemistry) -"wYH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/iron/herringbone, -/area/station/commons/dorms) "wYK" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/effect/turf_decal/siding/wideplating{ @@ -72548,12 +72322,6 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/hallway/secondary/exit/departure_lounge) -"wZk" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "wZp" = ( /obj/effect/turf_decal/arrows{ dir = 8 @@ -72590,10 +72358,10 @@ /area/station/hallway/primary/central/aft) "wZA" = ( /obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/broken_floor, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/central) "wZF" = ( @@ -72617,13 +72385,13 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) -"xam" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"xae" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white/side, -/area/station/science/research) +/turf/open/floor/iron, +/area/station/maintenance/starboard/greater) "xap" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron, @@ -72631,16 +72399,6 @@ "xat" = ( /turf/closed/wall, /area/station/cargo/office) -"xau" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "xaC" = ( /obj/machinery/holopad, /turf/open/floor/iron, @@ -72654,14 +72412,14 @@ /turf/open/floor/iron, /area/station/hallway/primary/starboard) "xaI" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/item/kirbyplants/random, /obj/machinery/status_display/ai/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "xaN" = ( @@ -72676,10 +72434,8 @@ /turf/open/floor/iron/white, /area/station/science/robotics/augments) "xaW" = ( -/obj/structure/cable, /obj/structure/hedge, -/obj/machinery/status_display/ai/directional/north, -/turf/open/floor/plating, +/turf/open/floor/iron/dark/smooth_large, /area/station/engineering/storage/tech) "xba" = ( /obj/effect/turf_decal/stripes/line{ @@ -72696,8 +72452,13 @@ /area/station/cargo/miningoffice) "xbe" = ( /obj/structure/cable, -/turf/open/floor/grass, -/area/station/science/xenobiology) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/hallway/secondary/command) "xbg" = ( /turf/closed/wall, /area/station/commons/fitness/recreation) @@ -72730,13 +72491,6 @@ /obj/structure/hedge, /turf/open/floor/iron/dark, /area/station/command/corporate_dock) -"xbT" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/iron/white, -/area/station/science/cytology) "xbV" = ( /obj/structure/disposalpipe/segment, /obj/machinery/light/floor, @@ -72828,10 +72582,6 @@ }, /turf/open/floor/iron, /area/station/science/cytology) -"xdc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/white, -/area/station/hallway/primary/starboard) "xdo" = ( /obj/machinery/firealarm/directional/north, /obj/item/kirbyplants/random/fullysynthetic, @@ -72841,19 +72591,19 @@ /turf/open/floor/iron/dark, /area/station/security/lockers) "xds" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/side{ dir = 8 }, /area/station/science/research) "xdu" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "xdv" = ( @@ -72903,13 +72653,13 @@ /turf/open/space/basic, /area/space/nearstation) "xer" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment, /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ id = "rdoffice"; name = "Research Director's Shutters" }, +/obj/structure/cable, /turf/open/floor/plating, /area/station/science/research) "xeC" = ( @@ -72959,9 +72709,6 @@ /obj/effect/turf_decal/stripes/white/line{ dir = 10 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /turf/open/floor/engine, /area/station/science/xenobiology) "xeV" = ( @@ -73035,13 +72782,6 @@ /obj/effect/mapping_helpers/mail_sorting/security/hos_office, /turf/open/floor/iron, /area/station/security) -"xfu" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 6 - }, -/turf/open/floor/iron/white, -/area/station/science/cytology) "xfy" = ( /obj/structure/transport/linear/tram, /obj/structure/fluff/tram_rail/floor{ @@ -73106,9 +72846,6 @@ /obj/structure/chair{ pixel_y = -2 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron/dark/small, /area/station/security/checkpoint/customs/auxiliary) "xgw" = ( @@ -73179,14 +72916,6 @@ dir = 8 }, /area/station/hallway/primary/central/fore) -"xhl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "xhC" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -73208,9 +72937,9 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, +/obj/effect/landmark/navigate_destination/lawyer, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/navigate_destination/lawyer, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) "xhM" = ( @@ -73233,17 +72962,13 @@ "xia" = ( /turf/closed/wall, /area/station/science/cubicle) +"xid" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) "xik" = ( /turf/closed/wall, /area/station/security/prison/rec) -"xil" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating_new/terracotta{ - dir = 8 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/meeting_room) "xin" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -73266,28 +72991,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"xiN" = ( -/obj/machinery/door/window/left/directional/north{ - name = "Equipment Storage"; - pixel_x = -1; - req_access = list("eva") - }, -/obj/structure/rack, -/obj/item/clothing/shoes/magboots, -/obj/item/clothing/shoes/magboots{ - pixel_x = 4; - pixel_y = -3 - }, -/obj/item/tank/jetpack/carbondioxide, -/obj/item/tank/jetpack/carbondioxide{ - pixel_x = -4; - pixel_y = 1 - }, -/obj/machinery/camera/directional/south{ - c_tag = "Atmospherics - South" - }, -/turf/open/floor/iron/large, -/area/station/ai_monitored/command/storage/eva) "xiS" = ( /obj/effect/turf_decal/trimline/neutral/line, /obj/effect/turf_decal/trimline/neutral/line{ @@ -73301,13 +73004,13 @@ /turf/open/floor/iron, /area/station/hallway/primary/port) "xiT" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/white{ dir = 8 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) "xjb" = ( @@ -73333,13 +73036,13 @@ /turf/open/floor/iron/dark, /area/station/security/interrogation) "xjo" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/sign/warning/pods/directional/north, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/warning/pods/directional/north, /turf/open/floor/iron/white/corner{ dir = 8 }, @@ -73351,10 +73054,10 @@ /obj/structure/railing/corner{ dir = 1 }, +/obj/effect/landmark/start/hangover, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, -/obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/commons/dorms) "xjE" = ( @@ -73418,20 +73121,22 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"xkt" = ( -/turf/closed/wall/r_wall, -/area/station/ai_monitored/security/armory) -"xkK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 +"xko" = ( +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/machinery/door/airlock{ + name = "Maintenance" }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron/dark/side{ +/obj/effect/mapping_helpers/airlock/unres{ dir = 1 }, -/area/station/science/xenobiology) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"xkt" = ( +/turf/closed/wall/r_wall, +/area/station/ai_monitored/security/armory) "xkO" = ( /obj/item/kirbyplants/random, /turf/open/floor/iron/white, @@ -73553,11 +73258,10 @@ /obj/effect/mapping_helpers/requests_console/supplies, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) -"xnk" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood/tile, -/area/station/service/lawoffice) +"xnn" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/turf/open/floor/catwalk_floor, +/area/station/maintenance/department/science/xenobiology) "xno" = ( /obj/effect/turf_decal/tile/red/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -73592,7 +73296,6 @@ /turf/open/floor/plating, /area/station/maintenance/department/electrical) "xnR" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/directional/east, /obj/effect/mapping_helpers/airalarm/mixingchamber_access, @@ -73600,21 +73303,28 @@ chamber_id = "ordnanceburn" }, /obj/effect/mapping_helpers/airalarm/tlv_no_checks, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"xnY" = ( +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/white/corner{ + dir = 8 + }, +/area/station/hallway/secondary/dock) "xoa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/starboard) "xoh" = ( @@ -73636,19 +73346,44 @@ /turf/open/floor/iron/dark, /area/station/medical/medbay/central) "xoS" = ( +/obj/structure/cable, +/obj/structure/table/bronze, /obj/effect/turf_decal/siding/thinplating_new/terracotta{ - dir = 9 + dir = 4 }, -/obj/machinery/light_switch/directional/north, -/turf/open/floor/iron/small, -/area/station/ai_monitored/command/storage/eva) -"xoW" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +/obj/item/reagent_containers/cup/glass/bottle/beer{ + pixel_x = 7; + pixel_y = 11 + }, +/obj/item/reagent_containers/cup/glass/bottle/beer{ + pixel_x = -1; + pixel_y = 11 + }, +/obj/item/reagent_containers/cup/glass/bottle/beer{ + pixel_x = 3; + pixel_y = 7 + }, +/obj/item/reagent_containers/cup/glass/bottle/beer{ + pixel_x = -7; + pixel_y = 7 + }, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 2 +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/meeting_room) +"xoT" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/structure/closet/cabinet, +/obj/effect/spawner/random/food_or_drink/cups, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/science/xenobiology) +"xoW" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) @@ -73704,26 +73439,15 @@ /turf/closed/wall, /area/station/maintenance/hallway/abandoned_command) "xpR" = ( +/obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"xpU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "xpV" = ( /obj/structure/transport/linear/tram, /obj/structure/thermoplastic, @@ -73731,17 +73455,8 @@ /area/station/security/tram) "xpY" = ( /obj/structure/cable, -/obj/structure/table/reinforced, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/t_scanner, -/obj/item/multitool, -/obj/machinery/status_display/ai/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "xqd" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/broken/directional/east, @@ -73753,11 +73468,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"xqn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white/small, -/area/station/science/cubicle) "xqp" = ( /obj/structure/railing{ dir = 4 @@ -73781,13 +73491,10 @@ /area/station/service/abandoned_gambling_den/gaming) "xqv" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/spawner/random/engineering/tracking_beacon, -/obj/effect/turf_decal/weather/snow/corner{ +/obj/effect/turf_decal/siding/dark{ dir = 1 }, /turf/open/floor/iron/dark/textured_half{ @@ -73835,22 +73542,22 @@ /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "xrc" = ( +/obj/structure/cable, /obj/machinery/door/airlock{ name = "Maintenance" }, /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/lesser) "xre" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/light/small/directional/north, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/machinery/light/small/directional/north, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/robotics/augments) "xrt" = ( @@ -73862,7 +73569,6 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 }, -/obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) "xru" = ( @@ -73920,15 +73626,12 @@ }, /area/station/command/heads_quarters/ce) "xrX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/window/right/directional/south{ name = "Upload Console Window"; req_access = list("ai_upload") }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "xrZ" = ( @@ -73940,26 +73643,16 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/commons/storage/tools) -"xsa" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 2 - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "xsb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/line, -/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/starboard) "xsf" = ( @@ -73967,9 +73660,6 @@ /area/station/security/breakroom) "xsh" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/textured_half{ @@ -74025,6 +73715,7 @@ /turf/open/floor/iron/white/small, /area/station/science/lobby) "xsK" = ( +/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -74035,13 +73726,12 @@ /obj/effect/turf_decal/stripes/red/line{ dir = 4 }, -/obj/structure/cable, /turf/open/floor/iron/small, /area/station/hallway/primary/starboard) "xsM" = ( +/obj/machinery/airalarm/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/airalarm/directional/west, /turf/open/floor/iron/white/side{ dir = 4 }, @@ -74061,30 +73751,30 @@ /turf/open/floor/iron, /area/station/cargo/sorting) "xsT" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/line, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/starboard) "xsV" = ( /turf/closed/wall/r_wall, /area/station/maintenance/solars/starboard/aft) "xsW" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner{ dir = 1 }, @@ -74121,12 +73811,12 @@ /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) "xtD" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/open/floor/wood/tile, /area/station/service/bar) "xtI" = ( @@ -74139,13 +73829,12 @@ /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) "xtP" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/turf_decal/stripes/line{ - dir = 9 +/obj/structure/chair{ + dir = 1 }, -/obj/structure/window/spawner/directional/west, -/turf/open/floor/plating, -/area/station/ai_monitored/command/storage/eva) +/obj/effect/turf_decal/siding/thinplating_new/terracotta/corner, +/turf/open/floor/wood/tile, +/area/station/command/meeting_room) "xtU" = ( /obj/effect/turf_decal/tile/blue/half/contrasted, /obj/effect/landmark/navigate_destination/med, @@ -74171,13 +73860,13 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=10.0-ScienceFoyer-StarboardHall"; location = "9.0-StarboardHall-ScienceFoyer" }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/starboard) "xuv" = ( @@ -74190,9 +73879,9 @@ /area/station/command/heads_quarters/ce) "xuD" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ name = "Chemistry Lab" @@ -74227,9 +73916,9 @@ /turf/open/floor/iron/cafeteria, /area/station/commons/dorms) "xuW" = ( +/obj/structure/sign/poster/official/random/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/white/side{ dir = 1 }, @@ -74247,9 +73936,9 @@ /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) "xva" = ( +/obj/item/radio/intercom/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/intercom/directional/north, /turf/open/floor/iron/white/side{ dir = 1 }, @@ -74270,7 +73959,6 @@ /turf/open/floor/iron, /area/station/hallway/primary/starboard) "xvv" = ( -/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side{ @@ -74278,14 +73966,14 @@ }, /area/station/science/research) "xvx" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/red/opposingcorners{ dir = 1 }, /obj/machinery/firealarm/directional/north, /obj/effect/landmark/start/depsec/science, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/checkpoint/science) "xvF" = ( @@ -74294,19 +73982,13 @@ "xvK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /obj/effect/turf_decal/tile/red/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 8 }, -/obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/service/greenroom) -"xvM" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/hallway/secondary/recreation) "xvR" = ( /obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/stripes, @@ -74328,16 +74010,20 @@ /turf/open/floor/iron, /area/station/engineering/atmos/project) "xvV" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"xvY" = ( +/obj/structure/cable, +/turf/open/floor/grass, +/area/station/science/xenobiology) "xwd" = ( /obj/structure/rack, /obj/item/storage/toolbox/emergency, @@ -74369,7 +74055,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/research{ name = "Research Division Access" }, @@ -74381,21 +74066,17 @@ /obj/effect/mapping_helpers/airlock/unres{ dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/textured_half{ dir = 1 }, /area/station/science/research) "xwu" = ( +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/holopad, /turf/open/floor/iron/white/small, /area/station/science/cubicle) -"xww" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "xwz" = ( /turf/closed/wall, /area/station/cargo/miningfoundry) @@ -74425,10 +74106,15 @@ /obj/structure/bed/maint, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"xxa" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_burn_chamber_input, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) +"xwU" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 9 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/small, +/area/station/science/ordnance/storage) "xxj" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -74461,9 +74147,6 @@ /area/station/maintenance/starboard/greater) "xxD" = ( /obj/structure/closet/secure_closet/personal, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "xxL" = ( @@ -74489,9 +74172,9 @@ /turf/open/floor/plating, /area/station/cargo/sorting) "xyh" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/effect/turf_decal/delivery/red, /obj/machinery/door/airlock/medical/glass{ @@ -74570,11 +74253,11 @@ /turf/open/floor/catwalk_floor, /area/station/hallway/secondary/entry) "xyZ" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/broken_flooring/pile/directional/east, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "xzd" = ( @@ -74640,11 +74323,11 @@ /turf/open/floor/plating, /area/station/maintenance/fore/lesser) "xAv" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 9 }, /obj/effect/spawner/random/trash, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "xAA" = ( @@ -74654,9 +74337,6 @@ /obj/structure/chair{ pixel_y = -2 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/white, /area/station/medical/virology) "xAG" = ( @@ -74668,10 +74348,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/prison) -"xAM" = ( -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "xAO" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -74687,9 +74363,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"xAU" = ( -/turf/open/floor/fake_snow, -/area/station/engineering/atmos/project) "xBd" = ( /obj/effect/turf_decal/plaque{ icon_state = "L7"; @@ -74709,13 +74382,13 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/turret_protected/ai_upload) "xBp" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/status_display/ai/directional/south, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/status_display/ai/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "xBx" = ( @@ -74726,9 +74399,6 @@ dir = 8 }, /obj/machinery/newscaster/directional/west, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, /turf/open/floor/iron/white/corner{ dir = 1 }, @@ -74765,7 +74435,6 @@ /turf/open/floor/mineral/titanium, /area/station/command/heads_quarters/ce) "xCl" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/stairs, @@ -74792,7 +74461,7 @@ /area/station/security/execution/transfer) "xCT" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 + dir = 4 }, /turf/open/floor/iron/dark/smooth_edge{ dir = 8 @@ -74848,19 +74517,19 @@ /turf/open/floor/iron/small, /area/station/hallway/primary/starboard) "xDS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/cable, /obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/lesser) "xEd" = ( +/obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron/white/small, /area/station/science/cubicle) "xEe" = ( @@ -74868,26 +74537,24 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/central) "xEn" = ( +/obj/machinery/airlock_sensor/incinerator_ordmix{ + pixel_x = 24 + }, /obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ dir = 4 }, /obj/machinery/atmospherics/components/binary/pump/on{ dir = 1 }, -/obj/machinery/airlock_sensor/incinerator_ordmix{ - pixel_x = 24 - }, /turf/open/floor/engine, /area/station/science/ordnance/burnchamber) "xEo" = ( -/obj/structure/flora/bush/flowers_pp/style_random, -/obj/structure/flora/bush/flowers_yw, -/turf/open/floor/grass, -/area/station/science/xenobiology) -"xEq" = ( +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 4 + }, /obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/starboard/central) +/turf/open/floor/iron/smooth_large, +/area/station/science/robotics/mechbay) "xEv" = ( /obj/structure/sign/departments/holy/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -74910,13 +74577,13 @@ /turf/open/misc/sandy_dirt, /area/station/commons/fitness/locker_room) "xEQ" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction/layer2{ - dir = 1 - }, /obj/effect/spawner/structure/window/reinforced, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction/layer2{ + dir = 1 + }, /turf/open/floor/plating, /area/station/science/ordnance/freezerchamber) "xEW" = ( @@ -74941,20 +74608,8 @@ pixel_x = -5 }, /obj/machinery/light/cold/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/small, /area/station/medical/cryo) -"xFd" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, -/obj/machinery/door/airlock/command/glass{ - name = "Telecommunications Server Room" - }, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/tcommsat/server) "xFe" = ( /turf/closed/wall, /area/station/security/lockers) @@ -74987,11 +74642,11 @@ /turf/open/floor/iron, /area/station/commons/dorms) "xFI" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /obj/machinery/door/airlock/research/glass{ name = "Freezer" }, /obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /turf/open/floor/iron/dark, /area/station/science/ordnance/freezerchamber) "xFL" = ( @@ -75078,13 +74733,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"xGY" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/spawner/random/trash, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "xHc" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -75101,16 +74749,6 @@ }, /turf/open/floor/iron/terracotta/small, /area/station/security/checkpoint/escape) -"xHf" = ( -/obj/structure/chair{ - dir = 1; - pixel_y = -2 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, -/turf/open/floor/iron/dark/small, -/area/station/security/checkpoint/customs/auxiliary) "xHi" = ( /obj/structure/bed, /obj/effect/spawner/random/bedsheet, @@ -75148,15 +74786,20 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/security/tram) +"xHS" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tcomms) "xIf" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) "xIj" = ( @@ -75168,11 +74811,6 @@ }, /turf/open/floor/iron, /area/station/security/execution/transfer) -"xIk" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/catwalk_floor/iron, -/area/station/science/lobby) "xIl" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -75226,8 +74864,8 @@ }, /area/station/hallway/secondary/dock) "xJm" = ( -/obj/structure/cable, /obj/machinery/status_display/evac/directional/north, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "xJw" = ( @@ -75262,6 +74900,19 @@ }, /turf/open/floor/wood, /area/station/engineering/atmos/storage) +"xJW" = ( +/obj/effect/spawner/random/engineering/tracking_beacon, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark/diagonal, +/area/station/ai_monitored/command/storage/eva) "xJZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -75332,6 +74983,12 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/processing) +"xKA" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "xKG" = ( /turf/open/floor/iron, /area/station/hallway/primary/port) @@ -75370,9 +75027,6 @@ name = "xenobiology camera"; network = list("ss13","xeno","rd") }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/circuit/telecomms/mainframe, /area/station/science/xenobiology) "xLl" = ( @@ -75422,9 +75076,6 @@ dir = 8 }, /obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) "xLS" = ( @@ -75473,6 +75124,9 @@ /area/station/maintenance/port/lesser) "xMk" = ( /obj/machinery/light/floor, +/obj/effect/turf_decal/siding/dark{ + dir = 4 + }, /turf/open/floor/iron/dark/smooth_large, /area/station/command/bridge) "xMo" = ( @@ -75498,13 +75152,13 @@ /turf/open/floor/iron, /area/station/commons/fitness/locker_room) "xMK" = ( +/obj/machinery/airalarm/directional/south, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/airalarm/directional/south, /turf/open/floor/iron/dark, /area/station/science/ordnance) "xMM" = ( @@ -75541,6 +75195,14 @@ /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/plating, /area/station/hallway/primary/central/fore) +"xNL" = ( +/obj/machinery/door/airlock{ + name = "Auxiliary Bathrooms" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/hallway/secondary/entry) "xNX" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -75588,9 +75250,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/item/storage/dice, /obj/machinery/newscaster/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/security/prison/rec) "xPd" = ( @@ -75639,17 +75298,17 @@ /turf/open/floor/grass, /area/station/service/chapel) "xPv" = ( +/obj/effect/landmark/start/cyborg, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/start/cyborg, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload_foyer) "xPx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral, /obj/effect/landmark/start/hangover, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) "xPH" = ( @@ -75657,17 +75316,17 @@ /turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) "xPJ" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, /obj/effect/turf_decal/trimline/neutral/line{ dir = 8 }, -/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "xPN" = ( @@ -75683,11 +75342,11 @@ /turf/open/floor/wood/parquet, /area/station/medical/psychology) "xPY" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/light/cold/directional/south, /obj/effect/turf_decal/stripes/line, /obj/structure/sign/departments/aiupload/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) "xQa" = ( @@ -75707,10 +75366,10 @@ /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) "xQj" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, @@ -75735,9 +75394,6 @@ /obj/structure/cable, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) "xQD" = ( @@ -75754,11 +75410,6 @@ "xQJ" = ( /turf/closed/wall, /area/station/service/abandoned_gambling_den/gaming) -"xQW" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white, -/area/station/hallway/primary/starboard) "xQX" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/iron/diagonal, @@ -75772,15 +75423,6 @@ }, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/cmo) -"xRg" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/hallway/primary/starboard) "xRh" = ( /obj/structure/chair{ dir = 8 @@ -75805,13 +75447,6 @@ /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"xRr" = ( -/obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/hallway/secondary/command) "xRA" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -75827,8 +75462,8 @@ }, /area/station/hallway/primary/central/fore) "xRB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) "xRC" = ( @@ -75843,9 +75478,9 @@ /turf/closed/wall, /area/station/maintenance/fore/lesser) "xRI" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 }, @@ -75873,13 +75508,12 @@ /turf/open/floor/plating, /area/station/service/abandoned_gambling_den/gaming) "xSd" = ( -/obj/structure/closet/firecloset, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ +/obj/effect/spawner/random/vending/snackvend, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/dark/side{ dir = 4 }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron, /area/station/hallway/primary/fore) "xSe" = ( /obj/structure/table/glass, @@ -75902,12 +75536,6 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"xSx" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth, -/area/station/hallway/secondary/command) "xSF" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -75946,13 +75574,6 @@ /obj/structure/sign/departments/med/directional/north, /turf/open/floor/iron/dark/side, /area/station/cargo/sorting) -"xSZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white, -/area/station/hallway/primary/starboard) "xTf" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -75962,9 +75583,9 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "xTo" = ( -/obj/structure/cable, /obj/structure/window/spawner/directional/south, /obj/structure/window/spawner/directional/north, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) "xTr" = ( @@ -76038,9 +75659,6 @@ name = "Medbay Lockdown Control"; req_access = list("medical") }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "xUr" = ( @@ -76050,11 +75668,8 @@ /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai_upload) "xUt" = ( -/obj/structure/cable, /obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "xUy" = ( @@ -76063,14 +75678,11 @@ /turf/open/floor/plating, /area/station/maintenance/fore/greater) "xUB" = ( -/obj/structure/cable, /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/sign/plaques/kiddie{ pixel_y = -4 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "xUK" = ( @@ -76110,11 +75722,8 @@ /obj/effect/turf_decal/siding/thinplating/terracotta/corner{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/dorms) "xUV" = ( @@ -76140,22 +75749,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"xUX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/weather/snow/corner{ +"xVd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) -"xVd" = ( -/obj/effect/turf_decal/sand/plating, -/obj/item/stack/ore/slag, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) -"xVj" = ( /obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"xVj" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -76164,10 +75765,10 @@ pixel_x = 6; pixel_y = 1 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/dock) "xVn" = ( -/obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, /obj/effect/landmark/start/roboticist, /obj/machinery/conveyor_switch/oneway{ @@ -76175,29 +75776,14 @@ pixel_x = 10; pixel_y = 11 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/science/robotics/lab) -"xVv" = ( -/obj/structure/cable, -/turf/open/floor/iron/white/small, -/area/station/science/cubicle) -"xVG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/white/side, -/area/station/science/research) "xVV" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/service/janitor) "xVY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/item/restraints/handcuffs, /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/red/opposingcorners{ @@ -76207,6 +75793,8 @@ pixel_x = -5; pixel_y = 10 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/checkpoint/science) "xWd" = ( @@ -76246,9 +75834,6 @@ /turf/open/floor/catwalk_floor/iron_smooth, /area/station/science/robotics/mechbay) "xWw" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/red/opposingcorners{ dir = 1 }, @@ -76256,6 +75841,9 @@ dir = 4 }, /obj/effect/landmark/start/depsec/science, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/checkpoint/science) "xWz" = ( @@ -76294,8 +75882,8 @@ /area/station/hallway/secondary/exit/departure_lounge) "xWL" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/structure/sign/poster/contraband/random/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/light/colour_cycle/dancefloor_b, /area/station/maintenance/starboard/central) "xWW" = ( @@ -76326,8 +75914,8 @@ /turf/open/floor/iron/small, /area/station/engineering/break_room) "xXr" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -76339,21 +75927,12 @@ dir = 1 }, /area/station/hallway/primary/aft) -"xXv" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/iron/dark/herringbone, -/area/station/security/courtroom) "xXy" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "xXD" = ( @@ -76446,12 +76025,13 @@ /turf/open/floor/grass, /area/station/service/chapel) "xYE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/effect/turf_decal/trimline/neutral/warning{ + dir = 9 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) "xYG" = ( /turf/closed/wall, /area/station/engineering/supermatter/room) @@ -76484,10 +76064,10 @@ /turf/open/floor/iron, /area/station/hallway/primary/port) "xZs" = ( -/obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/effect/turf_decal/siding/white, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/construction) @@ -76505,17 +76085,8 @@ dir = 4 }, /obj/machinery/camera/autoname/directional/east, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) -"xZJ" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_ordmix{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "xZN" = ( /obj/effect/turf_decal/tile/dark_red/anticorner/contrasted{ dir = 8 @@ -76529,11 +76100,11 @@ /turf/open/floor/plating, /area/station/hallway/primary/central/fore) "xZX" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "xZY" = ( @@ -76600,15 +76171,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/service/chapel/storage) -"yba" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible/layer2{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) -"ybf" = ( -/turf/open/floor/fake_snow, -/area/station/engineering/main) "ybh" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -76637,13 +76199,13 @@ /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) "ybD" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ name = "Arrivals" }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/textured_half{ dir = 8 }, @@ -76703,18 +76265,11 @@ /turf/open/floor/tram, /area/station/maintenance/port/aft) "ycj" = ( +/obj/structure/broken_flooring/singular/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"ycm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "ycq" = ( /obj/machinery/modular_computer/preset/cargochat/science{ dir = 1 @@ -76791,12 +76346,6 @@ "yeh" = ( /turf/closed/wall, /area/station/hallway/primary/starboard) -"yel" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "yep" = ( /obj/structure/rack, /obj/item/storage/box/bodybags{ @@ -76852,6 +76401,13 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/hallway/primary/port) +"yeI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "yeO" = ( /obj/structure/cable, /obj/structure/window/reinforced/spawner/directional/south, @@ -76861,12 +76417,12 @@ /turf/closed/wall/r_wall, /area/station/engineering/storage/tech) "yeQ" = ( -/obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ id = "Xenolab"; name = "Test Chamber Blast Door" }, +/obj/structure/cable, /turf/open/floor/engine, /area/station/science/xenobiology) "yeS" = ( @@ -76919,20 +76475,13 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/white/side, /area/station/science/xenobiology) -"yfz" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/maintenance/port/aft) "yfA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/white/side{ - dir = 8 +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/area/station/science/research) +/turf/open/floor/iron/dark/textured, +/area/station/command/heads_quarters/hop) "yfC" = ( /turf/closed/wall, /area/station/service/hydroponics) @@ -76980,9 +76529,6 @@ c_tag = "Xenobiology Lab - Test Chamber"; network = list("ss13","rd","xeno") }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, /turf/open/floor/engine, /area/station/science/xenobiology) "ygu" = ( @@ -77016,15 +76562,20 @@ /turf/open/floor/iron/white, /area/station/security/medical) "yha" = ( -/obj/structure/cable, /obj/structure/table, /obj/machinery/door/window/right/directional/north{ name = "Core Modules"; req_access = list("captain") }, /obj/effect/spawner/random/aimodule/harmless, +/obj/structure/cable, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai_upload) +"yhn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/circuit, +/area/station/tcommsat/server) "yhq" = ( /obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ @@ -77039,8 +76590,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/window/spawner/directional/south, -/obj/structure/window/spawner/directional/north, /turf/open/floor/plating, /area/station/maintenance/department/engine) "yhF" = ( @@ -77065,6 +76614,13 @@ }, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"yhT" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "yhW" = ( /obj/structure/cable, /turf/open/floor/iron/smooth, @@ -77159,12 +76715,6 @@ }, /turf/open/floor/iron/white/side, /area/station/hallway/primary/starboard) -"yiU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/science/robotics/lab) "yiY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -77185,14 +76735,19 @@ /obj/machinery/light/no_nightlight/directional/south, /turf/open/floor/iron, /area/station/engineering/atmos) +"yja" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/broken_flooring/corner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "yjd" = ( /turf/open/floor/iron/dark, /area/station/security/lockers) "yjt" = ( +/obj/machinery/newscaster/directional/west, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/newscaster/directional/west, /turf/open/floor/iron/white/small, /area/station/science/cubicle) "yjy" = ( @@ -77281,12 +76836,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/project) -"ykn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "ykz" = ( /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, @@ -77303,10 +76852,10 @@ /turf/open/floor/iron/dark/small, /area/station/security/brig) "ylo" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 6 }, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/small, /area/station/science/lobby) @@ -77318,11 +76867,11 @@ /turf/open/floor/iron/dark, /area/station/security/office) "ylq" = ( -/obj/structure/cable, /obj/structure/disposalpipe/junction/flip{ dir = 1 }, /obj/effect/turf_decal/siding, +/obj/structure/cable, /turf/open/floor/iron/white/small, /area/station/science/lobby) "yly" = ( @@ -77359,12 +76908,6 @@ /obj/structure/alien/weeds, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) -"ymh" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/greater) (1,1,1) = {" dDB @@ -83578,9 +83121,9 @@ dDB blb oBP mHG -iIz -gFc -jYQ +lmJ +lmJ +lmJ lmJ yaT cwf @@ -83835,10 +83378,10 @@ tYT liQ oBP mHG -iIz -xAU -xAU -oqB +lmJ +lmJ +lmJ +lmJ yaT cwf gbh @@ -84092,10 +83635,10 @@ aJq liQ oBP mHG -gcF -sOf -xAU -gFc +lmJ +lmJ +lmJ +lmJ rDU hYC bLp @@ -84349,10 +83892,10 @@ aJq aJq pCn bDQ -xAU -xAU -xAU -bWK +lmJ +lmJ +lmJ +lmJ yaT cwf gbh @@ -84606,9 +84149,9 @@ tYT liQ oBP mHG -hgy -hgy -hgy +lmJ +lmJ +lmJ lmJ yaT krb @@ -86433,7 +85976,7 @@ ybO ybO xNX fAD -iWc +civ ruh ybO tYT @@ -86690,8 +86233,8 @@ dEw cwf amb fAD -iWc -mtI +civ +gbh ybO tYT aJq @@ -86947,8 +86490,8 @@ lRy klg gjU eyY -iWc -mtI +civ +gbh ybO ybO bNq @@ -87205,9 +86748,9 @@ cwf amb fAD civ -pTh -nuz -dag +urh +pUQ +pZp bNq aJq aJq @@ -87526,7 +87069,7 @@ aNZ rQS rQS dBH -fGd +snZ mni rQS jGN @@ -87782,8 +87325,8 @@ yal tWB yal yal -kDi -cnT +yal +tms smh tms lxZ @@ -88040,7 +87583,7 @@ yaI xyM yaI xQy -cBu +qRN erg yaI xdv @@ -88544,7 +88087,7 @@ tzq mhk mhk aRa -lPz +onw onw onw gdn @@ -88782,9 +88325,9 @@ lPi uzJ eib knk -vrj -nyZ -vbS +ppk +uzJ +ovQ oSb edA uzJ @@ -89043,7 +88586,7 @@ lOj jTA qYG pZK -cfn +xKI kQM kQj pZK @@ -89301,7 +88844,7 @@ moz vjs odX odX -ggD +odX odX odX rWK @@ -89313,7 +88856,7 @@ ozt sqz bHw mhk -pWw +iSD pbw twN mSQ @@ -89553,7 +89096,7 @@ cvP rWP kMY jWA -boj +uzJ jtB jJw fxO @@ -89810,7 +89353,7 @@ ggn nyf ejq oEL -boj +uzJ vzD amq mRD @@ -89833,8 +89376,8 @@ uoR neF hed hAB -oSH -wtp +jCm +iSD bnQ fVF wBm @@ -90091,7 +89634,7 @@ hmC xZe eWk hAB -ple +iSD cib vTn wBm @@ -90348,7 +89891,7 @@ sOi tts dRn keL -pWw +iSD rnr aCz wAW @@ -90787,8 +90330,8 @@ yil pnl wFZ oLc -hin -wZk +jDi +jDi jDi pnl emz @@ -90860,7 +90403,7 @@ oyz tmi klN nDj -tRr +miF oiZ lvJ xYD @@ -91043,9 +90586,9 @@ pWm aNn pnl jDi -fKy -iVk -eZs +jDi +jDi +jDi jDi pnl oCE @@ -91069,7 +90612,7 @@ hFd wdo tkN gBh -cvJ +vob ybs knv knv @@ -91376,7 +90919,7 @@ rYs dPx nqY oiZ -bBg +iSD fGW bIJ cdB @@ -92605,8 +92148,8 @@ dgm kEo hkd hkd -gsW -gsW +hkd +hkd eue dfT bNq @@ -92862,9 +92405,9 @@ bsG wqW jHS tdb -mbx -ybf -ybf +tdb +tdb +tdb qyr mLZ naK @@ -93022,7 +92565,7 @@ hTZ wjZ jUp lku -blw +ume tyh pDu egb @@ -93121,8 +92664,8 @@ ayR kEo aQX aQX -dJJ -dJJ +aQX +aQX oRW qsr bNq @@ -93220,7 +92763,7 @@ erZ tCh eiy wuc -jVQ +npH sos jXi lhn @@ -93435,7 +92978,7 @@ jQv mhk rqF aFb -ple +qzP sQy miF yhX @@ -93478,7 +93021,7 @@ lyc iTe gEG wuc -oVD +xul sos wuc wuc @@ -93525,7 +93068,7 @@ kws xAG lQA xAG -dXj +dSu nPH wWR pzy @@ -93736,7 +93279,7 @@ bqx bqx uvf wuc -oVD +xul qTG wuc wpw @@ -93995,7 +93538,7 @@ dOd nVs lrP wuc -oVD +xul sos wuc ufg @@ -94253,8 +93796,8 @@ xur xYu xur wuc -yfz -qbz +xul +sos wuc mqH tiW @@ -94511,7 +94054,7 @@ jaQ jWs lnz wuc -wfu +xul auf wuc ufg @@ -94770,7 +94313,7 @@ fvL lnZ wuc xul -mqD +sos wuc ufg iVY @@ -94988,7 +94531,7 @@ lFm ftC oUb vXd -dyd +iSD gVL pyt tXy @@ -95028,7 +94571,7 @@ jiq bBk wuc rWU -mqD +sos wuc ufg rWs @@ -95246,7 +94789,7 @@ mXb kZI oUb yhX -dyd +iSD ojA uPW rPW @@ -95544,7 +95087,7 @@ leB dYj wuc aTn -mqD +sos wuc wuc wuc @@ -95849,8 +95392,8 @@ hrO wtr skn wsG -tUq -bAY +wtr +skn eoa wtr leC @@ -95975,13 +95518,13 @@ knv cvJ mid knv -knv +esy blb blb blb blb blb -hem +hwJ sRg dOz dOz @@ -96024,7 +95567,7 @@ bej spk iSD iSD -les +iSD wAW wXk qjt @@ -96337,7 +95880,7 @@ trp trp yhQ xqd -vdN +xul trp vJH vJH @@ -96631,7 +96174,7 @@ wbf bJZ yeO muS -mIe +muS muS jKJ cMS @@ -96706,12 +96249,12 @@ ayK ayK tpW udO -iWd -iWd -iWd -iWd -iWd -mpM +aNd +aNd +aNd +aNd +aNd +aNd abc aNd aNd @@ -96756,13 +96299,13 @@ gwV hNY gBk hNY -hNY +sJO gxR inh jvB inh iZK -pVq +hBt hBt jQW uAo @@ -96801,7 +96344,7 @@ rPA iUh sXs atS -ftX +aLs udA mJB vDe @@ -96887,9 +96430,9 @@ cLW wbf bJZ yeO -qXk -jaa -omw +muS +muS +muS fOQ ulp sVN @@ -96963,11 +96506,11 @@ lsF ayK rzb qme -iWd -pEe -iWd -mpM -ble +aNd +aNd +aNd +aNd +aNd aNd wqz wqz @@ -96998,13 +96541,13 @@ fQL gnS eiN eVY -eVY +llr eVY dAz eVY ccG oyU -eVY +qCx eVY eVY eVY @@ -97012,11 +96555,11 @@ eVY msg msg hsc -msg toU -hYW -inR +dZJ toU +inR +cBu cjY jax eFQ @@ -97256,13 +96799,13 @@ rjv hem hFp bgE -lpJ -hKX +jRo hKX -hem -hem -qtG -qtG +cFY +yeP +yeP +yeP +yeP qtG qtG qtG @@ -97274,10 +96817,10 @@ noz niw xSd ubT -lYj -mmw -eLx -hCr +sUy +niT +utF +qju tsF xRV aEd @@ -97508,33 +97051,33 @@ yeY dQi aeX cow -vxt -vxt -vxt -vxt -vxt -vxt -vnI -vnI -vnI -hem -hem -blb +nFa +nFa +nFa +nFa +pLe +bnd +bnd +bnd +yeP +ihJ +xaW +wWU blb blb blb blb -maf +hCr +hCr +mmw +tye +hCr sUy -nJG -qju -niT -qju utF sUy xoS hwo -hDC +noF tsF ijN mDL @@ -97765,40 +97308,40 @@ lBm iIW kSc jAz -vxt +nFa dhC bqu vkD dsp -vnI -vnI -vnI -vnI -aJq -aJq -dDB -dDB -dDB -dDB -dDB -dDB +pem +fCs +euR +yeP +fAf +iGu +wWU +xep +xep +xep +xep +hCr +mYp +wlo +olO +wIm sUy -tUg -cbt -hYX -noF mnN -sUy -jaD +vbR +iDk cmd -qly +alb uVT uVT ueH xQw uVT jsN -mpJ +jLI xZS vrn nzK @@ -98023,32 +97566,32 @@ yjE wyH vxt vxt -vxt +nFa kEx -wAf +odh odh ijV -vnI -vnI -vnI -vnI -aJq -aJq -tYT -dDB -dDB -dDB -dDB -dDB -sUy -mur -mNS +odh +hcz +fNi +stj +bey +lSw +rkI +kgk +tPF +kgk +kgk +krB +nbv +xJW +fuv iaH -gSi -iDk sUy +pof +vIz rto -hwp +gTi qlP uVT sQI @@ -98280,33 +97823,33 @@ yjE pek uUA vTj -vxt +nFa ncQ qoA xVd -vnI -vnI -vnI -vnI -vnI -aJq -aJq -aJq -dDB -dDB -dDB -dDB -dDB -sUy -muW -mOk -iap -oGo -iDk +qug +mmv +eYx +kpO +yeP +aYN +bMU +wWU +xuF +xuF +xuF +xuF +hCr +jEp +qGk +bxB +wIm sUy +uUe +vIz jaK hwx -xiN +iaV uVT rEY irQ @@ -98538,35 +98081,35 @@ tZI nSd nSd drO -bUF +clH tIB -vnI -vnI -vnI -vnI +mmv +fXs +ifi +sYt oVF -vnI -aJq -aJq -aJq -dDB -dDB -dDB -dDB -dDB +yeP +ait +xaW +wWU +blb +blb +blb +blb +hCr +hCr +qek +igS sUy -uOP -hur -mzb -gTi -pUy sUy +pUy +vIz pfC -pLj +hur xtP uVT vdj -irQ +yfA iJg eHk xQw @@ -98794,34 +98337,34 @@ yjE vxt fBf dhK -vxt +nFa rLt cgt -vnI -vnI -vnI -vnI -vnI -vnI -aJq -aJq -aJq +uRP +nFa +nFa +nFa +nFa +yeP +yeP +yeP +yeP dDB dDB dDB dDB dDB -sUy -srT -mPx -nlk -mPx +hCr +hkH +nmZ +wkq +fnz aZS -sUy -sUy +gMe +mcn reE qly -uVT +qWL idJ itw iKe @@ -99051,31 +98594,31 @@ vxt iOx iOx mCL -vxt +nFa pDK -vxt -vxt -vnI -vnI -vnI -vnI -vnI +cgt +kmC +nFa aJq -gcs -blb -blb -blb -blb -blb -blb -sUy -ulq -xil -ljN +aJq +aJq +aJq +aJq +aJq +tYT +dDB +dDB +dDB +dDB +dDB +hCr +mPx +vYi +wkq gTH ipf wmu -sUy +gYK jnh hEm uVT @@ -99308,33 +98851,33 @@ dhK dhK vxt ffp -vxt +nFa dWS -vxt -aJq -aJq -aJq +aDC +qhl +nFa aJq +vjX aJq aJq aJq +gcs +blb +blb +blb +blb blb -dDB -dDB -dDB -dDB -dDB ycC ycC -iEk +pIS lzT -qMK +hOD gUm -iEk +mpJ +xGJ xGJ -qoD pLr -qoD +xGJ uVT qXb pux @@ -99565,16 +99108,16 @@ vxt ddy vxt ddy -vxt -ddy -vxt -vmL +nFa +bnd +bnd +bnd +nFa +aJq aJq aJq -gcs aJq tYT -dDB blb dDB dDB @@ -99584,13 +99127,13 @@ dDB pIS uAK anb -uFm +xsh owZ xsh ahE plz -sDq -jwi +pHI +jrU qCj uVT uVT @@ -99623,7 +99166,7 @@ pIC mWT pIC oun -uVc +wBc mKY mka vCi @@ -99634,7 +99177,7 @@ trB trB ryW diP -hFD +kHX tYX blb blb @@ -99813,24 +99356,24 @@ aJq aJq aJq aJq -vxt -ddy -yhB -ddy -vxt -dDB dDB -blb +kDB +lZD +mdV dDB dDB dDB blb -tYT -tYT dDB -blb dDB dDB +blb +vmL +aJq +aJq +gcs +aJq +tYT dDB blb dDB @@ -99843,9 +99386,9 @@ bQm wkh jdJ xMk -xsh +jYQ hcc -xGJ +cuw bBN jwi qtd @@ -99878,11 +99421,11 @@ wEv uJi ntu uMJ -nJn +uMJ uMJ dvd tRJ -uVc +wBc kxY bMV dPp @@ -100102,7 +99645,7 @@ gBx mvh nNe tuW -xsh +tpl hcd plz pkh @@ -100134,12 +99677,12 @@ dEq yfC lZf qCK -ehc -gfB +dvd +dvd gNX dvd tRJ -uVc +wBc oIY bMV dPp @@ -100331,7 +99874,7 @@ dDB dDB dDB cea -yhB +uAX crE dDB dDB @@ -100358,7 +99901,7 @@ pIS gBz qqC tMh -qMK +sUe xqv cEX xGJ @@ -100392,7 +99935,7 @@ yfC edk wyg qbA -qWD +qbA hLb dvd tRJ @@ -100616,7 +100159,7 @@ gBT mxa nNe biB -xsh +tpl hcE plz pkh @@ -100843,11 +100386,11 @@ dDB blb dDB dDB -wen -ddy -yhB -ddy -wen +dDB +iYr +cTP +nmq +dDB dDB dDB blb @@ -100871,11 +100414,11 @@ dDB ycC ydk gFv -uFm +hoN cKV -xsh +dHL giU -xGJ +cuw mID jwi jwi @@ -101101,9 +100644,9 @@ blb blb wen wen -vxt +wen cpA -vxt +wen wen rPf bSs @@ -101358,7 +100901,7 @@ dDB dDB bSs wBf -wpa +jpF cpP csl dDG @@ -101376,12 +100919,12 @@ vfg fyZ wen wen +gcs +blb +blb +blb +blb blb -dDB -dDB -dDB -dDB -dDB ycC ycC iEk @@ -101644,7 +101187,7 @@ ycC gHe noq hMK -ipD +ueC hdd hhk xGJ @@ -101901,7 +101444,7 @@ ycC omj mPJ mPJ -ipD +ueC opH oSv xGJ @@ -102672,8 +102215,8 @@ ycC ycC ycC ycC -maw -ueC +noq +byq tJF qoD jnZ @@ -102705,6 +102248,7 @@ duj aTg pBb fbg +vCu rxZ fhp oTM @@ -102936,7 +102480,7 @@ hdH nRd qoD lIk -xRr +jVe hUq qSZ rpY @@ -103192,7 +102736,7 @@ gHV pRz pbE oUd -soO +rXv oUd fbl pPK @@ -103449,20 +102993,20 @@ mks soO gCA gVc +xbe kTH -kTH -soO -jVe +pTh +mXk wgp -jVe -soO +kVe +pTh kTH kTH -soO -gfs +pTh +nAn ivl -mzM -wCM +tUc +cCl ePk tgx jVM @@ -103710,12 +103254,12 @@ jVe oUd pPK hxA -hED -xSx -xSx -iBu -kVe -xSx +soO +pPK +pPK +oUd +jVe +pPK jxC ufb xCl @@ -103960,7 +103504,7 @@ qjy nWr hsO mzz -iij +qjy vPP otX hei @@ -103971,8 +103515,8 @@ gIb nsc vzt mnw -meS -vaF +soO +lIk jye jOs mAv @@ -103995,7 +103539,7 @@ fYJ eGU eTJ vkI -nfl +oeZ wuY oeZ luP @@ -104251,8 +103795,8 @@ fzw bKO qhR pPU -eSj -idS +xkV +gyy phG gyy xkV @@ -104312,7 +103856,7 @@ yfL wgL tLt sSQ -nVS +uOw dZT sSQ ndp @@ -104511,7 +104055,7 @@ fVl qJz ebk xkV -hzj +mDf mDf aYU dao @@ -104772,7 +104316,7 @@ pPU ecC cIX ofU -rXh +xkV ecC cvV spH @@ -104830,7 +104374,7 @@ wCY wgL ngq sSQ -qwi +ewW uOw cku ndp @@ -105030,13 +104574,13 @@ vgS pPU xkV oDX -etX -nXQ -bwP +oeZ +oeZ +xkV cvV spH nUd -dPp +nJG aww bje tYX @@ -105288,8 +104832,8 @@ pPU xkV cQN bXR -idS -bwP +gyy +xkV swW vkh kPh @@ -105545,7 +105089,7 @@ lTy wAa uUB fIl -vDZ +aYU pPO jFm jYM @@ -106558,8 +106102,8 @@ iZO awC gwm xPJ -pbO -pbO +mut +mut icN mZd sDZ @@ -106570,13 +106114,13 @@ mut pjA mut otJ -pbO -pbO +mut +mut rfW mlD xPJ -pbO -mRB +mut +aRJ jSp klf oHp @@ -106882,7 +106426,7 @@ uBl tNF bZa sJE -niI +cqc cqc aPa gLb @@ -107049,14 +106593,14 @@ dDB dDB dDB aJq -aJq -gcz -gcz -gcz -gcz -gcz -gcz -gcz +uvA +uvA +uvA +uvA +uvA +uvA +uvA +uvA ruY ryi ehj @@ -107094,7 +106638,7 @@ xJB xJB xJB wZO -xpU +nkH uBY ygu mHb @@ -107313,7 +106857,7 @@ rNB ogG auT lGE -gcz +uvA xRH jFF ehj @@ -107351,9 +106895,9 @@ vYH isi xJB mNQ -xpU +nkH uBY -lht +ygu gVi dba dse @@ -107397,7 +106941,7 @@ vdY jjO wYA glY -bUv +gFH cSk gLb nlS @@ -107570,7 +107114,7 @@ xbl uhI yhW clV -gcz +uvA hyv fyH xRH @@ -107603,9 +107147,9 @@ uLD vmr qLt vrY -swL -lmK -kTM +vrY +vrY +vrY sXq wGu lNU @@ -107640,14 +107184,14 @@ xSO tFQ tFQ xSO -cXa +qNw xUL xrC wYA wnY wfi wfi -gIk +wfi wCx wCx piG @@ -107828,7 +107372,7 @@ xbl flD heH hUI -gcz +uvA xkb qzi qYy @@ -107863,7 +107407,7 @@ azN vcN vrY mIi -xXv +vcN xpp xJB bUD @@ -107904,9 +107448,9 @@ xrC wYA uia tAS -vOb -tWl -gsT +tAS +tAS +tAS tXP jrG aCi @@ -108086,7 +107630,7 @@ njW isI owb uvA -gcz +uvA ryi xRH xRH @@ -108107,7 +107651,7 @@ niW ylX jwf bmz -wiw +mSa tPW qUt bxk @@ -108124,7 +107668,7 @@ qUu sXO xJB xaH -xpU +nkH xMr yij qir @@ -108343,7 +107887,7 @@ gMb gXN heL hjx -gcz +uvA gDp aoL eDN @@ -108363,8 +107907,8 @@ pBO jyd ylX eMS -nlP -lTk +tzZ +thx caK qUt rex @@ -108381,7 +107925,7 @@ jWy jWy wJx npZ -xpU +nkH xMr lqg qir @@ -108600,7 +108144,7 @@ wur nOH hIi hkm -gcz +uvA jrJ xRH hVM @@ -108620,7 +108164,7 @@ jAf vpF eeJ wKn -gYK +tzZ eMQ xxD qUt @@ -108638,7 +108182,7 @@ vZD sZJ wJx xbC -xpU +nkH xMr uSN uWo @@ -108857,7 +108401,7 @@ gMy isQ heM uvA -gcz +uvA xRH xRH fLL @@ -108895,7 +108439,7 @@ vZX sZJ wJx xbW -xpU +nkH xMr yiq uWo @@ -109120,8 +108664,8 @@ azO fLL iQl xlZ -xlZ oNs +xlZ hVJ xlZ jZK @@ -109132,7 +108676,7 @@ pwq oyn fSU fRV -skd +ciV ciV rrp wqj @@ -109377,7 +108921,7 @@ oWg lSh bgy bgy -bgy +mUX lXw pIn kTG @@ -110183,18 +109727,18 @@ gfJ tnb qyY xvh -xpU +nkH izA swB vve vSw wrF -tTs +xJw lvv xJw xJw xJw -hhL +xJw xJw fMs xJw @@ -110207,7 +109751,7 @@ xJw hhL ezw jOh -vfK +xJw xJw xGX xJw @@ -110446,25 +109990,25 @@ vEA vwh vSL rIn +koz pDU pDU -qcQ nSA pDU -dwT pDU -koz -qcQ +pDU +pDU +pDU pDU qgj pDU -qcQ -koz pDU +pDU +koz jOk rIn ibD -pKU +pDU pDU qZn jWl @@ -110705,29 +110249,29 @@ nla nla ldq ldq -oom -ssz -yeP -sYt -yeP -yeP -iPF -iPF -vSg -iPF -iPF -yeP -yeP -sYt -yeP -ssz -kSv ldq ldq -nyH -nyH +ldq +rxB +rxB +rxB +ldq +dsW +ldq +ldq +ldq +ldq +ldq +fmH +fmH +fmH +fmH +fmH +fmH +fmH +fmH cWM -nyH +avc vSg vSg vSg @@ -110951,39 +110495,39 @@ tnb wua xgg dqO -xHf +taD pzL xvh -xpU +nkH ntF nla nHN vSY qzv ldq -roz -roz -ssz -rbH -wYd -mAs -yeP -blb -blb -blb -blb -blb -yeP -fWT -wYd +xQI +lGp +lSf +fnx +dvb +vaR +jCE +nWp +oAi +aYJ +vlr +viO +owF +ldq +tRn uOH -ssz -kUF +lCS +fmH +lxa lxa -ldq oJz odP -hjz +wAf vGX xaP mfT @@ -111211,33 +110755,33 @@ pFQ wsa pzL xvh -xpU +nkH xMr sOR eNp vxM hCB ldq -wWU -xQI -ssz -ixG -wYd -fdv -yeP -uya -uya -yeP -uya -uya -yeP -oFI -wYd -dNo -ssz -vxp -xYE +fvm +ldq +ldq +ldq +mpU +rQr +dNN +jrg +dkw +pmZ +omO +aVF +mij ldq +cZW +uOH +ciR +oib +nqG +wuq rBz liP hjz @@ -111246,13 +110790,13 @@ xaP tGJ mYj uax -nRP +wyo hhg stV -qhD +mus mRK -qhD -mYu +mus +aeA oXM sSQ muz @@ -111471,45 +111015,45 @@ qQB ufF xMr slJ -vxs +aXU xaC ubl ldq -roz -ssz -ssz -qdN -ukB -awO -yeP -xaW -ncH -wGU -pST -mwu -yeP -qPJ +qyO +xid +eEi +tum +dKo +jSX +nfv +sTp +vXc +cYR +sDE +ldq +ldq +ldq ukB -dQE -ssz -ssz +eBT +pAg +fmH xYE -ldq +wwT gHT tAP nxD ihC xaP rXY -jlZ +mpK kMW pXz xaP nwN -umJ -jIj ufn -tbK +fFC +ufn +pHq ykT sSQ muz @@ -111704,7 +111248,7 @@ gnK piJ hBh eeJ -plE +mSa dtv uQG vCc @@ -111728,44 +111272,44 @@ mNQ nkH xMr slJ -ryh -vxM aXU +vxs +vxM +tGI +jzj +jzj +pOq ldq -qRO -ssz -bFW -pGD -wYd -pGD -wSH -kJW -rXM -pGD -bMt -jAb -wSH -pGD -wYd -pGD +ldq +dUY +pIM +kHY +oAS +ufd +hMa +iLO +xQI +ldq +lDJ +jOO wSL -ssz +fmH kHo -ldq -rkI +qoj +qoj qoj rSt wRU -kFY -kFY -uNe +xaP +bxY +mYj fVG eJe cwt -bFJ -nnD +nwN +ufn dMM -nAn +nIT rUV xqe whX @@ -111989,41 +111533,41 @@ eBy vxM bMc ldq -qRO -ssz -oCg -pGD -sMU -wYd -nFa -uBy -sMU -kop -sMU -ltE -nFa -wYd -sMU -pGD -jPM -ssz -fmH +jqJ +xQI +jSX +xGw +ldq +ldq +ldq +ldq +ldq +ldq +ldq +ldq +cTE +ldq +ldq +tmV +ldq +ldq ldq aBv -osy +aBv +aBv kqO uhk -gGQ kFY +xaP hrC gHl elT frP -wEf -jdu -uub -uub -tbK +vOt +bwT +bwT +bwT +pHq oDB sSQ tAq @@ -112246,32 +111790,34 @@ dLq vTx pHw ldq -qRO -ssz -ssz -xpY -tLc -ktl -yeP -xaW -wuq -aZL -ciR -mwu -yeP -enq -ivY -nLM -ssz -ssz -kHo +qod +eVF +lxY +xQI +fvm +jzj +jzj +sys +xQI +jSX +xid +jzj +xQI +xQI +xQI +kuY +lzf +yja ldq +fjv ntW +mmR bgA -byq pOX enC kFY +adl +xaP aQm qEz aQm @@ -112280,7 +111826,7 @@ aZG wQG uro itP -tbK +pHq kBA sSQ sSQ @@ -112503,32 +112049,32 @@ iht iht iht ssz -qRO -pJr -ssz -uya -yeP -uya -yeP -uya -uya -yeP -uya -uya -yeP -uya -yeP -uya -ssz -pJr -kHo ldq +yfQ +ldq +yfQ +ldq +yfQ +ldq +yfQ +ldq +yfQ +ldq +yfQ +ldq +yfQ +ldq +xnn +xnn +jzj +ldq +tmr vWa hkt wKm -eBT +pOX mJC -kFY +xaP nUQ ohM nUQ @@ -112537,15 +112083,15 @@ ltP bho blh qvL -tbK +pHq oDB ufn iAJ cqa ufn ufn -ycm -bkD +eKP +jcu jiY ufn yhF @@ -112555,9 +112101,9 @@ ufn ufn jcu iAJ -kqN +ljj ufn -qRh +gOh jFh cjm tuT @@ -112731,14 +112277,14 @@ gdF kkS oZO kkS -fjT -fjT +kkS +kkS xjC xuQ rqw fcU rem -xvM +gGQ uDE qUt lhi @@ -112752,17 +112298,15 @@ sqY ata taZ shD -xaH -nkH -xMr +oGQ +dMe +uEQ tBv xbR jDM uMN ssz -qRO -pJr -ldq +dDB dDB dDB blb @@ -112777,44 +112321,46 @@ dDB blb dDB ldq -xQI -kHo -ldq -ldq -ldq +lxC +lxC +jzj +tmV +otQ +nRS +vIa bGk dst -nTE -kFY -wja -wja -wja -wja -uLj +ldq +ssz +ssz +ssz +ssz +ssz +ldq hKw ydf tfh -tbK -lRj -vbR +pHq +pCT +ivY dwX -vbR -vbR -vbR -vbR -vbR +ivY +ivY +ivY +ivY +ivY qcv -vbR -ykn -vbR -vbR -vbR +ivY +kKN +ivY +ivY +ivY kms uwI -xhl -xhl -fnz -fnz +ivY +ivY +wwK +wwK ufn yhH tuT @@ -112979,7 +112525,7 @@ rqw qAj jsU xFM -wYH +qak bnX jUA pzd @@ -113009,15 +112555,13 @@ srA lrH aaH rtZ -xvh -ugh -xMr -uUe +mPu +buk +uEQ +lOS vyF vTJ wrQ -ssz -qRO xzU xzU xzU @@ -113033,25 +112577,27 @@ blb blb blb blb +yfQ +ctu +ogl +xGw ldq -xQI -kUF kdn -lxa -ldq +tSH +jYP ldq -lCS ldq ldq -sgB -fhT -qIC -pJz +rff +xQI +xGw +hGj +dHy jIc bAT mvC fwZ -tbK +pHq oDB ufn ufn @@ -113235,9 +112781,9 @@ gpV fjp xcF gpA -qFL +fYH qak -eKc +ctH xIf lKs fex @@ -113252,7 +112798,7 @@ vaw jWz bAb dWG -bQQ +iMG bji pjT pCv @@ -113262,19 +112808,17 @@ unc sWQ raZ sVG -qUa -qUa -qUa +gdx +gdx +gdx iOq nhZ -ufF -xMr +xsT +uEQ vzX vyR vyR vyR -wIm -roz xzZ xQI xzZ @@ -113291,24 +112835,26 @@ dDB blb dDB ldq +oFg +xQI +jzj ldq ldq ldq -kUF -kdn -kdn -vgY -qVn -fpq -liL -nBq -nBq -tkS -uLj +ldq +ldq +jSX +jzj +jzj +jKb +kuY +dnc +wfp +ldq clZ reH ico -tbK +pHq wBh lcC rUb @@ -113494,7 +113040,7 @@ lXX rLx fYH vrB -eKc +ctH gby ntZ jpp @@ -113519,20 +113065,18 @@ jRs jRs xhG mHf -kFA -gdx +fyh +sZh qSh -twE -tOs +tmI +vfH pFI -uEQ -uwF +dJj +uWz vze vUe -kmC -wJo -qRO -xzU +vUe +ssz xzU xzU blb @@ -113547,25 +113091,27 @@ blb blb blb blb +yfQ +sXo +rzO +sXo +dvI +aXi +sXo +rzO +aXi +sXo +ixG +ldq +ldq ldq -uME -jAp ldq -lTg -dAr -hDz ldq -qVn ldq -uLj -uLj -aid -auG -uLj dNU off okl -ogW +mDs idp tuT tuT @@ -113780,17 +113326,15 @@ vDX tNn vDX vDX -mNQ -xsT -xMr -tBv +oPM +mAs +kwB +mnj oYS pUL wrW ssz -roz -wBN -ldq +dDB dDB dDB blb @@ -113805,19 +113349,21 @@ dDB blb dDB ldq -tUa -vXn +wBF ldq ldq ldq -xGw ldq -qqd ldq -qdR -naN -vOr -mdG +eLf +lGp +fRe +vWC +ldq +sgB +fhT +fhT +pJz uLj oig oig @@ -114035,7 +113581,7 @@ uTb rrU vwc vDX -xww +mWE sso vDX dWh @@ -114046,8 +113592,6 @@ ssz ssz ssz ssz -roz -xQI ldq yfQ ldq @@ -114063,18 +113607,20 @@ yfQ ldq yfQ ldq +sXo ldq -vgz +esW +ipM +piI ldq -vid -ldq -xGw -ldq -spK -ldq -uLj -uLj -vOr +ezy +lGp +xpY +sXo +xko +hPQ +uNe +uNe iNS uLj blb @@ -114292,52 +113838,52 @@ qUm rrU rZw vDX -xww +mWE ruD vDX -wZO -uge -uFo +nyZ +ujX +ilC uUj -vzy -sPO -qRO -qRO -qRO -qRO +jfj +hDz +pKU +pKU +pKU +pKU wFQ -qRO -roz -roz -roz -roz -ldq -qRO -qRO -qRO -qRO +pKU +xpY +aGR +qAl +qAl +pKU +pKU +pKU +pKU +gOR krz -roz -xGY -evq -qVn -qVn -qVn -qVn -stj -qqd -qqd -qqd +xpY +aXi +wWN +lVo +jzj +caG ldq -hWE -mAP -vOr -vzh +ldq +ldq +fnx +ldq +ldq +uLj +uLj +aid +cdg uLj foL blb oig -cuw +oqg idp vtC blb @@ -114541,7 +114087,7 @@ oss yio ibv sCc -rQm +pTz pTz qfA mlK @@ -114549,10 +114095,10 @@ npV rsg rSz vDX -xww +mWE vDX vDX -nay +bFU upz uFA uWe @@ -114566,29 +114112,29 @@ ssz ssz ssz ssz +jzj xQI -qRO -hua -hua -xGw -rUR -qTv -ssz -ssz -lOi -ssz -ssz -ssz -lmb -ssz -ssz -njh -kgk -xQI +aGR +kDR +fSC +pvU +owc +vje +ilB +rzO +sXc +vtU +hhK +dHp ldq -uLj -uLj -vOr +fOw +iis +knY +qgi +ldq +qdR +naN +aid jtD uLj blb @@ -114806,12 +114352,12 @@ vDX vDX vDX vDX -xww +mWE vDX eDr -xdc +uME xtL -xQW +osy uWG yeh blb @@ -114824,34 +114370,34 @@ blb blb ssz ssz -sPO -xQI -ssz -ssz -ssz -ssz -ssz -mLA -dWs -lXg -cJL -klF +pnB +tHy +ixH +qTv +rUR +rUR +aSy +aSy +lOi +aSy +aSy +aSy evv -ktB -ssz -ssz -ssz -ssz -ssz -txV -aJX -vOr -oIx +aSy +aSy +xoT +knY +dwT +ldq +uLj +uLj +opg +nBq uLj foL blb oig -cuw +oqg idp vtC blb @@ -115052,7 +114598,7 @@ bqy bqy pzd djO -deb +nvB wkF gxl pDD @@ -115060,15 +114606,15 @@ dvY vDX vDX vDX -xww -xww -xww -veq +mWE +mWE +mWE +hUH vDX twZ -xdc +uME ugj -xQW +osy uYo urv dDB @@ -115081,27 +114627,27 @@ tjj blb blb ssz -qRO -xQI +jzj +aGR ssz -heB -nZQ -wir -yeQ +aSy +aSy +aSy +aSy gjg -hUH -fsL -fsL -qKt +dWs +rrb +cJL +lXg mJy -bcO -yeQ -pzs -nZQ -srb +ktB +aSy +aSy +aSy +aSy ssz -ldq -ldq +fWT +sRN aid dSz uLj @@ -115291,7 +114837,7 @@ exM nFW uKD bFt -gPR +xcF sDs aFu bbT @@ -115309,23 +114855,23 @@ bqy nMX rnD oss -hSg +yio wkF pkS pDQ -xnk +clf qgx -xww +mWE uHR -veq +hUH wPd wPd wPd wPd txl -xdc +uME fTM -xQW +osy uto yeh blb @@ -115338,28 +114884,28 @@ tjj tjj blb ssz -qRO -vxp +jzj +pKU ssz -iWZ -rfJ -rcl -nhC -oUB -bLT -hAJ -gPY -vsW -aAL -wxZ -uXV -euO -rfJ -mOI +heB +nZQ +srb +yeQ +oom +dhb +ncH +ncH +aJX +kej +wOc +yeQ +pus +nZQ +srb ssz -xQI ldq -vOr +ldq +aid hwn uLj oig @@ -115548,7 +115094,7 @@ reS nFW xFD xIW -eHE +xcF rax uek pTZ @@ -115580,8 +115126,8 @@ pNF vmn pqm pqm -uWn -ugC +tLc +qvF xPY ykL ykL @@ -115589,35 +115135,35 @@ ykL tjj wKc xol -uZr -xAM +aau +aau rMH tjj blb ssz -aVF -ldq +xGw +pKU ssz -dmT -wlk -dDO -yeQ -pVU -bLT -tEj -bqD -tvU -aAL -xkK -yeQ -cNZ -wlk -hwz +iWZ +rfJ +rcl +nhC +ktl +nLM +hAJ +gPY +vsW +wtc +tQM +uXV +euO +rfJ +mOI ssz -ldq -ldq -clf -uLj +eMH +nXf +aid +hYW uLj vyU sVA @@ -115829,58 +115375,58 @@ gCI jpW tpk vDX -xww +mWE lVN wPd bjL vMt -vCl +vEm vMt pqm tPm fTM -bAs +ive ykL lJB oah wtt fDQ -xoW +sBc oPc xUt ygK tjj dDB ssz -qRO -roz +vxp +xpY ssz -aSy -aSy -aSy -aSy -pVU -iTB -vHT +dmT wlk -rce +dDO +yeQ +jAp +nLM +tEj +bqD +rcl wtc -mmy -aSy -aSy -aSy -aSy +uDg +yeQ +cNZ +wlk +hwz xnE -bOR -pGK -gWN -jFh +tuT +tuT +xNL +tuT tuT xCI ufn -rFi -vbR -miT +rln +ivY +oDB rwo eVM tuT @@ -116086,15 +115632,15 @@ vDX vDX vDX vDX -xww +mWE qUF wPd rVj vMt sJw -lup +jZa jXA -xRg +uWn xuu enb wQP @@ -116110,36 +115656,36 @@ tqD dDB ssz ppL -roz +xpY ssz -vLv -jLF -yeQ -fJl +aSy +aSy +aSy +aSy lgw iTB +vHT +wlk +rce +mFT +cOC aSy -kkd aSy -wtc -cOC -fJK -yeQ -cdg -xEo -pQE -yim -fEd -gWN -bey -tuT +aSy +aSy +xnE +bOR +tUa +gOq +vlj +nRj +ufn +gOh +ufn +ivY +oDB ufn -qRh ufn -vbR -miT -twx -vYv sqh bEN afJ @@ -116339,17 +115885,17 @@ fLR qOJ yio iOv -veq -xww -veq +hUH +mWE +hUH aop -xww -xww +mWE +mWE wPd cmn vMt -tQQ -oKs +xHS +vMt pqm eDz fTM @@ -116359,7 +115905,7 @@ ipj jyw wtt kSd -xsa +xoW ldF xUt yig @@ -116369,53 +115915,53 @@ ssz ldq reg ssz -vLv qIk +cWm yeQ -shm -tNR -uDg -xvF -xvF -mIg -pQY -iFm +fJl +lve +iTB +aSy +kkd +aSy +mFT +rpc kau yeQ -fDY -xbe +acM +eAY pQE -sMu -vks -gWN -hjP -mPu -tbK -tbK +yim +fEd +gOq +pHq +mEn +pHq +pHq kho -vbR -lRj -vbR +ivY +pCT +ivY dwX -vbR -vbR -eKP -vbR -vbR -vbR -vbR -ykn -vbR -vbR -vbR +ivY +ivY +nTU +ivY +ivY +ivY +ivY +kKN +ivY +ivY +ivY mUQ -vbR -vbR -vbR -vbR -vbR +ivY +ivY +ivY +ivY +ivY ufn -mNz +yhH tuT blb dDB @@ -116601,7 +116147,7 @@ vDX vDX vDX vDX -xww +mWE wPd wPd mzo @@ -116609,68 +116155,68 @@ rsl pqm pqm tOZ -alb +biZ tsb ykL ykL ykL tjj wME -xAM -tye -xAM +aau +aau +aau rMH tjj blb ssz jiB -qRO +pKU ssz xLk -qIk +swn vuB orW -lve -uDg -pMA +bzm +geM xvF xvF -pQY +mIg +oIx iFm sWc yeQ rJw -eAY +xvY pQE -jSw -fEd -yel -pHq -tuT +nSl +yhT +qhd +fFC +nRj tXG vcd -tbK +pHq jUc ixM cwS ufn hMA -jIj +fFC ufn vJB uKN lNk ufn -jkH +yhF viT -sYu +hMA ufn ufn uKN qlr -iNA +mwu ufn -yel +vgY jFh cjm tuT @@ -116851,14 +116397,14 @@ baO pzd gMz rem -rQA +iMG shD xbg rOK ebe sKt vDX -xww +mWE ruD wPd vMC @@ -116881,28 +116427,28 @@ tjj blb ssz aZg -qRO +pKU ssz -vLv -nye +qIk +dBO aSy jGL iOL -iTB -aSy -vWI -aSy -wtc +geM +pMA +xvF +xvF +oIx opW bWs yeQ mYW ahD pQE -nIT +jSw fEd ufn -vlj +ufn tuT kTw kOV @@ -117108,15 +116654,15 @@ baO pzd ycQ rem -nvB +klF jqq xbg pGU aRo qhF svh -xww -veq +mWE +hUH vDX gaU wxU @@ -117124,7 +116670,7 @@ vMC kxp tSu uhj -xSZ +wAl uZA urv dDB @@ -117138,19 +116684,19 @@ blb blb ssz xtv -sPO +hDz ssz aSy aSy aSy aSy -pVU +oUB iTB -tNw -nZQ -syK -wtc -xkK +aSy +vWI +aSy +mFT +uDg aSy aSy aSy @@ -117162,8 +116708,8 @@ hRd jKS tuT jOF -wOC -rlH +jLt +trl okk kTw tqX @@ -117365,11 +116911,11 @@ xQJ xQJ xQJ ryt -nvB -uIy +klF +lmb pnq -pHI -vsi +dQm +vbJ tPH wPd wPd @@ -117379,9 +116925,9 @@ gsv wMN tbB ygu -xdc +uME ugj -xSZ +wAl vaf yeh blb @@ -117395,19 +116941,19 @@ blb ssz ssz xQI -roz +xpY ssz pus cYG srb yeQ -pVU -ukE -tEj -rfJ -rcl -qCq -xkK +jAp +bLT +tNw +nZQ +qem +aAL +uDg yeQ heB cYG @@ -117422,6 +116968,10 @@ kNZ kiR rlH aMS +wOC +nrD +trl +oZL kTw qXh kfy @@ -117630,15 +117180,15 @@ tpK dnO vMC krd -sDM +kUR cKa -stP -pzK +rsX +gWa tbD ygu -xdc -ugC -xSZ +uME +qvF +wAl qld ssz ssz @@ -117652,19 +117202,19 @@ ssz ssz xQI xQI -roz +xpY ssz iWZ oMI okB nhC -oUB -bLT -oEB -sGh -uEC -aAL -wxZ +ktl +nLM +tEj +rfJ +rcl +wtc +tQM uXV tEj bqD @@ -117677,11 +117227,11 @@ dxO wOC wOC nyQ -hiU +giW ktD kTw sok -rhH +qmy grm blb blb @@ -117879,10 +117429,10 @@ pmq xMo xQJ wcR -rQA -shG -sCB -sUe +iMG +suU +hgt +vsi tpO cZx vMC @@ -117890,12 +117440,12 @@ apF vfk rWr tLn -pzK +gWa tbD tyA tTx hYf -xSZ +wAl vbA vAK xQI @@ -117917,9 +117467,9 @@ jlS yeQ buA idd -iiW -iiW -egr +oEB +sGh +uEC vCs nVx yeQ @@ -117933,7 +117483,7 @@ ozs dMm wOC aHu -rXv +noJ nCo uHv rIY @@ -118136,7 +117686,7 @@ mrc xMT xQJ rTC -rQA +iMG boi xbg sUE @@ -118150,7 +117700,7 @@ sul nuC veK yeh -tUc +dRv hnV uGA yeh @@ -118166,7 +117716,7 @@ ldq ldq ldq ssz -dgo +vId scj aSy aSy @@ -118411,7 +117961,7 @@ tUo uiB uGN vdf -vAT +uJc vWe xsM wNb @@ -118429,13 +117979,13 @@ wMH hLc hLc aSy -roC +hOl kTC xQh dUF kKT woI -hOl +bcO eWI eXK mJr @@ -118649,8 +118199,8 @@ bfE rIo xQJ jIn -oUC -oPM +udd +iZl sDj uqw uqw @@ -118670,14 +118220,14 @@ ylo ylq cRn gsh -euR -xIk -xIk -xIk -xIk -xIk -euR hok +eMm +eMm +eMm +eMm +eMm +hok +cov oOh aXI qHY @@ -118692,7 +118242,7 @@ qZe xvF eqz cLS -hOl +bcO eWI eWI wNZ @@ -118907,7 +118457,7 @@ nou xQJ ifg xlL -oPM +iZl wBI pnQ pIp @@ -118927,14 +118477,14 @@ uGT veg vAX vXy -wuo +ezb hqc afA qEe qEe qEe sRj -jkz +oxl ifU eGc cAb @@ -118946,7 +118496,7 @@ cvH xiT blk fxi -rrb +xvF fxi ibI bON @@ -119163,8 +118713,8 @@ fik xqS xQJ tOa -oPM -oPM +iZl +iZl wBI xTO xPj @@ -119420,8 +118970,8 @@ mFh noB xQJ avN -oPM -jLt +iZl +rWS wBI sEr dQQ @@ -119433,16 +118983,16 @@ vir vir vir oNN -yfA +xds mfl +uZf xds -yfA uGU vfT uMU iPJ ilD -wNg +otk mYm mdt fdM @@ -119669,7 +119219,7 @@ xXT bsu opA goA -jDS +xdu uFt plB caI @@ -119686,10 +119236,10 @@ wJL vbK uKH qWF -wco -wco -wco -wco +kUF +kUF +kUF +kUF jtI jtI jtI @@ -119699,7 +119249,7 @@ xWD uMU pQr xWs -tCG +hio vfD uMU lDI @@ -119709,7 +119259,7 @@ mMN ljZ uHd vnf -mcn +exu rOX rOX sYa @@ -119934,7 +119484,7 @@ mGp vUz qNn pgy -owm +aHV sXi bfe sXi @@ -119951,16 +119501,16 @@ wOs wOs vbK xuW -xam -vhJ +myp +kwX kOh wec gGK aPX smk elc -wIY -wIY +aZL +aZL nAF srK srK @@ -120198,7 +119748,7 @@ pnU xlL xlL mok -vRh +xvv uMH vbK hVY @@ -120213,17 +119763,17 @@ rpk uMU vYx xWs -tCG +hio xwr uMU xVn -yiU +aej tNu -pEy +ltE udw uHd lhm -wEC +rKE wed vsJ sYa @@ -120233,7 +119783,7 @@ foI gJS lIL gJS -cDa +bYo mOm uLT oWr @@ -120446,31 +119996,31 @@ xRq pCa xdu mFt -nEC +saA nXS kYY oQj pdz pps -sXz +lHZ xkO sQb -vRh +xvv uMH xfc rYm -tpI +phm vmp phm wPK xfc -vRh +xvv xUV rpk uMU eAn bZN -rPm +xEo wwz uMU rwB @@ -120698,22 +120248,22 @@ blb ukI wkG ebc -jDS +xdu cmD pEq lYf rsL iJb -oUC +udd mLO oQJ pdU qka voh -eWD +ueT vzN -vRh -pwA +xvv +cFo rvX ixT svy @@ -120958,15 +120508,15 @@ xXT wsL vwd fzq -xau +mTc rsL qhh ghC vmJ hbk qIM -xfu -xbT +kNZ +lpt snJ vbK upr @@ -120978,7 +120528,7 @@ rXW tdw uaV xfc -vRh +xvv kqb vbK xia @@ -121002,7 +120552,7 @@ sYa sYa xlP xlP -fSg +fGE xlP xlP eWI @@ -121215,7 +120765,7 @@ rsL rsL rsL rsL -xau +mTc rsL xSe miz @@ -121235,8 +120785,8 @@ sKz uWv uaV vbK -uiS -uGW +upy +kWN sQb mbZ fIf @@ -121282,7 +120832,7 @@ fla keO vlV qXh -rhH +qmy grm blb blb @@ -121475,7 +121025,7 @@ orC oPQ kbm rsL -xau +mTc rsL xSt xWq @@ -121486,17 +121036,17 @@ prf dSb hiV vbK -upy -qWJ +tjm +tis flx oBX mzl aOz -fRl +mzl skV -kxE -gto -fqG +eHP +pcy +fdv sQb kZh wJY @@ -121513,13 +121063,13 @@ uHd meG wML rrt +lXV saY -qbo hnP sYa xlP xlP -jMC +yeI xlP xlP eWI @@ -121528,7 +121078,7 @@ tNT vlV tJX tJX -gky +vid vlV vlV vlV @@ -121536,7 +121086,7 @@ vlV vlV uhT uhT -niZ +fpq pCU tqX kfy @@ -121749,22 +121299,22 @@ vbK dtC vym phm -fcF +phm dss vbK sfq -uGX -frZ -xqn -xqn +kFV +cpU +wcT +wcT wvM -xqn +wcT xwu xEd bBr yjt eTT -paT +dUS jxk vKX vnf @@ -121785,18 +121335,18 @@ clb vlV fSB eWI -gky -gky +vid +vid lrh -gky -gky +vid +vid mNv -niZ -niZ -niZ +fpq +fpq +fpq vlV tqX -vEn +xnY svs grm grm @@ -122010,17 +121560,17 @@ pjn tzH vbK the -fqG +fdv uUS ocb -mau +mbk ocb bYk -ayu -xVv +jPy +mpE ocb ocb -mau +mbk nTP dNz erE @@ -122267,7 +121817,7 @@ wcp wcp xFA ryk -xVG +iYo sQb rxT vYF @@ -122289,9 +121839,9 @@ ryy boW sYa mwJ -vBZ +xlP ygf -isR +xlP fvH eWI blb @@ -122310,10 +121860,10 @@ nsW geS aWz xsW -agK +tfH qRo wGq -hgu +oWf jzp ogF grm @@ -122515,23 +122065,23 @@ vBG bpI qiM urd -qWL +lTg viA vqU mUO mUO -tuE +uNK owv rOW -vRh -fqG +xvv +fdv sQb mbZ wHg wwU wHg mbZ -tpl +fUG xYK jSl mbZ @@ -122554,9 +122104,9 @@ eWI dDB blb eXo -wos -wos -wos +vgz +vgz +vgz eXo blb eWI @@ -122570,8 +122120,8 @@ nwj kfy mVD jzp -hgu -aLA +oWf +lXs cpE grm dDB @@ -122765,7 +122315,7 @@ xXT qNF rej wBs -ijk +jSR jSR wxd qYv @@ -122777,10 +122327,10 @@ viA sbN iXM oKn -tuE +uNK owv rOW -xvv +wnO uHf vbK xia @@ -122820,7 +122370,7 @@ eWI eWI eWI eWI -cDf +pTi xQj svs uzY @@ -122828,7 +122378,7 @@ qbn svs kNK qIZ -cfH +vtd svs svs dDB @@ -123056,7 +122606,7 @@ xnC rfO aGv nLk -vId +nxp icT bxI wwI @@ -123072,18 +122622,18 @@ eWI eWI eWI blb -wos +vgz nFs -bgQ -hvX -fsT +hwj +wGU +yhn eXo blb blb blb blb -sLU -tYN +eXt +kML imI svs ewF @@ -123329,10 +122879,10 @@ dDB dDB blb blb -wos +vgz jMa -mWE -gZh +wHJ +oCg oJP eXo blb @@ -123340,7 +122890,7 @@ eXo eXo eXo eXo -qCc +tJC xBp svs grm @@ -123542,14 +123092,14 @@ rsL lRh pfT kaD -jpE -jpE +hWE +hWE sJr kaD tCD vtA +phM urk -rza viK dSq xok @@ -123579,26 +123129,29 @@ pwn eXo gyq iUp +auG wdS eXo -wos -wos -wos +vgz +vgz +vgz eXo -wos -wos -wos +vgz +vgz +vgz eXo srH vqX -gCo -gjL +liL +naa eXo eXo eXo jat gyq iUp +cmA +auG nVF msJ xQj @@ -123607,7 +123160,7 @@ dDB dDB svs mrt -hgu +oWf gRX svs dDB @@ -123802,7 +123355,7 @@ rsL cgy seM seM -rVy +cPh seM oGL gfQ @@ -123833,12 +123386,12 @@ eQt wYa dBh vnf -fdG +lSa uXC eXo hQd -jHx -wos +olG +vgz sXw vVX sTK @@ -123846,16 +123399,16 @@ hGr vbQ iVE ksg -wos +vgz mLM iIN nIx lPI iOF ePX -wos -jrU -qlz +vgz +nxy +lkv nVF msJ cYk @@ -123864,7 +123417,7 @@ blb blb svs gFX -hgu +oWf lxN svs svs @@ -124034,7 +123587,7 @@ wgv dDB dDB vdg -gzY +wEw wdB wdB hrL @@ -124068,7 +123621,7 @@ oyQ uuY tCD xok -vhC +iPF xok xok xok @@ -124090,31 +123643,31 @@ xok xok xok qID -iHM +fqv uSB vSM -qxB +blm nKj -jXr -mny -oWC -mny +juf +fJK +daH +fJK gxq -oWC -oWC -oWC -hrz +daH +daH +daH +pJu tsA vyi qDi aEJ bZt -mHZ +gnp srE lom -tGI +hIF lDc -fKa +pGK pGp svs dDB @@ -124325,7 +123878,7 @@ qjh qzL kbI xok -vhC +iPF sHV wcs xaN @@ -124349,29 +123902,29 @@ xok qFb wML gDB -ccF -gMe +hAe +fHk nRr vTg rqm -vwx +lPJ rYp aKx rYp -viV +bYC rqm -pJu -nFp +mrs +mhW hfI +ikS woD -qCY toh tAT -fDO +vhu ldx -gMe -ccF -eTy +fHk +hAe +msJ xQj svs svs @@ -124584,7 +124137,7 @@ wgC xok vzg vPS -wdd +jKC twi iBZ xok @@ -124592,24 +124145,24 @@ ukV uHo vkJ xok -sZH -xEq -xEq -xEq +mYd +txV +txV +txV xok cnG cZl gMQ xok -sjp +kSv rNd vnf -uzK +ukk dde nVF qsg kcW -wos +vgz udv tSq mvo @@ -124617,26 +124170,26 @@ hGr bFw ulK cdn -wos +vgz vwE ujZ mkZ lZa fZp xHc -wos +vgz oGk eFV nVF -eTy +msJ xQj grm blb blb grm oqK -qmb -cfH +qhv +vtd aqW grm dDB @@ -124843,22 +124396,22 @@ dex bxT qNO xaN -vhC +iPF xok xok xok xok xok -sZH +mYd xaN uGK -xEq +txV xok xok xok xok xok -sjp +kSv xaN xjo qQK @@ -124867,18 +124420,18 @@ nVF aAD sCk eXo -wos -wos -wos +vgz +vgz +vgz eXo -wos -wos -wos +vgz +vgz +vgz eXo -qiN -xFd -gCo -qiN +oYx +leW +liL +oYx eXo eXo eXo @@ -124892,7 +124445,7 @@ blb blb grm wHP -iia +bkX msJ tuP grm @@ -125109,13 +124662,13 @@ vDC esz xaN wQx -xEq +txV tec -xEq -xEq +txV +txV uqc -xEq -sjp +txV +kSv xaN eSd vXH @@ -125131,10 +124684,10 @@ dDB dDB blb blb -wos +vgz tMs -mWE -gZh +wHJ +oCg bmr eXo blb @@ -125142,7 +124695,7 @@ eXo eXo eXo eXo -cru +qCc xaI svs svs @@ -125376,7 +124929,7 @@ fWJ xaN bCQ llT -qEB +kfI vXH blb blb @@ -125388,18 +124941,18 @@ ifa ifa ifa blb -wos +vgz aoa -llH -cKL -mTM +asG +gDQ +lSc eXo blb blb blb blb -sLU -tYN +eXt +kML apl svs dDB @@ -125632,7 +125185,7 @@ xok fWJ bNl bCQ -qgq +qac vOf uXC scj @@ -125878,13 +125431,13 @@ gnY mOM vFh vYS -wxu +dfO xok xok xok xok dTi -tbI +evq xok qNO xaN @@ -125904,9 +125457,9 @@ ifa dDB blb eXo -wos -wos -wos +vgz +vgz +vgz eXo blb kQt @@ -126137,25 +125690,25 @@ vFn qNO sbq wRd -qsV +wRo xEQ elh -yba -lDr +fpw +pOL xok geg xok bEB -mWc +vjV eYH -atB +ruB vXH jnk gqh bcK kXQ jId -ciW +spK qKe ifa blb @@ -126168,7 +125721,7 @@ blb blb kQt lxo -uFc +aWB pil cxy cyf @@ -126393,14 +125946,14 @@ lOG xaN xCV sbq -wRo +cNT vTf xFI gfu -ckt -ckt +pQW +pQW nOD -lwu +pzg lkV whF okW @@ -126409,10 +125962,10 @@ fUo hyE xKl vkW -uWr +djE kCI gqh -ciW +spK jJT kQt kQt @@ -126424,7 +125977,7 @@ kQt kQt kQt kQt -dHL +bFW leP hyE iVT @@ -126653,13 +126206,13 @@ sbq sbq sbq sbq -aFj +muB lkV iJL -rci -vTv +dNo +uDI juU -boY +vMi agI kQt xZX @@ -126668,7 +126221,7 @@ gTS nUo bGe iqD -fVy +cHy nQo pcL kQt @@ -126908,12 +126461,12 @@ dDB blb rLr xtW -jiR -reN -hRA -reN -xUX -nZF +lUt +wBN +fId +wBN +cCK +rci kpX lnu enG @@ -127167,17 +126720,17 @@ rLr naz rlM oZz -xZJ +hRA aVT -isl -kUa -kUa -kUa -vIz +enG +pJr +pJr +pJr +hUD xpR kQt nhl -kat +rBc dzE oTj eLB @@ -127195,7 +126748,7 @@ osY hyE hyE lSb -mch +tUZ hyE wmB qGB @@ -127422,7 +126975,7 @@ dDB blb rLr xtW -xxa +wja nWh xEn nWh @@ -127430,7 +126983,7 @@ xnR aLC wLZ eKV -cns +jPM vwJ kQt kQt @@ -127681,14 +127234,14 @@ yeZ yeZ yeZ yeZ -fnd +sBA yeZ yeZ qei qei qei -hlJ jZL +dDc hGb iSh kQt @@ -127704,11 +127257,11 @@ hyE oix hyE iZH -mXk +shm lKG scv hyE -dHL +bFW hyE blb grm @@ -127936,16 +127489,16 @@ dDB blb yeZ rma -oCB +oqi xFL -dtk +pPD kZF pSB qei qZU jeG -oxg -fZG +wRm +dyJ hQD cqx kQt @@ -127961,7 +127514,7 @@ hyE mME hyE mJS -bJw +tSI eoC cRS hyE @@ -127970,7 +127523,7 @@ hyE blb grm eUC -hoN +oIa grm dDB dDB @@ -128192,17 +127745,17 @@ dDB dDB blb rle -oqi +xKA xFL -rCa +rbH lwn -aMy +vZf nNZ qei rss hcb owH -sQX +rzd idt tKG kQt @@ -128450,7 +128003,7 @@ dDB blb yeZ iyr -dEL +rCa wVg nzL nzL @@ -128458,8 +128011,8 @@ nzL qei vCQ qSC -kcQ -gpT +rez +xwU bVD agy kQt @@ -128479,7 +128032,7 @@ uqL bGL pjb jLP -dHL +bFW bRk hyE blb @@ -128708,20 +128261,20 @@ blb rle wTJ lDw -ejx +pAC bry heT teE qei xwQ wCH -sXL -rzd +fkK +qPJ sGE hon kQt lHc -pyh +njh xyZ pxZ xTf @@ -128733,8 +128286,8 @@ xap ieY kks dof -uVO -lEg +sdm +gJj rWO wrD bHs @@ -128971,9 +128524,9 @@ bHy rxP qei whD -hwh +qRa cTp -rzd +qPJ uQb ijB kQt @@ -129225,17 +128778,17 @@ rud aGb rFp yly -rBg +kHJ rGp -blJ +qLE qnJ oiT obs ilE nwk kQt -jeC -dLQ +bHF +mdG jie vHx hyE @@ -129741,13 +129294,13 @@ yeZ oXa dYW dxZ -dLQ -dLQ -dLQ -dLQ +mdG +mdG +mdG +mdG irc hyE -jeC +bHF xAv hyE dDB @@ -129759,22 +129312,22 @@ dDB dDB dDB hyE -lVg +dAr afF afF -pMs +lVg hyE wWz nQz sSS fLC hgP -uiz +uyF bmA xZs -qcf +jif wBi -nfm +fUN kGB bzZ flo @@ -130003,8 +129556,8 @@ hyE hyE hyE kit -dLQ -tUZ +mdG +rta hyE hyE dDB @@ -130016,10 +129569,10 @@ dDB dDB dDB hyE -iWI +ecL hyE hyE -ecL +oOR hyE pNC luo @@ -130273,10 +129826,10 @@ dDB dDB dDB dDB -fKx +ury blb blb -seV +fKx wJd nle lnA @@ -130530,10 +130083,10 @@ dDB dDB dDB dDB -iaJ +wHl blb blb -seV +fKx wJd wJd wJd @@ -130787,7 +130340,7 @@ dDB dDB dDB dDB -iaJ +wHl blb blb vVT @@ -131044,10 +130597,10 @@ dDB dDB dDB dDB -fKx +ury blb blb -seV +fKx dDB blb dDB @@ -131301,7 +130854,7 @@ ylD dDB dDB ylD -cpJ +sgt ylD ylD mTU @@ -131816,8 +131369,8 @@ wNK pnt ylD ksN -sVk -jQj +ubk +eRO xpb ylD lVz @@ -131830,9 +131383,9 @@ dDB ylD urn pHk -vlX +aMp wla -aRw +vlX egN oFf cbg @@ -132055,25 +131608,25 @@ sge lVz idq oRB -oGQ -oGQ -cCl -cCl -oGQ -oGQ +vfK +vfK +pST +pST +vfK +vfK bnr bnr qkp -rfZ +jKT sEB -odk -pof +kNk +wiO eLn xlx sEn csI -bVR -jLl +xae +sgm xlx sOF cFq @@ -132087,10 +131640,10 @@ dDB ylD ylD ylD -sPa +oRV ylD ylD -oRV +hGk ylD ylD ylD @@ -132324,13 +131877,13 @@ ylD rhL rTq rMb -eAo +jTp sWA -kwu +mmy ouL -aqV -kwu -kwu +cfy +mmy +mmy vLs qeT ylD @@ -132343,11 +131896,11 @@ ylD ylD ylD mEq -ozV +xCT bsI ylD wBa -xCT +tob kRN ylD wdk @@ -132575,7 +132128,7 @@ wKG lAO ncb mMr -oNH +mLA pFk ylD rir @@ -132591,15 +132144,15 @@ xBF sVp oyR ylD -ymh -meJ +iWf +nTE xkn xEv -meJ -meJ -meJ -sPa -eQQ +nTE +nTE +nTE +oRV +hMk gYq aUA ylD @@ -132833,7 +132386,7 @@ oiU oiU mZA uqU -naC +qwc ylD rlg tTA @@ -132848,7 +132401,7 @@ ylD ylD ylD ylD -ymh +iWf ylD ylD ylD @@ -133090,7 +132643,7 @@ lQu mMr mMr oWk -qHt +mVy ylD ylD ylD @@ -133099,13 +132652,13 @@ ylD mMr dOb ovB -lko -meJ -meJ -meJ -meJ +kUW +nTE +nTE +nTE +nTE xkn -ymh +iWf ylD xqq xLY @@ -133346,13 +132899,13 @@ mwx wgF ylD rZG -cFj +krv bNP fii fNv jwh -fvz -aYR +mAP +goz vNt kIY vqb @@ -133604,7 +133157,7 @@ ylD ylD xcH xmg -pHn +aiX mlm vlb xgz @@ -133862,7 +133415,7 @@ ylD ylD ylD vnv -qUe +wnI vnv ylD ylD @@ -134119,7 +133672,7 @@ ylD wFz baE fcq -lkd +nAI fkT fcq sQv @@ -134377,10 +133930,10 @@ olm fcq fkT jcm -lkd -lkd -lkd -lkd +nAI +nAI +nAI +nAI vjp wdk wdk @@ -134634,7 +134187,7 @@ fcq fcq mcl xYz -lkd +nAI fcq fkT fcq diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 717c78638a588..dbe2ba87f2d5a 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -1254,16 +1254,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) -"apv" = ( -/obj/machinery/computer/atmos_alert/station_only{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage) "apz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/railing{ @@ -2920,20 +2910,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/science/robotics/mechbay) -"aJB" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 5 - }, -/obj/machinery/vending/wardrobe/sec_wardrobe, -/obj/machinery/button/door/directional/east{ - id = "secmechbay"; - name = "Security Mech Garage Door Controls"; - req_access = list("security") - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/security/lockers) "aJC" = ( /obj/docking_port/stationary/random{ dir = 4; @@ -3168,22 +3144,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/medical/break_room) -"aMH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/siding/white{ - dir = 4 - }, -/obj/machinery/door/window/right/directional/north{ - name = "Kitchen Delivery"; - req_access = list("kitchen") - }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "aMK" = ( /obj/structure/chair/pew/left, /turf/open/floor/iron/chapel{ @@ -3724,6 +3684,18 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) +"aTQ" = ( +/obj/structure/frame/computer{ + anchored = 1; + dir = 8 + }, +/obj/item/circuitboard/computer/station_alert, +/obj/effect/turf_decal/bot/right, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) "aUo" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -4117,6 +4089,21 @@ /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, /area/station/engineering/main) +"aZj" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/clothing/glasses/welding, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/weldingtool/empty{ + pixel_x = 9; + pixel_y = 8 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/mechbay) "aZo" = ( /obj/structure/table/reinforced, /obj/item/electronics/airalarm, @@ -4752,16 +4739,6 @@ /obj/machinery/meter, /turf/open/floor/iron, /area/station/maintenance/department/electrical) -"bgV" = ( -/obj/structure/cable, -/obj/machinery/computer/station_alert/station_only{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/computer/security/telescreen/ce/directional/west, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/ce) "bgW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/railing{ @@ -5562,13 +5539,6 @@ /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/floor/iron, /area/station/security/checkpoint/medical/medsci) -"brx" = ( -/obj/machinery/computer/atmos_alert/station_only, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/command/bridge) "brZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, @@ -5693,6 +5663,17 @@ /obj/machinery/duct, /turf/open/floor/iron/cafeteria, /area/station/service/kitchen) +"btf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/closet/secure_closet/freezer/meat, +/obj/effect/turf_decal/bot, +/obj/item/food/meat/slab/monkey, +/obj/item/food/meat/slab/monkey, +/turf/open/floor/iron/kitchen_coldroom/dark, +/area/station/service/kitchen/coldroom) "bti" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -7196,6 +7177,15 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/service/theater) +"bKo" = ( +/obj/machinery/computer/station_alert/station_only{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/main) "bKp" = ( /obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; @@ -8222,12 +8212,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/glass, /area/station/maintenance/space_hut/observatory) -"bWW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "bWZ" = ( /obj/effect/landmark/start/hangover, /obj/effect/turf_decal/tile/neutral/anticorner/contrasted, @@ -8834,6 +8818,16 @@ "cfu" = ( /turf/open/floor/circuit/green, /area/station/ai_monitored/turret_protected/ai_upload) +"cfx" = ( +/obj/structure/cable, +/obj/machinery/computer/station_alert/station_only{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/computer/security/telescreen/ce/directional/west, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) "cfy" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -9812,6 +9806,10 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron, /area/station/service/hydroponics) +"crs" = ( +/obj/machinery/gibber, +/turf/open/floor/iron/kitchen_coldroom/dark/textured, +/area/station/service/kitchen/coldroom) "crw" = ( /obj/effect/landmark/event_spawn, /obj/structure/cable, @@ -9994,21 +9992,6 @@ /obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron, /area/station/ai_monitored/command/storage/eva) -"ctF" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/item/flashlight/lamp{ - pixel_x = -7; - pixel_y = 9 - }, -/obj/item/folder/yellow{ - pixel_x = 5; - pixel_y = -5 - }, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "ctU" = ( /obj/structure/chair/office{ dir = 1 @@ -14331,6 +14314,15 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/science/research/abandoned) +"dxF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "dxJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -18273,6 +18265,13 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/white, /area/station/medical/pharmacy) +"ezr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "ezx" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /obj/effect/turf_decal/bot, @@ -18407,6 +18406,11 @@ /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron/dark, /area/station/medical/chemistry) +"eBU" = ( +/obj/structure/reagent_dispensers/cooking_oil, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/kitchen_coldroom/dark, +/area/station/service/kitchen/coldroom) "eBY" = ( /obj/effect/turf_decal/plaque{ icon_state = "L2" @@ -18640,14 +18644,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"eEI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/duct, -/mob/living/basic/goat/pete, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "eFj" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/window/reinforced/spawner/directional/north, @@ -19037,6 +19033,12 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/service/abandoned_gambling_den) +"eJE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "eJG" = ( /obj/effect/turf_decal/delivery/red, /obj/machinery/power/port_gen/pacman/pre_loaded, @@ -19784,6 +19786,16 @@ /obj/machinery/icecream_vat, /turf/open/floor/iron/dark, /area/station/service/kitchen) +"eSU" = ( +/obj/machinery/computer/atmos_alert/station_only, +/obj/effect/turf_decal/bot, +/obj/structure/sign/warning/gas_mask/directional/north, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/electrical) "eSX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -20407,6 +20419,21 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/diagonal, /area/station/science/breakroom) +"fbc" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/decal/cleanable/food/flour, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "fbg" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -20582,6 +20609,13 @@ /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron, /area/station/engineering/atmos/project) +"fdj" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "fdG" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, @@ -21385,6 +21419,18 @@ }, /turf/open/floor/wood, /area/station/service/library/abandoned) +"fmH" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) "fmI" = ( /obj/machinery/bluespace_vendor/directional/south, /obj/effect/turf_decal/tile/neutral, @@ -22540,6 +22586,16 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) +"fCd" = ( +/obj/machinery/holopad/secure, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/door/window/brigdoor/right/directional/east{ + name = "Tertiary AI Core Access"; + pixel_x = 4; + req_access = list("ai_upload") + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) "fCf" = ( /obj/machinery/door/poddoor/preopen{ id = "atmoslock"; @@ -22851,18 +22907,6 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"fGE" = ( -/obj/structure/frame/computer{ - anchored = 1; - dir = 8 - }, -/obj/item/circuitboard/computer/station_alert, -/obj/effect/turf_decal/bot/right, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/maintenance/port/aft) "fGG" = ( /obj/machinery/camera/directional/east{ c_tag = "Central Hallway - Head of Personnel Line"; @@ -23422,18 +23466,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) -"fOx" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/manifold{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/north, -/obj/effect/mapping_helpers/airalarm/tlv_cold_room, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "fOz" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -24234,18 +24266,6 @@ "fYU" = ( /turf/open/floor/plating, /area/station/science/ordnance/testlab) -"fYY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/machinery/duct, -/obj/effect/turf_decal/tile/purple/full, -/turf/open/floor/iron/large, -/area/station/science/research) "fZg" = ( /obj/item/storage/box/disks{ pixel_x = 5; @@ -27339,10 +27359,6 @@ }, /turf/open/floor/iron, /area/station/science/xenobiology) -"gIJ" = ( -/obj/machinery/gibber, -/turf/open/floor/iron/dark/textured, -/area/station/service/kitchen/coldroom) "gIM" = ( /obj/machinery/atmospherics/components/unary/passive_vent{ dir = 8 @@ -27796,15 +27812,6 @@ }, /turf/open/floor/iron, /area/station/commons/toilet/restrooms) -"gPr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/duct, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "gPt" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/plating, @@ -28157,18 +28164,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/cargo/lobby) -"gUl" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/maintenance/starboard/fore) "gUn" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ @@ -29550,16 +29545,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) -"hmX" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "hmY" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/binary/pump/on{ @@ -30375,6 +30360,20 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"hyR" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 5 + }, +/obj/machinery/vending/wardrobe/sec_wardrobe, +/obj/machinery/button/door/directional/east{ + id = "secmechbay"; + name = "Security Mech Garage Door Controls"; + req_access = list("security") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/lockers) "hza" = ( /obj/effect/turf_decal/tile/yellow{ dir = 8 @@ -30522,11 +30521,6 @@ }, /turf/open/space, /area/space) -"hBF" = ( -/obj/structure/kitchenspike, -/obj/effect/turf_decal/bot/left, -/turf/open/floor/iron/dark, -/area/station/service/kitchen/coldroom) "hBL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -32128,16 +32122,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) -"hXw" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/siding/white{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/west, -/obj/machinery/duct, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "hXx" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot_white, @@ -32733,11 +32717,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/maintenance/port/aft) -"idQ" = ( -/obj/structure/kitchenspike, -/obj/effect/turf_decal/bot/right, -/turf/open/floor/iron/dark, -/area/station/service/kitchen/coldroom) "idT" = ( /turf/closed/wall/r_wall, /area/station/security/prison/garden) @@ -33049,36 +33028,6 @@ /obj/effect/turf_decal/siding/dark_red, /turf/open/floor/iron/dark, /area/station/security/execution/transfer) -"iiU" = ( -/obj/structure/table/reinforced, -/obj/item/storage/box/monkeycubes{ - pixel_x = 6; - pixel_y = 4 - }, -/obj/item/storage/pill_bottle/mutadone{ - pixel_x = -8; - pixel_y = 9 - }, -/obj/item/reagent_containers/spray/cleaner{ - pixel_x = -10; - pixel_y = -1 - }, -/obj/item/storage/box/monkeycubes{ - pixel_x = 4 - }, -/obj/machinery/camera/directional/east{ - c_tag = "Science - Genetics"; - dir = 6; - name = "science camera"; - network = list("ss13","rd") - }, -/obj/machinery/status_display/evac/directional/east, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 4 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/dark, -/area/station/science/genetics) "ijm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -33172,6 +33121,20 @@ }, /turf/open/floor/iron, /area/station/commons/fitness/recreation) +"iks" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Service - Kitchen Coldroom"; + dir = 10; + name = "service camera" + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "ikx" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -33807,6 +33770,22 @@ /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron/dark, /area/station/service/bar) +"isv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/machinery/door/window/right/directional/north{ + name = "Kitchen Delivery"; + req_access = list("kitchen") + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "isy" = ( /obj/structure/chair/office{ dir = 4 @@ -36290,6 +36269,17 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"jag" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/turf_decal/trimline/white/warning{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/mob/living/basic/goose/vomit, +/turf/open/floor/iron/dark, +/area/station/service/abandoned_gambling_den) "jap" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -36631,19 +36621,6 @@ }, /turf/open/floor/iron/white, /area/station/science/robotics/lab) -"jem" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/siding/white, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "jeo" = ( /turf/open/floor/plating, /area/station/maintenance/department/eva/abandoned) @@ -37438,6 +37415,25 @@ }, /turf/open/floor/engine/co2, /area/station/engineering/atmos) +"jmH" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/folder/yellow{ + pixel_x = -6 + }, +/obj/item/pen{ + pixel_x = -6 + }, +/obj/machinery/door/window/left/directional/north{ + name = "Office Desk"; + req_access = list("cargo") + }, +/obj/effect/turf_decal/delivery, +/obj/structure/desk_bell{ + pixel_x = 7 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "jmQ" = ( /obj/structure/table/reinforced, /obj/machinery/cell_charger, @@ -38000,6 +37996,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/fore) +"juB" = ( +/obj/structure/kitchenspike, +/obj/effect/turf_decal/bot/right, +/turf/open/floor/iron/kitchen_coldroom/dark, +/area/station/service/kitchen/coldroom) "juF" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -38473,6 +38474,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"jAY" = ( +/obj/machinery/computer/station_alert/station_only{ + dir = 4 + }, +/obj/effect/turf_decal/bot/left, +/turf/open/floor/iron, +/area/station/maintenance/department/electrical) "jBj" = ( /obj/item/storage/toolbox/emergency, /obj/item/tank/internals/oxygen, @@ -38827,6 +38835,14 @@ }, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"jED" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/structure/sink/kitchen/directional/south, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "jEF" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -40129,13 +40145,6 @@ /obj/structure/sign/warning/electric_shock/directional/west, /turf/open/space/basic, /area/space/nearstation) -"jUU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "jUV" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 10 @@ -40495,6 +40504,21 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) +"kav" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp{ + pixel_x = -7; + pixel_y = 9 + }, +/obj/item/folder/yellow{ + pixel_x = 5; + pixel_y = -5 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "kax" = ( /obj/structure/chair/office/light{ dir = 4 @@ -41597,14 +41621,6 @@ }, /turf/open/floor/iron/dark, /area/station/command/corporate_showroom) -"knS" = ( -/obj/machinery/computer/station_alert/station_only{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage) "knX" = ( /obj/structure/cable, /obj/effect/landmark/start/medical_doctor, @@ -42936,15 +42952,6 @@ }, /turf/open/floor/iron/dark, /area/station/service/library/printer) -"kHn" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "kHp" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/blue{ @@ -43353,25 +43360,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/detectives_office/private_investigators_office) -"kNt" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/folder/yellow{ - pixel_x = -6 - }, -/obj/item/pen{ - pixel_x = -6 - }, -/obj/machinery/door/window/left/directional/north{ - name = "Office Desk"; - req_access = list("cargo") - }, -/obj/effect/turf_decal/delivery, -/obj/structure/desk_bell{ - pixel_x = 7 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "kNw" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/delivery, @@ -45364,6 +45352,17 @@ }, /turf/open/floor/iron/dark, /area/station/science/genetics) +"lmP" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/bot, +/obj/machinery/computer/station_alert/station_only{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/engineering/atmos/storage/gas) "lni" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46370,16 +46369,6 @@ /obj/machinery/power/port_gen/pacman/pre_loaded, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"lAF" = ( -/obj/machinery/holopad/secure, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/door/window/brigdoor/left/directional/west{ - name = "Secondary AI Core Access"; - pixel_x = -4; - req_access = list("ai_upload") - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai) "lAH" = ( /obj/item/kirbyplants/random, /obj/machinery/power/apc/auto_name/directional/north, @@ -48315,6 +48304,42 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"lZC" = ( +/obj/structure/table/wood, +/obj/machinery/computer/records/medical/laptop, +/obj/machinery/light_switch/directional/west{ + pixel_x = -38; + pixel_y = 8 + }, +/obj/machinery/button/flasher{ + id = "hopflash"; + pixel_x = -38; + pixel_y = -7; + req_access = list("kitchen") + }, +/obj/machinery/button/ticket_machine{ + pixel_x = -6; + pixel_y = 22 + }, +/obj/machinery/button/door/directional/west{ + id = "hopblast"; + name = "Lockdown Blast Doors"; + pixel_y = 6; + req_access = list("hop") + }, +/obj/machinery/button/door/directional/west{ + id = "hopline"; + name = "Queue Shutters Control"; + pixel_y = -6; + req_access = list("hop") + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/button/photobooth{ + pixel_x = 6; + pixel_y = 22 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hop) "lZF" = ( /obj/machinery/power/shieldwallgen/xenobiologyaccess, /obj/structure/cable, @@ -49193,6 +49218,24 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"mna" = ( +/obj/machinery/firealarm/directional/south, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/item/storage/box/monkeycubes{ + pixel_x = 1; + pixel_y = 10 + }, +/obj/item/storage/box/monkeycubes{ + pixel_x = -13; + pixel_y = 3 + }, +/turf/open/floor/iron, +/area/station/science/xenobiology) "mnl" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -49363,6 +49406,16 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/commons/fitness/recreation) +"mpL" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1 + }, +/obj/machinery/light/small/directional/east, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "mpO" = ( /obj/machinery/door/airlock/public/glass{ id_tag = "permabolt3"; @@ -49757,16 +49810,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/engineering/main) -"muI" = ( -/obj/machinery/computer/atmos_alert/station_only, -/obj/effect/turf_decal/bot, -/obj/structure/sign/warning/gas_mask/directional/north, -/obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/maintenance/department/electrical) "muK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, @@ -49936,6 +49979,16 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"mwM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "mwR" = ( /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/all/medical/general, @@ -50678,13 +50731,6 @@ }, /turf/open/floor/iron, /area/station/engineering/supermatter/room) -"mFE" = ( -/obj/machinery/computer/station_alert/station_only{ - dir = 4 - }, -/obj/effect/turf_decal/bot/left, -/turf/open/floor/iron, -/area/station/maintenance/department/electrical) "mFH" = ( /obj/machinery/door/poddoor/shutters{ dir = 1; @@ -51630,6 +51676,18 @@ }, /turf/open/floor/iron, /area/station/science/research) +"mRm" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/directional/north, +/obj/effect/mapping_helpers/airalarm/tlv_cold_room, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "mRs" = ( /obj/structure/cable, /obj/effect/landmark/start/depsec/science, @@ -53104,15 +53162,6 @@ }, /turf/open/floor/iron, /area/station/science/xenobiology) -"nno" = ( -/obj/machinery/computer/station_alert/station_only{ - dir = 1 - }, -/obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/dark, -/area/station/engineering/main) "nnv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -54239,24 +54288,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/sorting) -"nDc" = ( -/obj/machinery/firealarm/directional/south, -/obj/structure/table/reinforced, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/obj/item/storage/box/monkeycubes{ - pixel_x = 1; - pixel_y = 10 - }, -/obj/item/storage/box/monkeycubes{ - pixel_x = -13; - pixel_y = 3 - }, -/turf/open/floor/iron, -/area/station/science/xenobiology) "nDk" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/conveyor{ @@ -55448,6 +55479,14 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/virology) +"nSu" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "nSv" = ( /obj/structure/sign/nanotrasen, /turf/closed/wall/r_wall, @@ -56618,6 +56657,14 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/security/detectives_office) +"oiO" = ( +/obj/machinery/computer/station_alert/station_only{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "oiW" = ( /obj/machinery/duct, /obj/structure/disposalpipe/segment, @@ -56782,17 +56829,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"okF" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom{ - dir = 8 - }, -/obj/effect/turf_decal/delivery, -/obj/item/wrench{ - pixel_x = -3; - pixel_y = -3 - }, -/turf/open/floor/iron/dark, -/area/station/service/kitchen/coldroom) "okJ" = ( /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark, @@ -58447,42 +58483,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"oIx" = ( -/obj/structure/table/wood, -/obj/machinery/computer/records/medical/laptop, -/obj/machinery/light_switch/directional/west{ - pixel_x = -38; - pixel_y = 8 - }, -/obj/machinery/button/flasher{ - id = "hopflash"; - pixel_x = -38; - pixel_y = -7; - req_access = list("kitchen") - }, -/obj/machinery/button/ticket_machine{ - pixel_x = -6; - pixel_y = 22 - }, -/obj/machinery/button/door/directional/west{ - id = "hopblast"; - name = "Lockdown Blast Doors"; - pixel_y = 6; - req_access = list("hop") - }, -/obj/machinery/button/door/directional/west{ - id = "hopline"; - name = "Queue Shutters Control"; - pixel_y = -6; - req_access = list("hop") - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/button/photobooth{ - pixel_x = 6; - pixel_y = 22 - }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/hop) "oIE" = ( /obj/structure/cable, /obj/effect/turf_decal/stripes/line{ @@ -58676,13 +58676,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/service/theater/abandoned) -"oLU" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "oLV" = ( /obj/effect/landmark/start/hangover, /turf/open/floor/iron, @@ -58844,6 +58837,17 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/maintenance/port) +"oNx" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/west, +/obj/machinery/firealarm/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "oNy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, @@ -59325,16 +59329,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"oTB" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/siding/white, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1 - }, -/obj/machinery/light/small/directional/east, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "oTC" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -61260,6 +61254,37 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/ai_monitored/command/storage/eva) +"pud" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/monkeycubes{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/storage/pill_bottle/mutadone{ + pixel_x = -8; + pixel_y = 9 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -10; + pixel_y = -1 + }, +/obj/item/storage/box/monkeycubes{ + pixel_x = 4 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Science - Genetics"; + dir = 6; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/machinery/status_display/evac/directional/east, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/obj/item/flesh_shears, +/turf/open/floor/iron/dark, +/area/station/science/genetics) "puh" = ( /obj/effect/spawner/structure/window/hollow/reinforced/directional{ dir = 8 @@ -63087,6 +63112,24 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/space, /area/station/solars/starboard/fore) +"pOK" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/item/storage/fancy/egg_box, +/obj/item/storage/fancy/egg_box, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, +/turf/open/floor/iron/kitchen_coldroom/dark, +/area/station/service/kitchen/coldroom) "pOP" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/maintenance_hatch{ @@ -64943,17 +64986,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/hallway/secondary/entry) -"qln" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ - dir = 4 - }, -/obj/machinery/computer/atmos_alert/station_only{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/iron/dark/textured_large, -/area/station/engineering/atmos/storage/gas) "qlp" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -64975,6 +65007,17 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos/project) +"qly" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/directional/west, +/obj/machinery/duct, +/obj/effect/mapping_helpers/airalarm/tlv_kitchen, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "qlD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/light/directional/east, @@ -68614,15 +68657,6 @@ }, /turf/open/floor/iron, /area/station/medical/virology) -"riE" = ( -/obj/structure/cable, -/obj/machinery/computer/station_alert/station_only{ - dir = 1 - }, -/obj/machinery/status_display/ai/directional/south, -/obj/effect/turf_decal/tile/red/half/contrasted, -/turf/open/floor/iron, -/area/station/security/checkpoint/engineering) "riH" = ( /obj/effect/turf_decal/bot, /obj/structure/extinguisher_cabinet/directional/south, @@ -69430,6 +69464,17 @@ "rrU" = ( /turf/open/floor/plating, /area/station/maintenance/port) +"rrV" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/item/wrench{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/iron/kitchen_coldroom/dark, +/area/station/service/kitchen/coldroom) "rsa" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -69935,6 +69980,19 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron, /area/station/ai_monitored/command/storage/eva) +"ryD" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white/corner, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "ryE" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/iron/fifty, @@ -71308,6 +71366,11 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/auxlab/firing_range) +"rPO" = ( +/obj/structure/kitchenspike, +/obj/effect/turf_decal/bot/left, +/turf/open/floor/iron/kitchen_coldroom/dark, +/area/station/service/kitchen/coldroom) "rPQ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -71408,19 +71471,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) -"rQQ" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/turf_decal/siding/white/corner, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "rQZ" = ( /obj/machinery/modular_computer/preset/id{ dir = 8 @@ -71634,27 +71684,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/break_room) -"rTg" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Research Director's Office" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/all/science/rd, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/navigate_destination, -/turf/open/floor/iron, -/area/station/command/heads_quarters/rd) "rTr" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/graffiti, @@ -73413,17 +73442,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/half, /area/station/service/hydroponics) -"sqM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/closet/secure_closet/freezer/meat, -/obj/effect/turf_decal/bot, -/obj/item/food/meat/slab/monkey, -/obj/item/food/meat/slab/monkey, -/turf/open/floor/iron/dark, -/area/station/service/kitchen/coldroom) "sqT" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -74645,6 +74663,16 @@ }, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"sGJ" = ( +/obj/machinery/holopad/secure, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/door/window/brigdoor/left/directional/west{ + name = "Secondary AI Core Access"; + pixel_x = -4; + req_access = list("ai_upload") + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) "sGQ" = ( /obj/structure/chair/office{ dir = 4 @@ -75755,6 +75783,18 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"sUH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/purple/full, +/turf/open/floor/iron/large, +/area/station/science/research) "sUQ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -76697,14 +76737,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) -"thz" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "thB" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/flora/bush/jungle/a/style_random, @@ -76887,6 +76919,17 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) +"tlq" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/computer/atmos_alert/station_only{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron/dark/textured_large, +/area/station/engineering/atmos/storage/gas) "tlA" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -78156,6 +78199,14 @@ /obj/item/clothing/head/costume/cardborg, /turf/open/floor/plating, /area/station/maintenance/port) +"tCr" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) "tCs" = ( /turf/closed/wall, /area/station/service/janitor) @@ -79285,21 +79336,6 @@ }, /turf/open/floor/iron/dark/smooth_half, /area/station/medical/morgue) -"tPn" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/structure/table/reinforced, -/obj/item/clothing/glasses/welding, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/weldingtool/empty{ - pixel_x = 9; - pixel_y = 8 - }, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/security/mechbay) "tPo" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2, /turf/open/floor/engine/vacuum, @@ -79933,6 +79969,14 @@ /obj/effect/turf_decal/tile/purple/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"tXQ" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "tXS" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/structure/cable, @@ -81243,6 +81287,15 @@ /obj/structure/sign/plaques/kiddie/library, /turf/open/floor/plating, /area/station/service/library) +"uoz" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "uoI" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -81588,16 +81641,6 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/hop) -"usV" = ( -/obj/machinery/holopad/secure, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/door/window/brigdoor/right/directional/east{ - name = "Tertiary AI Core Access"; - pixel_x = 4; - req_access = list("ai_upload") - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai) "usZ" = ( /obj/item/flashlight/lamp, /obj/machinery/airalarm/directional/east, @@ -82809,19 +82852,6 @@ /obj/structure/cable, /turf/open/floor/circuit/telecomms/mainframe, /area/station/tcommsat/server) -"uHq" = ( -/obj/machinery/status_display/evac/directional/south, -/obj/machinery/camera/directional/south{ - c_tag = "Engineering - Power Monitoring"; - name = "engineering camera" - }, -/obj/machinery/computer/atmos_alert/station_only{ - dir = 1 - }, -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/main) "uHu" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -83284,17 +83314,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"uNr" = ( -/obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/turf_decal/trimline/white/warning{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/mob/living/basic/goose/vomit, -/turf/open/floor/iron/dark, -/area/station/service/abandoned_gambling_den) "uNy" = ( /obj/machinery/computer/accounting{ dir = 4 @@ -86661,6 +86680,16 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/engineering/main) +"vEJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/freezer/kitchen, +/obj/item/reagent_containers/condiment/flour, +/turf/open/floor/iron/kitchen_coldroom/dark, +/area/station/service/kitchen/coldroom) "vEV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -88610,6 +88639,15 @@ /obj/machinery/newscaster/directional/north, /turf/open/floor/wood, /area/station/commons/dorms) +"wgF" = ( +/obj/structure/cable, +/obj/machinery/computer/station_alert/station_only{ + dir = 1 + }, +/obj/machinery/status_display/ai/directional/south, +/obj/effect/turf_decal/tile/red/half/contrasted, +/turf/open/floor/iron, +/area/station/security/checkpoint/engineering) "wgG" = ( /obj/machinery/holopad/secure, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -88694,6 +88732,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/engineering/lobby) +"whx" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "whA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -88922,6 +88973,13 @@ /obj/effect/spawner/random/structure/tank_holder, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"wkT" = ( +/obj/machinery/computer/atmos_alert/station_only, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) "wlc" = ( /obj/structure/table/reinforced, /obj/item/gun/energy/laser/carbine/practice{ @@ -89449,16 +89507,6 @@ }, /turf/open/floor/iron/dark, /area/station/maintenance/port) -"wqk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/structure/closet/secure_closet/freezer/kitchen, -/obj/item/reagent_containers/condiment/flour, -/turf/open/floor/iron/dark, -/area/station/service/kitchen/coldroom) "wqn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, @@ -89607,11 +89655,6 @@ /obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, /turf/open/floor/iron, /area/station/service/hydroponics) -"wrP" = ( -/obj/structure/reagent_dispensers/cooking_oil, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron/dark, -/area/station/service/kitchen/coldroom) "wrZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -90681,6 +90724,16 @@ /obj/structure/sign/poster/contraband/borg_fancy_1/directional/south, /turf/open/floor/plating, /area/station/science/research/abandoned) +"wEX" = ( +/obj/machinery/computer/atmos_alert/station_only{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "wEY" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -91419,6 +91472,14 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/wood, /area/station/command/heads_quarters/hop) +"wPp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/mob/living/basic/goat/pete, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "wPA" = ( /obj/structure/cable, /obj/effect/turf_decal/stripes/line{ @@ -92197,6 +92258,27 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/hop) +"xbJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Research Director's Office" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron, +/area/station/command/heads_quarters/rd) "xbK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/item/radio/intercom/directional/west, @@ -92206,24 +92288,6 @@ }, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"xbO" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/effect/turf_decal/bot, -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/item/storage/fancy/egg_box, -/obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/condiment/milk, -/obj/item/reagent_containers/condiment/milk, -/obj/item/reagent_containers/condiment/soymilk, -/turf/open/floor/iron/dark, -/area/station/service/kitchen/coldroom) "xcd" = ( /obj/item/stack/cable_coil, /obj/structure/lattice/catwalk, @@ -94238,14 +94302,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/morgue) -"xAt" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/duct, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "xAu" = ( /obj/effect/turf_decal/trimline/neutral/warning{ dir = 6 @@ -94394,17 +94450,6 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/station/science/xenobiology) -"xCU" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ - dir = 4 - }, -/obj/machinery/light/directional/south, -/obj/effect/turf_decal/bot, -/obj/machinery/computer/station_alert/station_only{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured_large, -/area/station/engineering/atmos/storage/gas) "xDd" = ( /obj/item/book/bible, /obj/structure/altar_of_gods, @@ -94420,6 +94465,19 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/engineering/atmos) +"xDi" = ( +/obj/machinery/status_display/evac/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Engineering - Power Monitoring"; + name = "engineering camera" + }, +/obj/machinery/computer/atmos_alert/station_only{ + dir = 1 + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/engineering/main) "xDm" = ( /obj/machinery/door/poddoor/preopen{ id = "atmoslock"; @@ -95253,14 +95311,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/plating, /area/station/service/theater/abandoned) -"xNu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/obj/structure/sink/kitchen/directional/south, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "xNv" = ( /obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line, @@ -95360,20 +95410,6 @@ }, /turf/open/floor/iron, /area/station/commons/dorms) -"xOI" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/machinery/camera/directional/west{ - c_tag = "Service - Kitchen Coldroom"; - dir = 10; - name = "service camera" - }, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "xOP" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, @@ -96018,17 +96054,6 @@ }, /turf/open/floor/iron, /area/station/commons/locker) -"xYP" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/obj/effect/turf_decal/stripes/corner, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/west, -/obj/machinery/firealarm/directional/west, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "xYW" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/maintenance_hatch{ @@ -96312,21 +96337,6 @@ }, /turf/open/floor/iron/cafeteria, /area/station/service/cafeteria) -"ydg" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 - }, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/turf_decal/siding/white, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/effect/decal/cleanable/food/flour, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "ydp" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, @@ -96883,14 +96893,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/commons/vacant_room) -"ykS" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron/white, -/area/station/medical/medbay/lobby) "ykX" = ( /obj/structure/table/wood, /obj/item/electronics/firelock, @@ -104263,7 +104265,7 @@ cQh vOZ xnu kXJ -lAF +sGJ kXJ kXJ jPe @@ -106319,7 +106321,7 @@ cQh nkb eLP kXJ -usV +fCd kXJ kXJ xMX @@ -118970,7 +118972,7 @@ gpd cXL bMd eJy -uNr +jag jtC ibp pxb @@ -119177,7 +119179,7 @@ viB pOz hEL gyR -bgV +cfx vyn eMN gAw @@ -122491,8 +122493,8 @@ rcw lOA mhx fFr -apv -knS +wEX +oiO cwY iWj jSI @@ -122809,7 +122811,7 @@ qNn lZG gmI ahY -nDc +mna jDd eJG loj @@ -123535,7 +123537,7 @@ lCd koJ bcR vXH -qln +tlq xLZ rov rSi @@ -123792,7 +123794,7 @@ hiK jqb iGZ pJf -xCU +lmP xLZ ngR bUQ @@ -123805,7 +123807,7 @@ tpP chs dVC lhn -riE +wgF wGA wda clq @@ -124067,7 +124069,7 @@ wGA aJu uxG pkZ -uHq +xDi pTC jfZ csR @@ -124324,7 +124326,7 @@ slp aJu iSi mQF -nno +bKo pTC lsf kwL @@ -127377,12 +127379,12 @@ noK gtX oqx xtp -idQ -bWW -xYP -xOI -rQQ -aMH +juB +eJE +oNx +iks +ryD +isv oYs owb oYs @@ -127634,12 +127636,12 @@ vmh rEJ shc xtp -hBF -jUU -oLU -gIJ -jem -wqk +rPO +ezr +fdj +crs +whx +vEJ oYs mcs oYs @@ -127893,10 +127895,10 @@ xtp xtp xtp nFX -fOx -thz -ydg -xbO +mRm +nSu +fbc +pOK oYs uGH oYs @@ -128147,13 +128149,13 @@ cEK yca sIE meJ -hXw +qly btc hFP -xAt -eEI -oTB -sqM +tXQ +wPp +mpL +btf oYs uGH owb @@ -128209,7 +128211,7 @@ dqP aFp sIX sIX -rTg +xbJ sIX sIX mRl @@ -128407,8 +128409,8 @@ xKJ uyx hmy nFX -xNu -gPr +jED +dxF oYs oYs oYs @@ -128664,8 +128666,8 @@ aHv rxM pAu nFX -wrP -okF +eBU +rrV oYs oTY tTn @@ -130302,7 +130304,7 @@ vDL cUk qQM lGQ -fGE +aTQ qdY rTS qQM @@ -132542,7 +132544,7 @@ sEm dEA nxd pRS -oIx +lZC eGs ykB jpe @@ -133353,7 +133355,7 @@ tuN fvi fvi ndc -fYY +sUH dcG qfi nZe @@ -134371,7 +134373,7 @@ rcW sAv wYH lmL -iiU +pud fZg eAq okD @@ -136898,7 +136900,7 @@ lSl xms aaa wyH -brx +wkT qkm cQv drj @@ -137970,7 +137972,7 @@ xuI dkp bLp kLo -ykS +tCr iED tOi fZp @@ -138426,7 +138428,7 @@ hqK hLa rve iJr -kNt +jmH qQE xjx euK @@ -141261,7 +141263,7 @@ pDz quh tjo hXg -gUl +fmH tpZ aaa aad @@ -141518,7 +141520,7 @@ cjO hrz wTL hXg -kHn +uoz tpZ aaa lhY @@ -141775,7 +141777,7 @@ dsb sYn gVv hXg -kHn +uoz tpZ aad lhY @@ -142032,7 +142034,7 @@ hXg hXg hXg hXg -hmX +mwM tpZ aaa lhY @@ -142289,7 +142291,7 @@ lDu taO eCQ tpZ -kHn +uoz tpZ aaa lhY @@ -143056,7 +143058,7 @@ uMS jyZ azD cTv -ctF +kav diV tDD rWo @@ -144153,7 +144155,7 @@ qMf hyy xPK wZE -muI +eSU haQ own pdb @@ -145183,7 +145185,7 @@ aCJ wZE erV edL -mFE +jAY ftw wZE krx @@ -151307,7 +151309,7 @@ teo pKD pbN bLs -aJB +hyR lPH udb ggW @@ -151824,7 +151826,7 @@ ptN nEZ pgZ uHu -tPn +aZj nEZ qYo efQ diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index 674cdb3c633a9..0c35c60663b9a 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -155,12 +155,14 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/station/commons/fitness) -"adb" = ( -/obj/structure/rack, -/obj/item/climbing_hook/emergency, -/obj/item/stack/rods, -/turf/open/floor/iron/smooth, -/area/station/maintenance/port/aft) +"adf" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 2; + pixel_x = -5 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "adq" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/unres{ @@ -310,6 +312,13 @@ dir = 4 }, /area/station/science/explab) +"age" = ( +/obj/effect/spawner/random/vending/colavend, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/meeting_room) "agk" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -615,6 +624,22 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/transit_tube) +"ale" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Morgue North"; + network = list("ss13","medbay") + }, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/trimline/neutral/filled/end{ + dir = 8 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "alq" = ( /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/iron/grimy, @@ -638,17 +663,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/security/prison/rec) -"alB" = ( -/obj/machinery/door/window/left/directional/south{ - name = "The Ice Box"; - req_access = list("kitchen") - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/siding/white, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "alD" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -656,11 +670,6 @@ /obj/effect/turf_decal/siding/thinplating_new/corner, /turf/open/floor/iron/large, /area/station/hallway/secondary/entry) -"alF" = ( -/obj/structure/closet/emcloset, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "alK" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/machinery/power/port_gen/pacman, @@ -736,6 +745,15 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"amL" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/obj/structure/marker_beacon/burgundy{ + name = "landing marker" + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "amN" = ( /obj/structure/disposalpipe/segment, /obj/item/radio/intercom/directional/west, @@ -744,6 +762,16 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"amU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/maintenance/starboard/lesser) "amW" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -832,6 +860,45 @@ /obj/machinery/light/floor, /turf/open/floor/iron, /area/station/command/bridge) +"aol" = ( +/obj/effect/spawner/random/trash/hobo_squat, +/obj/structure/closet/crate/coffin, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/commons/storage/mining) +"aom" = ( +/obj/machinery/pdapainter/engineering, +/obj/effect/turf_decal/tile/neutral/full, +/obj/machinery/button/door/directional/west{ + id = "Engineering"; + name = "Engineering Lockdown Control"; + pixel_y = -8; + req_access = list("engineering") + }, +/obj/machinery/button/door/directional/west{ + id = "engstorage"; + name = "Engineering Secure Storage Control"; + pixel_x = -36; + pixel_y = 4; + req_access = list("engine_equip") + }, +/obj/machinery/button/door/directional/west{ + id = "atmos"; + name = "Atmospherics Lockdown Control"; + pixel_y = 4; + req_access = list("atmospherics") + }, +/obj/machinery/button/door/directional/west{ + id = "ceprivacy"; + name = "Privacy Shutter Control"; + pixel_x = -36; + pixel_y = -8; + req_access = list("engineering") + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/heads_quarters/ce) "aon" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 @@ -858,6 +925,22 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/dorms) +"aov" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/obj/structure/closet/secure_closet/medical1, +/obj/machinery/light/small/directional/east, +/obj/machinery/light_switch/directional/north, +/obj/machinery/door_buttons/access_button{ + idDoor = "virology_airlock_interior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + pixel_y = 37; + req_access = list("virology") + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) "aow" = ( /obj/effect/turf_decal/trimline/green/filled/warning{ dir = 4 @@ -898,6 +981,40 @@ }, /turf/open/floor/iron, /area/station/service/bar) +"aoP" = ( +/obj/machinery/door/airlock/external{ + dir = 8; + name = "Lower Medical External Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "chem-morgue-airlock" + }, +/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/any/engineering/external, +/turf/open/floor/plating, +/area/station/medical/morgue) +"aoW" = ( +/obj/machinery/door/poddoor/preopen{ + dir = 4; + id = "bridge blast"; + name = "Bridge Blast Door" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/command/bridge) +"aoY" = ( +/obj/machinery/light/cold/directional/west, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "apb" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -911,6 +1028,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"aph" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "api" = ( /obj/structure/chair/office/light{ dir = 8 @@ -931,6 +1054,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/service) +"apo" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/command/glass{ + dir = 8; + name = "Bridge" + }, +/obj/structure/cable, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron, +/area/station/command/bridge) "apq" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -940,6 +1077,12 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron, /area/station/commons/locker) +"apt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/large, +/area/station/engineering/storage/tech) "apB" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 @@ -993,6 +1136,10 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/mine/laborcamp) +"aqd" = ( +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/openspace, +/area/station/engineering/storage/tech) "aqp" = ( /obj/effect/turf_decal/trimline/green/filled/warning{ dir = 8 @@ -1058,6 +1205,17 @@ dir = 1 }, /area/station/security/office) +"arg" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/service/janitor) "aro" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -1100,6 +1258,17 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"arQ" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Public Mining"; + opacity = 0 + }, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/mining) "arT" = ( /obj/machinery/computer/security/labor{ dir = 4 @@ -1175,6 +1344,23 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron, /area/station/service/bar) +"asU" = ( +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + dir = 8; + name = "Escape" + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/secondary/exit/departure_lounge) "asZ" = ( /obj/machinery/door/airlock/research{ name = "Robotics Lab" @@ -1349,6 +1535,13 @@ /obj/effect/turf_decal/box, /turf/open/floor/iron/dark, /area/station/science/ordnance/office) +"auU" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/captain) "avb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, @@ -1540,6 +1733,17 @@ /obj/machinery/modular_computer/preset/id, /turf/open/floor/iron, /area/station/command/bridge) +"axg" = ( +/obj/effect/mapping_helpers/airlock/access/all/supply/mining, +/obj/machinery/door/airlock/external/glass{ + name = "Mining Airlock"; + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "miner-passthrough" + }, +/turf/open/floor/plating, +/area/station/cargo/miningdock) "axj" = ( /obj/effect/decal/cleanable/blood/tracks{ dir = 4 @@ -1569,6 +1773,10 @@ }, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"axr" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "axu" = ( /obj/structure/grille, /turf/open/floor/plating, @@ -1646,12 +1854,6 @@ /obj/structure/sign/poster/random/directional/north, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"ayp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "ayq" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "atmos-entrance" @@ -1664,6 +1866,12 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"ayx" = ( +/obj/structure/fence/corner{ + dir = 2 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/unexplored/rivers/deep/shoreline) "ayG" = ( /obj/structure/lattice/catwalk, /obj/structure/railing/corner, @@ -1721,11 +1929,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"azq" = ( -/obj/structure/light_construct/directional/west, -/mob/living/basic/goose/vomit, -/turf/open/floor/wood, -/area/station/maintenance/port/aft) "azw" = ( /turf/closed/wall, /area/station/medical/pharmacy) @@ -1778,15 +1981,6 @@ }, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai_upload) -"aAj" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/captain) "aAl" = ( /obj/machinery/computer/mech_bay_power_console{ dir = 1 @@ -1801,6 +1995,16 @@ /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron, /area/station/command/bridge) +"aAM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "aBf" = ( /obj/effect/landmark/start/hangover, /turf/open/floor/engine{ @@ -1949,13 +2153,6 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron/dark, /area/station/science/breakroom) -"aDs" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "aDG" = ( /obj/structure/fence{ dir = 8 @@ -1996,9 +2193,9 @@ /turf/open/floor/iron/white, /area/station/science/robotics/lab) "aEM" = ( -/obj/structure/sign/departments/cargo/directional/west, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) +/obj/effect/spawner/structure/window/hollow/reinforced/middle, +/turf/open/floor/plating, +/area/station/cargo/warehouse) "aES" = ( /obj/structure/table/wood/fancy/blue, /obj/effect/spawner/random/aimodule/neutral, @@ -2175,9 +2372,30 @@ /obj/effect/turf_decal/tile/brown/anticorner/contrasted, /turf/open/floor/iron, /area/station/cargo/office) +"aHR" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown/half{ + dir = 4 + }, +/turf/open/floor/iron/half{ + dir = 1 + }, +/area/station/commons/storage/mining) "aHT" = ( /turf/closed/wall, /area/station/security/checkpoint/science) +"aHV" = ( +/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/tile/brown/half{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/half{ + dir = 1 + }, +/area/station/commons/storage/mining) "aHW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -2322,6 +2540,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/port) +"aJE" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain) "aJG" = ( /obj/machinery/light/directional/west, /obj/structure/cable, @@ -2388,26 +2616,6 @@ /obj/structure/cable, /turf/open/floor/iron/white/textured, /area/station/security/medical) -"aKB" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external/glass{ - dir = 4; - name = "Supply Door Airlock"; - pixel_y = 0 - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/turf/open/floor/plating, -/area/station/cargo/storage) -"aKH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/turf_decal/siding/dark_blue/corner{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "aKI" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -2621,14 +2829,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/mine/eva) -"aOo" = ( -/obj/machinery/computer/station_alert/station_only{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/computer/security/telescreen/ce/directional/west, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/ce) "aOx" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/vending/clothing, @@ -2645,6 +2845,10 @@ /obj/machinery/light/small/dim/directional/south, /turf/open/floor/plating, /area/station/maintenance/department/chapel) +"aOE" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "aOG" = ( /obj/structure/fence/post{ dir = 2 @@ -2710,6 +2914,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"aPA" = ( +/obj/structure/fence{ + dir = 2; + pixel_y = 0 + }, +/obj/structure/sign/warning/directional/south, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "aPD" = ( /turf/closed/wall/r_wall, /area/station/engineering/storage_shared) @@ -2768,29 +2980,27 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/station/maintenance/aft/greater) -"aQp" = ( -/obj/machinery/button/door/directional/east{ - id = "commissaryshutter"; - name = "Commissary Shutter Control" - }, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/obj/machinery/button/door/directional/east{ - id = "commissarydoor"; - name = "Commissary Door Lock"; - normaldoorcontrol = 1; - pixel_x = 35; - specialfunctions = 4 - }, -/turf/open/floor/iron, -/area/station/commons/vacant_room/commissary) +"aQm" = ( +/obj/structure/sign/warning/directional/west, +/obj/machinery/light/small/directional/west, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "aQJ" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/service/chapel) +"aQO" = ( +/obj/item/clothing/glasses/meson, +/obj/item/storage/bag/ore, +/obj/item/pickaxe, +/obj/item/mining_scanner, +/obj/item/flashlight, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/gps/mining, +/obj/structure/rack, +/turf/open/floor/iron/textured_large, +/area/station/commons/storage/mining) "aQQ" = ( /obj/effect/decal/cleanable/blood/old, /obj/effect/mapping_helpers/burnt_floor, @@ -2814,10 +3024,6 @@ /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"aRc" = ( -/obj/structure/floodlight_frame, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "aRe" = ( /obj/structure/cable/multilayer/multiz, /obj/effect/turf_decal/stripes/line{ @@ -3002,6 +3208,15 @@ /obj/machinery/meter/layer4, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"aTx" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/icemoon, +/area/station/science/ordnance/bomb/planet) "aTE" = ( /obj/structure/table/reinforced, /obj/machinery/light_switch/directional/east, @@ -3029,15 +3244,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central) -"aTK" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/structure/sign/warning/electric_shock/directional/north, -/turf/open/floor/iron/dark/corner{ - dir = 4 - }, -/area/station/hallway/primary/central) "aTT" = ( /obj/structure/closet/toolcloset, /obj/effect/turf_decal/tile/yellow/half/contrasted, @@ -3220,6 +3426,9 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/tcommsat/computer) +"aVL" = ( +/turf/open/genturf/blue, +/area/icemoon/underground/unexplored/rivers/deep) "aVM" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 9 @@ -3355,6 +3564,12 @@ /mob/living/simple_animal/bot/secbot/beepsky, /turf/open/floor/plating, /area/station/maintenance/fore) +"aXG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/commons/storage/mining) "aXP" = ( /obj/structure/barricade/wooden, /obj/structure/sign/warning/cold_temp/directional/north, @@ -3376,22 +3591,6 @@ }, /turf/open/floor/iron, /area/station/science/robotics/lab) -"aYj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Cargo Warehouse External Airlock"; - opacity = 0 - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining_station, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "cargo-warehouse-external" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "aYk" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 1 @@ -3408,12 +3607,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/cargo/office) -"aYt" = ( -/obj/item/target, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/icemoon, -/area/station/science/ordnance/bomb/planet) "aYu" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/disposalpipe/segment{ @@ -3433,6 +3626,13 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/mine/production) +"aYO" = ( +/obj/machinery/light/cold/directional/east, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "aYQ" = ( /obj/machinery/shower/directional/south, /obj/item/soap/nanotrasen, @@ -3442,24 +3642,6 @@ "aZd" = ( /turf/open/floor/plating, /area/station/medical/virology) -"aZe" = ( -/obj/structure/table, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/flashlight{ - pixel_x = 4; - pixel_y = 11 - }, -/obj/item/assembly/flash/handheld, -/obj/item/assembly/flash/handheld{ - pixel_y = 2; - pixel_x = 2 - }, -/obj/structure/sign/warning/secure_area/directional/east, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "aZj" = ( /obj/item/flashlight/flare/candle{ pixel_x = -7; @@ -3491,6 +3673,13 @@ /obj/item/kirbyplants/potty, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"aZw" = ( +/obj/structure/sign/warning/secure_area{ + desc = "A warning sign which reads 'BOMB RANGE"; + name = "BOMB RANGE" + }, +/turf/closed/wall, +/area/station/science/ordnance/bomb/planet) "aZx" = ( /obj/machinery/camera/directional/east{ c_tag = "Telecomms Monitoring"; @@ -3606,16 +3795,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/cafeteria, /area/station/commons/dorms/laundry) -"baE" = ( -/obj/machinery/light/small/directional/west, -/obj/machinery/newscaster/directional/west, -/obj/effect/turf_decal/tile/brown/half{ - dir = 4 - }, -/turf/open/floor/iron/half{ - dir = 1 - }, -/area/station/commons/storage/mining) +"baB" = ( +/obj/effect/spawner/random/engineering/tank, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "baF" = ( /obj/structure/closet/l3closet/scientist, /obj/item/extinguisher, @@ -3651,6 +3834,12 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/department/chapel) +"baV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "baX" = ( /obj/structure/table, /obj/item/folder/white, @@ -3684,25 +3873,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"bbA" = ( -/obj/item/clothing/glasses/meson, -/obj/item/storage/bag/ore, -/obj/item/pickaxe, -/obj/item/mining_scanner, -/obj/item/flashlight, -/obj/item/clothing/suit/hooded/wintercoat, -/obj/item/gps/mining, -/obj/structure/rack, -/turf/open/floor/iron/textured_large, -/area/station/commons/storage/mining) -"bbJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sign/poster/ripped/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "bbM" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -3751,15 +3921,6 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/iron/textured, /area/station/security/brig) -"bcn" = ( -/obj/machinery/status_display/supply{ - pixel_y = -32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/miningdock) "bcs" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/directional/north, @@ -3921,37 +4082,10 @@ }, /turf/open/floor/iron/white, /area/station/medical/break_room) -"bdY" = ( -/obj/structure/sign/nanotrasen{ - pixel_y = 32 - }, -/obj/structure/table, -/obj/item/assembly/igniter{ - pixel_y = 4; - pixel_x = -2 - }, -/obj/item/assembly/igniter/condenser, -/obj/item/assembly/infra{ - pixel_y = 0; - pixel_x = 5 - }, -/obj/effect/turf_decal/siding/dark_blue/corner{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "bea" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating/icemoon, /area/station/engineering/atmos) -"bee" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/spawner/random/structure/steam_vent, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "ben" = ( /obj/machinery/bluespace_beacon, /obj/effect/turf_decal/stripes/line{ @@ -4044,14 +4178,6 @@ }, /turf/open/floor/wood, /area/station/security/courtroom) -"bgd" = ( -/obj/structure/bed/dogbed/renault, -/mob/living/basic/pet/fox/renault, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/captain) "bge" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate, @@ -4122,18 +4248,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/brig/entrance) -"bgO" = ( -/obj/structure/table, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = 5; - pixel_y = 3 - }, -/obj/item/tank/internals/emergency_oxygen, -/obj/effect/turf_decal/siding/brown{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/mining) "bgU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/brown{ @@ -4164,20 +4278,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/prison/workout) -"bhu" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/t_scanner, -/obj/item/multitool, -/obj/item/clothing/gloves/color/yellow, -/obj/machinery/newscaster/directional/east, -/obj/effect/turf_decal/bot, -/obj/machinery/light/cold/directional/east, -/turf/open/floor/iron/dark/smooth_large, -/area/station/engineering/storage/tech) "bhw" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 @@ -4205,14 +4305,6 @@ }, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) -"bhZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/carpet/royalblue, -/area/station/command/heads_quarters/captain) "bie" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 @@ -4257,23 +4349,6 @@ /obj/machinery/power/port_gen/pacman, /turf/open/floor/iron/smooth, /area/station/maintenance/starboard/lesser) -"biG" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/machinery/modular_computer/preset/civilian, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/machinery/light_switch/directional/north{ - pixel_x = -6 - }, -/obj/machinery/button/door/directional/north{ - id = "stationawaygate"; - name = "Gateway Access Shutter Control"; - pixel_x = 6; - req_access = list("gateway") - }, -/turf/open/floor/iron/dark, -/area/station/command/gateway) "biR" = ( /obj/structure/table/glass, /obj/item/storage/box/beakers{ @@ -4564,6 +4639,22 @@ }, /turf/open/floor/iron/white, /area/mine/laborcamp) +"bmu" = ( +/obj/structure/table, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/reagent_containers/spray/cleaner, +/obj/machinery/requests_console/directional/south{ + department = "Janitorial"; + name = "Janitorial Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/service/janitor) "bmv" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -4744,6 +4835,12 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark/textured, /area/station/engineering/engine_smes) +"bpl" = ( +/obj/structure/cable, +/obj/structure/minecart_rail/railbreak, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "bpm" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted{ dir = 4 @@ -4774,6 +4871,11 @@ }, /turf/open/floor/plastic, /area/station/commons/dorms/laundry) +"bpr" = ( +/obj/structure/marker_beacon/jade, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "bpw" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/landmark/event_spawn, @@ -4836,6 +4938,20 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors/labor_camp) +"bqi" = ( +/obj/item/clothing/glasses/meson, +/obj/item/storage/bag/ore, +/obj/item/pickaxe, +/obj/item/mining_scanner, +/obj/item/flashlight, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/gps/mining, +/obj/machinery/light/small/directional/east, +/obj/structure/rack, +/obj/machinery/firealarm/directional/east, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron/textured_large, +/area/station/commons/storage/mining) "bqq" = ( /obj/structure/grille, /obj/structure/window/reinforced/spawner/directional/west, @@ -5031,21 +5147,6 @@ /obj/effect/mapping_helpers/airlock/access/all/science/robotics, /turf/open/floor/iron/white, /area/station/science/robotics/lab) -"bsN" = ( -/obj/structure/table, -/obj/item/storage/pill_bottle/mutadone{ - pixel_x = 11; - pixel_y = 7 - }, -/obj/item/reagent_containers/spray/cleaner{ - pixel_x = 2 - }, -/obj/item/radio/headset/headset_medsci{ - pixel_x = -7; - pixel_y = 6 - }, -/turf/open/floor/iron/dark, -/area/station/science/genetics) "bsO" = ( /obj/effect/turf_decal/box, /obj/structure/closet/crate, @@ -5097,14 +5198,6 @@ dir = 4 }, /area/station/hallway/secondary/entry) -"btq" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "bts" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -5157,12 +5250,6 @@ dir = 1 }, /area/station/hallway/secondary/entry) -"btX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/commons/storage/mining) "bub" = ( /obj/machinery/vending/cola/red, /obj/machinery/light/warm/directional/north, @@ -5269,6 +5356,23 @@ /obj/machinery/autolathe, /turf/open/floor/iron, /area/station/cargo/office) +"bvw" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_x = -1; + pixel_y = 8 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = -5; + pixel_y = -8 + }, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 9; + pixel_y = -6 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "bvE" = ( /obj/machinery/computer/monitor{ name = "bridge power monitoring console" @@ -5400,12 +5504,6 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"bxc" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/grille, -/turf/open/floor/plating, -/area/station/commons/storage/mining) "bxe" = ( /turf/closed/wall/r_wall, /area/station/maintenance/solars/starboard/fore) @@ -5413,11 +5511,6 @@ /obj/structure/closet/crate, /turf/open/floor/plating, /area/station/maintenance/department/chapel) -"bxO" = ( -/obj/effect/spawner/structure/window/reinforced/tinted, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/commons/storage/mining) "bxP" = ( /obj/effect/turf_decal/siding/purple{ dir = 1 @@ -5532,10 +5625,6 @@ /obj/structure/girder, /turf/open/floor/plating, /area/station/maintenance/fore) -"byU" = ( -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "bza" = ( /obj/structure/fence/end{ dir = 8 @@ -5616,12 +5705,6 @@ /obj/structure/chair/stool/directional/north, /turf/open/floor/carpet, /area/station/command/heads_quarters/qm) -"bAe" = ( -/obj/structure/sign/warning{ - pixel_y = 32 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) "bAj" = ( /obj/machinery/door/firedoor{ dir = 4 @@ -5648,13 +5731,6 @@ dir = 4 }, /area/station/hallway/secondary/entry) -"bAr" = ( -/obj/machinery/vending/cigarette, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/command/meeting_room) "bAB" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5962,6 +6038,12 @@ /obj/effect/mapping_helpers/airlock/access/all/command/general, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/command/storage/eva) +"bEC" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/meeting_room) "bEJ" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -5988,6 +6070,13 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/engine/n2, /area/station/engineering/atmos) +"bFf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/construction) "bFm" = ( /obj/effect/decal/cleanable/plasma, /obj/effect/landmark/blobstart, @@ -6025,14 +6114,6 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"bFT" = ( -/obj/machinery/door/airlock/atmos{ - dir = 4; - name = "Turbine" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "bFW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/yellow/filled/corner{ @@ -6058,12 +6139,14 @@ /obj/effect/turf_decal/tile/brown/half/contrasted, /turf/open/floor/iron, /area/station/command/bridge) -"bGh" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle{ - dir = 4 - }, +"bGl" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/oil, /turf/open/floor/plating, -/area/station/commons/storage/mining) +/area/station/maintenance/port/aft) "bGm" = ( /obj/machinery/firealarm/directional/south, /obj/structure/filingcabinet/filingcabinet, @@ -6090,14 +6173,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"bGz" = ( -/obj/machinery/door/window/left/directional/north{ - name = "Public Mining" - }, -/turf/open/floor/iron/stairs/medium{ - dir = 1 - }, -/area/station/commons/storage/mining) "bGA" = ( /obj/effect/spawner/structure/window, /obj/structure/sign/departments/xenobio/directional/south, @@ -6144,6 +6219,17 @@ /obj/item/kirbyplants/random/dead, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"bHj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/vending/assist, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/siding/dark_blue/inner_corner{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "bHu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -6354,6 +6440,15 @@ /obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"bKz" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/middle{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "bKA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -6501,6 +6596,19 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/wood, /area/station/commons/lounge) +"bMt" = ( +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 3; + pixel_x = 1 + }, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high{ + pixel_y = 2; + pixel_x = 4 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "bMz" = ( /obj/docking_port/stationary{ dir = 8; @@ -6513,6 +6621,24 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"bMC" = ( +/obj/structure/table, +/obj/item/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/flashlight{ + pixel_x = 4; + pixel_y = 11 + }, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld{ + pixel_y = 2; + pixel_x = 2 + }, +/obj/structure/sign/warning/secure_area/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "bMF" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/abandoned, @@ -6520,13 +6646,6 @@ /obj/effect/mapping_helpers/airlock/unres, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"bMO" = ( -/obj/item/toy/snowball{ - pixel_x = 5; - pixel_y = -7 - }, -/turf/open/misc/asteroid/snow/coldroom, -/area/station/service/kitchen/coldroom) "bMY" = ( /turf/open/floor/glass/reinforced, /area/station/hallway/primary/starboard) @@ -6574,21 +6693,6 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/cryo) -"bNY" = ( -/obj/structure/table, -/obj/item/clothing/mask/breath{ - pixel_x = 2; - pixel_y = -1 - }, -/obj/item/clothing/mask/breath{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/effect/turf_decal/siding/brown{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/mining) "bOg" = ( /obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -6643,14 +6747,15 @@ }, /turf/open/floor/plating, /area/mine/living_quarters) -"bOJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 5 +"bON" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/window{ + dir = 8; + id = "dontdeadopeninside"; + name = "Shutters" }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "bOO" = ( /obj/effect/turf_decal/trimline/yellow/filled/corner{ dir = 8 @@ -6689,6 +6794,23 @@ /obj/structure/girder, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"bPp" = ( +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + dir = 4; + name = "Central Access" + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "bPr" = ( /obj/structure/table, /obj/item/stack/cable_coil{ @@ -6793,20 +6915,6 @@ /obj/structure/flora/bush/lavendergrass/style_random, /turf/open/floor/grass, /area/station/security/prison/safe) -"bRc" = ( -/obj/structure/ladder{ - name = "chemistry lab access" - }, -/obj/machinery/door/window/right/directional/east{ - name = "Morgue Access Hatch"; - req_access = list("medical") - }, -/obj/effect/turf_decal/stripes/end{ - dir = 4 - }, -/obj/machinery/light/small/dim/directional/north, -/turf/open/floor/iron/dark/textured_large, -/area/station/medical/morgue) "bRd" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ @@ -6816,6 +6924,15 @@ /obj/effect/mapping_helpers/airlock/access/all/science/robotics, /turf/open/floor/iron, /area/station/science/robotics/mechbay) +"bRe" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/spawner/surgery_tray/full/morgue, +/obj/structure/table/reinforced, +/obj/machinery/requests_console/auto_name/directional/north, +/obj/effect/turf_decal/bot_white, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "bRj" = ( /obj/machinery/light/small/directional/west, /obj/structure/closet/emcloset/anchored, @@ -6875,6 +6992,22 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"bRM" = ( +/obj/machinery/door/airlock/engineering{ + name = "Tech Storage" + }, +/obj/structure/cable, +/obj/effect/landmark/navigate_destination, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/engineering/tech_storage, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/siding/yellow, +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/engineering/storage/tech) "bSi" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/structure/railing/corner{ @@ -6892,10 +7025,6 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/iron/textured, /area/station/security/brig) -"bSm" = ( -/obj/machinery/status_display/ai/directional/south, -/turf/open/floor/iron, -/area/station/cargo/miningdock) "bSo" = ( /obj/structure/chair/wood{ dir = 4 @@ -6959,6 +7088,11 @@ /obj/machinery/light/floor, /turf/open/floor/iron/white, /area/mine/living_quarters) +"bTq" = ( +/obj/machinery/computer/atmos_alert/station_only, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/engineering/engine_smes) "bTx" = ( /obj/machinery/portable_atmospherics/pump, /obj/effect/turf_decal/stripes/line{ @@ -7231,6 +7365,13 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"bWV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "bWZ" = ( /obj/structure/cable, /turf/open/floor/iron/dark, @@ -7489,11 +7630,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"cab" = ( -/obj/effect/spawner/random/trash/food_packaging, -/obj/effect/spawner/random/trash/crushed_can, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "cah" = ( /obj/machinery/status_display/supply{ pixel_x = -32 @@ -7513,6 +7649,23 @@ }, /turf/open/floor/wood/large, /area/station/service/bar/atrium) +"caA" = ( +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/structure/table/glass, +/obj/item/book/manual/hydroponics_pod_people, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/structure/sign/poster/contraband/kudzu/directional/north, +/obj/machinery/light/small/directional/west, +/obj/item/plant_analyzer, +/obj/item/watertank{ + pixel_x = -5; + pixel_y = -3 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "caC" = ( /obj/machinery/door/window/right/directional/west{ name = "Monkey Pen"; @@ -7568,11 +7721,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/security/armory) -"cbA" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/siding/brown, -/turf/open/floor/iron/dark, -/area/station/commons/storage/mining) "cbC" = ( /obj/machinery/meter, /obj/effect/turf_decal/trimline/dark_red/arrow_ccw{ @@ -7753,17 +7901,6 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"cdo" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/effect/turf_decal/tile/brown/half{ - dir = 4 - }, -/turf/open/floor/iron/half{ - dir = 1 - }, -/area/station/commons/storage/mining) "cdp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -7837,14 +7974,6 @@ }, /turf/open/floor/iron, /area/mine/production) -"ceM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/button/flasher{ - id = "GulagCell 3"; - pixel_y = -30 - }, -/turf/open/floor/iron, -/area/mine/laborcamp) "ceO" = ( /obj/machinery/button/crematorium{ id = "crematoriumChapel"; @@ -7856,14 +7985,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, /area/station/service/chapel/office) -"ceQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/structure/minecart_rail/railbreak, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "ceS" = ( /obj/machinery/mech_bay_recharge_port{ dir = 1 @@ -8002,15 +8123,6 @@ }, /turf/open/floor/iron/dark, /area/station/service/hydroponics/garden) -"cgz" = ( -/obj/effect/spawner/random/engineering/tank, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) -"cgB" = ( -/obj/item/fish_tank/lawyer, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/station/service/lawoffice) "cgC" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -8138,6 +8250,15 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"cip" = ( +/obj/machinery/atmospherics/components/tank/air{ + dir = 3; + initialize_directions = 3 + }, +/obj/effect/mapping_helpers/burnt_floor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "ciG" = ( /obj/machinery/door/airlock/external{ name = "Security Yard"; @@ -8210,18 +8331,6 @@ /obj/machinery/light/small/dim/directional/north, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) -"ckd" = ( -/obj/item/clothing/glasses/meson, -/obj/item/storage/bag/ore, -/obj/item/pickaxe, -/obj/item/mining_scanner, -/obj/item/flashlight, -/obj/item/clothing/suit/hooded/wintercoat, -/obj/item/gps/mining, -/obj/structure/rack, -/obj/structure/sign/poster/official/work_for_a_future/directional/north, -/turf/open/floor/iron/textured_large, -/area/station/commons/storage/mining) "cke" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8265,18 +8374,6 @@ dir = 4 }, /area/station/engineering/lobby) -"clg" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/effect/turf_decal/tile/brown/half{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/half{ - dir = 1 - }, -/area/station/commons/storage/mining) "cll" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -8289,11 +8386,6 @@ "clq" = ( /turf/open/floor/iron/dark, /area/station/security/processing) -"cly" = ( -/obj/machinery/computer/station_alert/station_only, -/obj/effect/turf_decal/tile/yellow/half/contrasted, -/turf/open/floor/iron, -/area/station/command/bridge) "clz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -8327,15 +8419,6 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) -"clU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/reagent_containers/cup/bucket{ - pixel_x = -4; - pixel_y = 10 - }, -/obj/machinery/duct, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "clV" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -8510,10 +8593,6 @@ }, /turf/open/floor/iron, /area/station/cargo/office) -"cnV" = ( -/obj/structure/sign/poster/random/directional/west, -/turf/open/floor/plating, -/area/station/construction) "cod" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 1 @@ -8526,10 +8605,6 @@ /obj/structure/closet/crate, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) -"con" = ( -/obj/effect/spawner/random/engineering/atmospherics_portable, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "coT" = ( /obj/structure/table, /obj/item/storage/wallet, @@ -8795,6 +8870,12 @@ "csT" = ( /turf/open/floor/circuit/telecomms/mainframe, /area/station/tcommsat/server) +"ctg" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/unexplored/rivers/deep/shoreline) "ctk" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -8973,13 +9054,6 @@ /obj/structure/railing/corner, /turf/open/floor/iron, /area/station/service/kitchen/coldroom) -"cvp" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/carpet/royalblue, -/area/station/command/heads_quarters/captain) "cvq" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -9008,6 +9082,15 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"cvE" = ( +/obj/structure/marker_beacon/burgundy{ + name = "landing marker" + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "cvF" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, @@ -9070,17 +9153,6 @@ /obj/effect/spawner/structure/window/hollow/reinforced/middle, /turf/open/floor/plating, /area/station/security/courtroom) -"cwt" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external/glass{ - dir = 8; - name = "Supply Door Airlock" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/turf/open/floor/plating, -/area/station/cargo/storage) "cwu" = ( /obj/structure/table/glass, /obj/item/storage/medkit/toxin{ @@ -9110,6 +9182,18 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"cwP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/maintenance/starboard/lesser) +"cwS" = ( +/obj/effect/spawner/random/structure/closet_empty/crate, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "cwT" = ( /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/dirt/dust, @@ -9196,14 +9280,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, /turf/open/floor/iron/white, /area/station/medical/virology) -"cye" = ( -/obj/structure/table, -/obj/item/stock_parts/subspace/amplifier, -/obj/item/stock_parts/subspace/amplifier, -/obj/item/stock_parts/subspace/amplifier, -/obj/structure/sign/warning/secure_area/directional/east, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "cyh" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -9371,20 +9447,6 @@ dir = 8 }, /area/station/command/heads_quarters/rd) -"cAH" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/command/glass{ - dir = 8; - name = "Bridge" - }, -/obj/structure/cable, -/obj/effect/landmark/navigate_destination, -/obj/effect/mapping_helpers/airlock/access/all/command/general, -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/turf/open/floor/iron, -/area/station/command/bridge) "cAI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -9507,20 +9569,26 @@ /obj/structure/flora/tree/pine/style_random, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"cCi" = ( -/obj/structure/stairs/south{ - dir = 2 - }, -/turf/open/floor/iron/stairs/medium{ - dir = 1 - }, -/area/station/commons/storage/mining) "cCu" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/machinery/newscaster/directional/east, /turf/open/floor/iron/white/smooth_large, /area/station/science/genetics) +"cCG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/button/flasher{ + id = "GulagCell 2"; + pixel_y = -30 + }, +/turf/open/floor/iron, +/area/mine/laborcamp) +"cCP" = ( +/obj/structure/closet/crate/miningcar, +/obj/item/shovel, +/obj/item/pickaxe, +/turf/open/floor/iron/textured_large, +/area/station/commons/storage/mining) "cCW" = ( /obj/machinery/conveyor/inverted{ dir = 6; @@ -9610,13 +9678,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/dark/smooth_large, /area/station/security/checkpoint/medical) -"cEc" = ( -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/command/meeting_room) "cEe" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -9649,6 +9710,10 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/medical/surgery/aft) +"cEr" = ( +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/iron, +/area/station/commons/storage/mining) "cEs" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -9961,20 +10026,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/pharmacy) -"cJB" = ( -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Public Mining"; - opacity = 0 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/mining) "cJC" = ( /obj/structure/closet, /obj/effect/spawner/random/maintenance/four, @@ -10015,6 +10066,19 @@ dir = 6 }, /area/station/science/research) +"cKo" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/obj/item/key/janitor, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/service/janitor) "cKq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -10271,13 +10335,14 @@ /turf/open/floor/engine, /area/station/science/xenobiology) "cNK" = ( -/obj/machinery/mining_weather_monitor/directional/west, -/obj/effect/turf_decal/tile/brown{ +/obj/effect/spawner/random/entertainment/arcade{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/commons/storage/mining) +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain) "cNL" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -10316,6 +10381,12 @@ /obj/effect/turf_decal/tile/red/half, /turf/open/floor/iron/smooth_half, /area/station/security/brig/upper) +"cOv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/mining) "cOy" = ( /obj/machinery/smartfridge, /obj/machinery/door/window/right/directional/south{ @@ -10354,6 +10425,18 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) +"cPi" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown/half{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/half{ + dir = 1 + }, +/area/station/commons/storage/mining) "cPp" = ( /obj/item/stack/cable_coil{ amount = 5 @@ -10387,6 +10470,11 @@ }, /turf/open/floor/iron, /area/station/security/prison/workout) +"cPV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/captain) "cQc" = ( /obj/structure/table/wood, /obj/item/reagent_containers/cup/rag, @@ -10470,12 +10558,6 @@ dir = 8 }, /area/station/ai_monitored/command/storage/eva) -"cQJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/station/engineering/storage/tech) "cQL" = ( /obj/machinery/porta_turret/ai{ dir = 4 @@ -10598,35 +10680,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"cSS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/status_display/door_timer{ - id = "Cell 3"; - name = "Cell 3"; - pixel_x = -32 - }, -/turf/open/floor/iron/textured, -/area/station/security/brig) -"cSX" = ( -/obj/machinery/door/firedoor{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) "cTh" = ( /obj/structure/table/wood, /obj/item/paper_bin, @@ -10686,14 +10739,16 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"cUs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/closet_empty/crate, +/obj/effect/spawner/random/maintenance/no_decals/two, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "cUB" = ( /obj/structure/window/spawner/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"cUK" = ( -/obj/structure/sign/poster/official/walk/directional/west, -/turf/open/floor/iron, -/area/station/service/janitor) "cUS" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/effect/turf_decal/trimline/blue/filled/warning, @@ -10739,22 +10794,6 @@ dir = 8 }, /area/station/security/brig) -"cVZ" = ( -/obj/item/radio/intercom/directional/east, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/rack, -/obj/machinery/status_display/evac/directional/south, -/obj/item/clothing/gloves/color/yellow, -/obj/item/crowbar/large, -/obj/item/multitool, -/obj/effect/turf_decal/tile/dark_blue/full, -/obj/effect/turf_decal/siding/dark{ - dir = 9 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/engineering/storage/tech) "cWq" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/turf_decal/tile/green/half/contrasted{ @@ -10772,6 +10811,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/processing) +"cWH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/kirbyplants/organic/plant5, +/obj/machinery/camera/directional/west{ + c_tag = "Labor Camp Cellblock"; + network = list("labor") + }, +/obj/machinery/button/flasher{ + id = "GulagCell 1"; + pixel_y = -30 + }, +/turf/open/floor/iron, +/area/mine/laborcamp) "cWX" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -10850,16 +10902,6 @@ /obj/machinery/newscaster/directional/north, /turf/open/floor/iron/grimy, /area/station/security/detectives_office) -"cYb" = ( -/obj/structure/table, -/obj/effect/turf_decal/siding/brown{ - dir = 4 - }, -/obj/item/climbing_hook/emergency{ - pixel_y = 12 - }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/mining) "cYi" = ( /obj/effect/turf_decal/trimline/dark_red/line, /obj/effect/turf_decal/trimline/dark_red/line{ @@ -10896,13 +10938,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"cYr" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/effect/spawner/random/structure/crate_abandoned, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "cYv" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/window/reinforced/spawner/directional/east, @@ -10934,12 +10969,6 @@ /obj/structure/ore_box, /turf/open/floor/iron/dark, /area/mine/eva) -"cYP" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/miningdock) "cYT" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance/departmental, @@ -11024,6 +11053,11 @@ "cZD" = ( /turf/open/floor/iron/checker, /area/station/maintenance/port/fore) +"cZJ" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/commons/storage/mining) "cZN" = ( /obj/structure/table/wood, /obj/item/soap/nanotrasen, @@ -11052,15 +11086,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/science/robotics/mechbay) -"cZX" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "dad" = ( /obj/effect/turf_decal/siding/thinplating/dark/corner{ dir = 1 @@ -11085,10 +11110,6 @@ /obj/structure/table, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) -"dah" = ( -/obj/effect/turf_decal/siding/brown, -/turf/open/floor/iron/dark, -/area/station/commons/storage/mining) "dak" = ( /obj/item/clothing/suit/apron/surgical, /obj/effect/mapping_helpers/broken_floor, @@ -11346,12 +11367,6 @@ dir = 4 }, /area/station/hallway/secondary/entry) -"ddf" = ( -/obj/machinery/keycard_auth/wall_mounted/directional/south, -/obj/machinery/newscaster/directional/west, -/obj/machinery/suit_storage_unit/captain, -/turf/open/floor/wood, -/area/station/command/heads_quarters/captain) "ddh" = ( /obj/structure/chair/stool/directional/north, /obj/effect/landmark/start/assistant, @@ -11517,16 +11532,6 @@ }, /turf/open/floor/glass/reinforced, /area/station/science/xenobiology) -"dfm" = ( -/obj/structure/table, -/obj/item/stock_parts/subspace/ansible, -/obj/item/stock_parts/subspace/ansible, -/obj/item/stock_parts/subspace/ansible, -/obj/item/stock_parts/subspace/crystal, -/obj/item/stock_parts/subspace/crystal, -/obj/item/stock_parts/subspace/crystal, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "dfq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /turf/closed/wall/r_wall, @@ -11555,6 +11560,14 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) +"dfR" = ( +/obj/item/toy/snowball{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/toy/snowball, +/turf/open/misc/asteroid/snow/coldroom, +/area/icemoon/underground/explored) "dga" = ( /obj/effect/turf_decal/loading_area{ dir = 4 @@ -11606,23 +11619,13 @@ /obj/structure/sign/poster/random/directional/north, /turf/open/floor/iron/dark, /area/station/service/chapel) -"dgK" = ( -/obj/machinery/door/firedoor{ - dir = 4 - }, -/obj/machinery/door/airlock/public/glass{ - dir = 8; - name = "Escape" - }, -/obj/effect/turf_decal/stripes/white/line{ +"dgQ" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/siding/dark_blue/inner_corner{ dir = 4 }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/secondary/exit/departure_lounge) +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "dgR" = ( /obj/machinery/smartfridge, /turf/open/floor/iron/dark, @@ -11806,6 +11809,14 @@ dir = 1 }, /area/mine/living_quarters) +"djh" = ( +/obj/machinery/computer/security/telescreen/entertainment/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/captain) "djr" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -12164,6 +12175,12 @@ /obj/effect/mapping_helpers/airlock/access/any/engineering/external, /turf/open/floor/plating, /area/station/maintenance/fore) +"doy" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/icemoon, +/area/station/science/ordnance/bomb/planet) "doG" = ( /obj/structure/rack, /obj/machinery/light/small/directional/north, @@ -12218,14 +12235,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/command/storage/eva) -"dpg" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/station/commons/storage/mining) "dpl" = ( /obj/machinery/light/directional/south, /obj/effect/spawner/random/vending/colavend, @@ -12276,14 +12285,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"dqp" = ( -/obj/structure/sign/nanotrasen{ - pixel_y = 32 - }, -/obj/structure/marker_beacon/jade, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) "dqw" = ( /obj/machinery/holopad, /turf/open/floor/iron, @@ -12390,6 +12391,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/dorms) +"drw" = ( +/obj/structure/closet/toolcloset, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/iron, +/area/station/construction) "dry" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -12487,11 +12494,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"dsv" = ( -/obj/effect/spawner/random/structure/closet_empty/crate, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) +"dsO" = ( +/turf/closed/wall, +/area/station/service/kitchen/coldroom) "dsR" = ( /obj/machinery/conveyor/inverted{ dir = 10; @@ -12650,6 +12655,16 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"dvA" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/meeting_room) "dvK" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 4 @@ -12857,6 +12872,12 @@ /obj/structure/chair/stool/directional/west, /turf/open/floor/plating, /area/station/maintenance/fore) +"dyB" = ( +/obj/machinery/airalarm/directional/south, +/obj/effect/spawner/random/vending/snackvend, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) "dyE" = ( /obj/structure/chair/pew/right{ dir = 1 @@ -12914,6 +12935,11 @@ /obj/structure/closet/firecloset, /turf/open/floor/iron/dark, /area/mine/eva/lower) +"dzO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/commons/storage/mining) "dzZ" = ( /obj/structure/fence/cut/medium{ dir = 4 @@ -12989,6 +13015,23 @@ }, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"dAQ" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/modular_computer/preset/civilian, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/machinery/light_switch/directional/north{ + pixel_x = -6 + }, +/obj/machinery/button/door/directional/north{ + id = "stationawaygate"; + name = "Gateway Access Shutter Control"; + pixel_x = 6; + req_access = list("gateway") + }, +/turf/open/floor/iron/dark, +/area/station/command/gateway) "dAZ" = ( /turf/closed/wall/r_wall, /area/station/security/prison/visit) @@ -13004,12 +13047,6 @@ /obj/machinery/telecomms/server/presets/medical, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) -"dBi" = ( -/obj/item/radio/intercom/directional/south, -/obj/effect/spawner/random/vending/colavend, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/central) "dBp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -13026,16 +13063,6 @@ /obj/structure/sign/poster/official/help_others/directional/west, /turf/open/floor/iron/checker, /area/station/commons/storage/emergency/port) -"dBI" = ( -/obj/machinery/door/airlock/engineering{ - name = "Utilities Room" - }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, -/obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "dBJ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -13062,24 +13089,6 @@ /obj/effect/mapping_helpers/requests_console/supplies, /turf/open/floor/iron, /area/station/service/bar) -"dBP" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/command/glass{ - dir = 4; - name = "Bridge" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/command/general, -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/turf/open/floor/iron, -/area/station/command/bridge) "dBQ" = ( /obj/machinery/camera/directional/north{ c_tag = "MiniSat AI Chamber South"; @@ -13112,12 +13121,11 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/commons/fitness) -"dCS" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/plating, +"dCR" = ( +/obj/structure/rack, +/obj/effect/spawner/random/techstorage/tcomms_all, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/large, /area/station/engineering/storage/tech) "dDm" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on{ @@ -13367,6 +13375,15 @@ /obj/effect/turf_decal/tile/red/full, /turf/open/floor/iron/dark/smooth_large, /area/station/security/checkpoint/medical) +"dGu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/engineering/storage/tech) "dGK" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -13446,24 +13463,20 @@ /obj/item/wrench, /turf/open/floor/plating, /area/station/medical/virology) -"dHo" = ( -/obj/item/trapdoor_remote/preloaded{ - name = "corpse trapdoor remote"; - pixel_y = 17 - }, -/obj/structure/rack{ - pixel_x = -1; - pixel_y = 12 - }, -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/effect/turf_decal/caution/red{ - pixel_y = -14 - }, -/obj/structure/noticeboard/cmo{ - pixel_y = 36 +"dHs" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/side{ + dir = 4 }, -/turf/open/floor/iron/white/textured, -/area/station/medical/medbay/central) +/area/station/engineering/storage/tech) +"dHu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sign/poster/ripped/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "dHw" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -13511,6 +13524,13 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"dJd" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "dJx" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -13568,14 +13588,6 @@ /obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/iron, /area/mine/living_quarters) -"dKl" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/light_construct/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "dKy" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -13738,10 +13750,6 @@ /obj/item/clothing/under/color/rainbow, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"dMG" = ( -/obj/structure/sign/warning/secure_area/directional/north, -/turf/open/openspace, -/area/station/engineering/storage/tech) "dMH" = ( /obj/machinery/light/directional/north, /obj/machinery/status_display/evac/directional/north, @@ -13810,10 +13818,12 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) -"dNQ" = ( -/obj/structure/railing{ - dir = 4 - }, +"dOa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/girder, +/obj/effect/spawner/structure/electrified_grille, /turf/open/floor/plating, /area/station/maintenance/port/aft) "dOp" = ( @@ -13830,17 +13840,23 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/sorting) -"dOA" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/storage/tech) "dOC" = ( /obj/structure/closet/wardrobe/mixed, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"dOF" = ( +/obj/machinery/door/poddoor/preopen{ + dir = 4; + id = "bridge blast"; + name = "Bridge Blast Door" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/command/bridge) "dOH" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /turf/open/floor/plating, @@ -13865,6 +13881,12 @@ /obj/effect/turf_decal/tile/dark_blue/diagonal_edge, /turf/open/floor/iron/dark/diagonal, /area/station/engineering/atmos/storage) +"dPq" = ( +/obj/structure/rack, +/obj/effect/spawner/random/techstorage/rnd_all, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/large, +/area/station/engineering/storage/tech) "dPy" = ( /obj/machinery/camera/directional/west{ c_tag = "Xenobiology Kill Chamber"; @@ -13875,6 +13897,11 @@ }, /turf/open/floor/iron/freezer, /area/station/science/xenobiology) +"dPG" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "dPH" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/machinery/camera/directional/north{ @@ -13966,19 +13993,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/mine/laborcamp) -"dRq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/kirbyplants/organic/plant5, -/obj/machinery/camera/directional/west{ - c_tag = "Labor Camp Cellblock"; - network = list("labor") - }, -/obj/machinery/button/flasher{ - id = "GulagCell 1"; - pixel_y = -30 - }, -/turf/open/floor/iron, -/area/mine/laborcamp) "dRz" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -14009,12 +14023,6 @@ dir = 1 }, /area/station/command/gateway) -"dRU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/icemoon, -/area/station/science/ordnance/bomb/planet) "dRX" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -14041,22 +14049,6 @@ }, /turf/open/floor/iron/white, /area/station/security/prison/safe) -"dSn" = ( -/obj/structure/table, -/obj/item/petri_dish{ - pixel_x = -5; - pixel_y = 15 - }, -/obj/item/petri_dish{ - pixel_x = 6; - pixel_y = 10 - }, -/obj/item/petri_dish{ - pixel_x = -1; - pixel_y = -6 - }, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "dSJ" = ( /obj/machinery/flasher/directional/north{ id = "visitorflash" @@ -14070,12 +14062,6 @@ }, /turf/open/floor/iron, /area/station/security/prison/visit) -"dSL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) "dSO" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -14145,15 +14131,6 @@ }, /turf/open/floor/iron, /area/mine/production) -"dTH" = ( -/obj/structure/marker_beacon/burgundy{ - name = "landing marker" - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) "dTI" = ( /obj/structure/railing{ dir = 4 @@ -14247,6 +14224,12 @@ "dUO" = ( /turf/closed/wall, /area/station/security/brig) +"dUP" = ( +/obj/item/kirbyplants/photosynthetic, +/obj/effect/turf_decal/box/white, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/storage/tech) "dUR" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/sign/poster/random/directional/north, @@ -14282,21 +14265,6 @@ /obj/structure/chair/stool/directional/west, /turf/open/floor/iron/checker, /area/station/science/lab) -"dVy" = ( -/obj/structure/rack, -/obj/item/electronics/airalarm, -/obj/item/electronics/airalarm, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/electronics/apc, -/obj/item/electronics/apc, -/obj/item/electronics/firealarm, -/obj/item/electronics/firealarm, -/obj/item/electronics/firelock, -/obj/item/electronics/firelock, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/large, -/area/station/engineering/storage/tech) "dVF" = ( /obj/structure/sign/warning/secure_area/directional/north, /obj/effect/turf_decal/tile/blue/half/contrasted{ @@ -14475,9 +14443,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"dYo" = ( -/turf/open/lava/plasma/ice_moon, -/area/icemoon/underground/unexplored/rivers/deep/shoreline) "dYr" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, @@ -14719,11 +14684,6 @@ /obj/structure/sign/departments/medbay/alt/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/central) -"ebJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/commons/storage/mining) "ebL" = ( /obj/effect/turf_decal/bot_white/right, /obj/structure/closet/crate/goldcrate, @@ -14803,6 +14763,23 @@ /obj/effect/mapping_helpers/airlock/unres, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"ede" = ( +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/machinery/door/airlock/public/glass{ + dir = 4; + name = "Central Access" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "edn" = ( /obj/effect/turf_decal/bot_white/right, /obj/machinery/ore_silo, @@ -14851,11 +14828,6 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"ees" = ( -/obj/structure/kitchenspike, -/obj/machinery/status_display/evac/directional/west, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "eeD" = ( /obj/machinery/light/directional/west, /turf/open/floor/iron/dark/textured, @@ -14865,11 +14837,13 @@ /obj/effect/decal/cleanable/blood/old, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"eeJ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +"eeR" = ( +/obj/structure/stairs/south{ + dir = 2 + }, +/turf/open/floor/iron/stairs/medium{ dir = 1 }, -/turf/open/floor/iron/smooth, /area/station/commons/storage/mining) "eeT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14881,6 +14855,13 @@ /obj/effect/mapping_helpers/mail_sorting/engineering/atmospherics, /turf/open/floor/iron, /area/station/engineering/lobby) +"efa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "eff" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/stripes/white/line{ @@ -15139,23 +15120,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/security/prison/rec) -"eia" = ( -/obj/machinery/door/firedoor{ - dir = 4 - }, -/obj/machinery/door/airlock/public/glass{ - dir = 4; - name = "Escape" - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/secondary/exit/departure_lounge) "eic" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -15229,6 +15193,26 @@ /obj/effect/mapping_helpers/airlock/access/any/security/brig, /turf/open/floor/iron, /area/station/security/prison/visit) +"eje" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/pen{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/folder/white{ + pixel_x = 2 + }, +/obj/machinery/firealarm/directional/south, +/obj/item/radio/headset/headset_medsci{ + pixel_x = 16; + pixel_y = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/genetics) "ejn" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -15274,6 +15258,12 @@ }, /turf/open/floor/plating, /area/station/engineering/lobby) +"ejT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/captain) "ejX" = ( /turf/open/floor/plating, /area/station/security/prison/safe) @@ -15373,6 +15363,14 @@ dir = 1 }, /area/station/hallway/primary/starboard) +"emv" = ( +/obj/machinery/door/window/right/directional/north{ + name = "Public Mining" + }, +/turf/open/floor/iron/stairs/medium{ + dir = 1 + }, +/area/station/commons/storage/mining) "emx" = ( /obj/structure/closet/secure_closet/freezer/kitchen/maintenance, /obj/effect/decal/cleanable/cobweb, @@ -15471,14 +15469,6 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/lesser) -"eoC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/sign/clock/directional/east, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) "eoD" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ @@ -15513,6 +15503,16 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) +"eoS" = ( +/obj/machinery/door/morgue{ + dir = 4; + name = "Confession Booth" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/station/service/chapel) "eoY" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -15708,6 +15708,15 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/maintenance/disposal) +"ery" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/siding/dark_blue/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "erA" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light_switch/directional/east, @@ -15753,6 +15762,19 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/cargo/storage) +"erO" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/middle{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/storage/tech) +"erR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/icemoon, +/area/station/science/ordnance/bomb/planet) "erV" = ( /obj/structure/railing/corner/end/flip{ dir = 8 @@ -15815,16 +15837,6 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/security/processing) -"esY" = ( -/obj/structure/table, -/obj/item/reagent_containers/cup/glass/coffee{ - pixel_y = 11; - pixel_x = -5 - }, -/obj/structure/sign/poster/contraband/random/directional/west, -/obj/item/binoculars, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "eta" = ( /obj/machinery/camera/directional/west{ c_tag = "Central Hallway East" @@ -15845,6 +15857,19 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/dark, /area/station/commons/lounge) +"etp" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/mining_weather_monitor/directional/west, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/storage/mining) "etv" = ( /obj/machinery/chem_heater/withbuffer, /obj/effect/turf_decal/tile/yellow/full, @@ -16113,13 +16138,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security/prison/work) -"exQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced/tinted, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "eyb" = ( /turf/closed/wall, /area/station/security/processing) @@ -16173,21 +16191,6 @@ /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, /area/station/maintenance/fore) -"eyE" = ( -/obj/structure/table, -/obj/item/paper/crumpled{ - pixel_y = 3; - pixel_x = 2 - }, -/obj/item/paper/crumpled{ - pixel_x = -5 - }, -/obj/item/paper/crumpled{ - pixel_x = 3; - pixel_y = 0 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "eyP" = ( /turf/open/misc/ice/coldroom, /area/station/service/kitchen/coldroom) @@ -16312,14 +16315,6 @@ /obj/item/storage/box/lights/tubes, /turf/open/floor/iron/checker, /area/station/commons/storage/emergency/port) -"eAT" = ( -/obj/machinery/light/directional/west, -/obj/structure/filingcabinet, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/captain) "eAW" = ( /obj/structure/lattice/catwalk, /obj/structure/sign/warning/directional/north, @@ -16342,6 +16337,12 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"eBh" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/grille, +/turf/open/floor/plating, +/area/station/commons/storage/mining) "eBz" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -16369,10 +16370,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, /turf/closed/wall/r_wall, /area/station/security/checkpoint/engineering) -"eBZ" = ( -/obj/effect/spawner/random/trash/bin, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "eCg" = ( /obj/structure/tank_holder/oxygen, /obj/effect/decal/cleanable/wrapping, @@ -16491,12 +16488,6 @@ /obj/machinery/duct, /turf/open/floor/wood, /area/station/hallway/secondary/service) -"eDu" = ( -/obj/structure/ore_box, -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/bot_red, -/turf/open/floor/iron/dark, -/area/station/commons/storage/mining) "eDC" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ @@ -16504,23 +16495,6 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"eDD" = ( -/obj/machinery/door/firedoor{ - dir = 4 - }, -/obj/machinery/door/airlock/public/glass{ - dir = 4; - name = "Central Access" - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) "eDH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -16555,25 +16529,17 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/smooth_large, /area/station/command/heads_quarters/hos) -"eDV" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/central) "eEO" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"eET" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 +"eEQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/turf/open/floor/iron/large, -/area/station/engineering/storage/tech) +/turf/open/floor/plating/icemoon, +/area/station/science/ordnance/bomb/planet) "eEY" = ( /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, @@ -16779,17 +16745,6 @@ /obj/machinery/shower/directional/north, /turf/open/floor/iron/smooth, /area/mine/eva) -"eHu" = ( -/obj/machinery/chem_master{ - name = "CytoMaster 5000" - }, -/obj/item/swab{ - pixel_x = -2; - pixel_y = 10 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "eHC" = ( /obj/structure/marker_beacon/burgundy, /obj/effect/turf_decal/weather/snow/corner{ @@ -16976,23 +16931,6 @@ /obj/machinery/destructive_scanner, /turf/open/floor/iron/textured_large, /area/station/hallway/primary/starboard) -"eKt" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder{ - pixel_x = -1; - pixel_y = 8 - }, -/obj/item/reagent_containers/syringe{ - pixel_x = -5; - pixel_y = -8 - }, -/obj/item/reagent_containers/cup/beaker{ - pixel_x = 9; - pixel_y = -6 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "eKI" = ( /obj/effect/turf_decal/tile/blue, /obj/structure/sign/departments/medbay/alt/directional/south, @@ -17083,6 +17021,11 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/storage) +"eMf" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/iron, +/area/station/service/janitor) "eMn" = ( /obj/machinery/light/small/directional/north, /obj/structure/sign/warning/secure_area/directional/north{ @@ -17269,6 +17212,17 @@ }, /turf/open/floor/iron/cafeteria, /area/station/commons/dorms/laundry) +"ePq" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/sign/flag/terragov/directional/north, +/obj/structure/weightmachine/weightlifter, +/turf/open/floor/iron, +/area/station/commons/fitness) "ePr" = ( /turf/open/floor/carpet/royalblue, /area/station/command/heads_quarters/hos) @@ -17360,11 +17314,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/nuke_storage) -"eRm" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "eRp" = ( /obj/structure/bed{ dir = 1; @@ -17409,12 +17358,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/showroomfloor, /area/station/security/warden) -"eRX" = ( -/obj/structure/sign/nanotrasen{ - pixel_x = -32 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "eRZ" = ( /obj/structure/table, /obj/item/papercutter{ @@ -17511,13 +17454,6 @@ /obj/machinery/telecomms/broadcaster/preset_left, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) -"eTs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "eTv" = ( /obj/machinery/door/airlock/security{ name = "Permanent Cell 1" @@ -17916,6 +17852,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"eYs" = ( +/obj/structure/table, +/obj/item/stock_parts/subspace/filter, +/obj/item/stock_parts/subspace/filter, +/obj/item/stock_parts/subspace/filter, +/obj/item/stock_parts/subspace/filter, +/obj/item/stock_parts/subspace/filter, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "eYx" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/plating, @@ -17991,17 +17936,6 @@ /obj/structure/table/wood, /turf/open/floor/carpet, /area/station/command/meeting_room) -"eYU" = ( -/obj/machinery/door/airlock/engineering{ - name = "Utilities Room" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/unres, -/obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/commons/storage/mining) "eYX" = ( /obj/effect/turf_decal/trimline/green/filled/corner{ dir = 1 @@ -18269,6 +18203,13 @@ }, /turf/open/floor/engine/n2o, /area/station/engineering/atmos) +"fcR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/directional/north, +/obj/structure/closet/crate, +/obj/effect/spawner/random/structure/furniture_parts, +/turf/open/floor/plating, +/area/station/construction) "fcY" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -18292,6 +18233,23 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"fdj" = ( +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + dir = 4; + name = "Escape" + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/secondary/exit/departure_lounge) "fdm" = ( /obj/structure/falsewall, /turf/open/floor/iron, @@ -18423,15 +18381,6 @@ /obj/machinery/smartfridge/chemistry/virology/preloaded, /turf/open/floor/iron/white, /area/station/medical/virology) -"ffR" = ( -/obj/structure/sign/nanotrasen{ - pixel_x = -32 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/commons/storage/mining) "ffZ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -18453,6 +18402,10 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"fgq" = ( +/obj/structure/cable, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/captain) "fgs" = ( /obj/effect/spawner/random/trash/grille_or_waste, /turf/open/floor/plating, @@ -18465,13 +18418,6 @@ }, /turf/open/floor/iron, /area/station/science/ordnance) -"fgA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "fgJ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -18646,14 +18592,6 @@ }, /turf/open/floor/iron, /area/station/service/janitor) -"fiP" = ( -/obj/effect/spawner/random/trash/moisture_trap, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/commons/storage/mining) "fiS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -18675,12 +18613,6 @@ /obj/machinery/ntnet_relay, /turf/open/floor/circuit/telecomms/mainframe, /area/station/tcommsat/server) -"fja" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "fjg" = ( /obj/machinery/shower/directional/west, /obj/effect/turf_decal/trimline/blue, @@ -18765,13 +18697,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/kitchen/diagonal, /area/station/service/kitchen) -"fkn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "fkt" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating/icemoon, @@ -18814,6 +18739,12 @@ dir = 1 }, /area/station/engineering/atmos/storage/gas) +"fkS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/icemoon, +/area/station/science/ordnance/bomb/planet) "fkV" = ( /obj/machinery/door/airlock/maintenance{ name = "Permabrig Maintenance" @@ -18932,6 +18863,16 @@ /obj/machinery/plumbing/sender, /turf/open/floor/plating, /area/station/medical/chemistry) +"fmw" = ( +/obj/structure/cable, +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "fmA" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/dark_blue/line{ @@ -18946,6 +18887,15 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"fnd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 8 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "fng" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19142,6 +19092,14 @@ dir = 8 }, /area/station/medical/chem_storage) +"frc" = ( +/obj/structure/cable/multilayer/multiz, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "frd" = ( /obj/structure/railing/corner{ dir = 1 @@ -19197,15 +19155,6 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos/storage/gas) -"frF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/maintenance/starboard/lesser) "frN" = ( /obj/machinery/power/shieldwallgen, /obj/structure/window/reinforced/spawner/directional/west, @@ -19449,6 +19398,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, /turf/open/floor/iron/dark/textured, /area/station/maintenance/disposal/incinerator) +"fwf" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/engineering/storage/tech) "fwh" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -19565,13 +19521,6 @@ /obj/effect/turf_decal/tile/red/anticorner/contrasted, /turf/open/floor/iron, /area/station/security/checkpoint/supply) -"fxu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/commons/storage/mining) "fxR" = ( /obj/machinery/telecomms/hub/preset, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -19622,6 +19571,15 @@ "fyI" = ( /turf/closed/wall/mineral/wood/nonmetal, /area/icemoon/underground/explored) +"fyK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/siding/dark_blue{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) "fyQ" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/meter, @@ -19647,6 +19605,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"fzg" = ( +/obj/effect/spawner/random/structure/closet_empty/crate, +/obj/effect/spawner/random/maintenance/no_decals/two, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "fzo" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -19785,6 +19748,22 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"fBy" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/firealarm/directional/east, +/obj/structure/closet/l3closet/virology, +/obj/machinery/camera/directional/north{ + c_tag = "Virology Airlock"; + network = list("ss13","medbay") + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/virology) "fBF" = ( /obj/effect/landmark/start/hangover, /obj/structure/disposalpipe/segment, @@ -20008,6 +19987,18 @@ }, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) +"fFv" = ( +/obj/item/clothing/glasses/meson, +/obj/item/storage/bag/ore, +/obj/item/pickaxe, +/obj/item/mining_scanner, +/obj/item/flashlight, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/gps/mining, +/obj/structure/rack, +/obj/structure/sign/poster/official/safety_internals/directional/south, +/turf/open/floor/iron/textured_large, +/area/station/commons/storage/mining) "fFx" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -20036,9 +20027,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark, /area/station/science/ordnance/office) -"fGm" = ( -/turf/open/openspace, -/area/station/engineering/storage/tech) "fGn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -20061,11 +20049,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/security/prison/workout) -"fGL" = ( -/obj/machinery/vending/cigarette, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/central) "fGM" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -20101,6 +20084,11 @@ /obj/effect/turf_decal/tile/green, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) +"fHv" = ( +/obj/effect/spawner/random/structure/tank_holder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/station/maintenance/port/aft) "fHK" = ( /obj/machinery/holopad, /turf/open/floor/carpet, @@ -20185,10 +20173,27 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"fIQ" = ( -/obj/structure/railing/corner, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) +"fIX" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/rack, +/obj/item/aicard, +/obj/item/ai_module/reset, +/obj/machinery/status_display/ai/directional/south, +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/tile/dark_blue/full, +/obj/effect/turf_decal/siding/dark{ + dir = 5 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/storage/tech) +"fJd" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "fJe" = ( /obj/machinery/door/airlock/external{ name = "Atmospherics External Airlock" @@ -20281,21 +20286,6 @@ /obj/machinery/iv_drip, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"fKq" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "chem-morgue-airlock" - }, -/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, -/obj/effect/mapping_helpers/airlock/access/any/engineering/external, -/obj/machinery/door/airlock/external{ - dir = 8; - name = "Lower Medical External Access" - }, -/turf/open/floor/plating, -/area/station/medical/morgue) "fKr" = ( /obj/machinery/airalarm/directional/north, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -20465,15 +20455,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/surgery/fore) -"fLR" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, -/obj/structure/marker_beacon/burgundy{ - name = "landing marker" - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) "fLS" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -20520,6 +20501,15 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/dark/textured, /area/station/engineering/engine_smes) +"fMC" = ( +/obj/structure/table/wood/poker, +/obj/effect/spawner/random/entertainment/dice{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/effect/spawner/random/entertainment/money_small, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "fME" = ( /obj/structure/extinguisher_cabinet/directional/south, /obj/effect/turf_decal/tile/blue{ @@ -20583,16 +20573,6 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/engineering/supermatter) -"fNY" = ( -/obj/machinery/vending/cigarette, -/obj/structure/sign/nanotrasen{ - pixel_x = -32 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/captain) "fNZ" = ( /obj/structure/table/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -20642,13 +20622,6 @@ dir = 9 }, /area/station/science/lab) -"fOS" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "fOU" = ( /obj/machinery/atmospherics/components/unary/passive_vent{ dir = 1 @@ -20709,17 +20682,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) -"fPW" = ( -/obj/structure/table/wood, -/obj/machinery/fax{ - fax_name = "Captain's Office"; - name = "Captain's Fax Machine" - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/captain) "fPX" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -20752,15 +20714,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"fQe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera/directional/south{ - c_tag = "Service - Electrical Maintenace Lower" - }, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/maintenance/starboard/lesser) "fQk" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair/stool/directional/east, @@ -20788,10 +20741,6 @@ dir = 1 }, /area/station/security/prison) -"fQM" = ( -/obj/effect/spawner/random/structure/shipping_container, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "fRb" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, @@ -20812,13 +20761,6 @@ /obj/structure/sign/clock/directional/north, /turf/open/floor/iron, /area/station/commons/fitness) -"fRr" = ( -/obj/item/target/alien/anchored, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/icemoon, -/area/station/science/ordnance/bomb/planet) "fRv" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/engine, @@ -20832,15 +20774,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, /turf/open/floor/iron/dark, /area/station/medical/virology) -"fRF" = ( -/obj/structure/table/wood, -/obj/structure/secure_safe/directional/east, -/obj/machinery/light/directional/east, -/obj/effect/turf_decal/siding/wood{ - dir = 8 +"fRN" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/captain) +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) +"fRP" = ( +/obj/item/target, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/icemoon, +/area/station/science/ordnance/bomb/planet) "fSi" = ( /obj/structure/cable/multilayer/multiz, /obj/effect/turf_decal/stripes/line{ @@ -21016,12 +20963,6 @@ /obj/structure/closet/emcloset, /turf/open/floor/iron, /area/station/hallway/primary/port) -"fUA" = ( -/obj/structure/rack, -/obj/effect/spawner/random/techstorage/tcomms_all, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/large, -/area/station/engineering/storage/tech) "fUL" = ( /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 8 @@ -21041,17 +20982,6 @@ "fUR" = ( /turf/closed/wall, /area/station/hallway/secondary/entry) -"fUV" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external/glass{ - dir = 4; - name = "Supply Door Airlock" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/turf/open/floor/plating, -/area/station/cargo/storage) "fUW" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -21177,6 +21107,15 @@ /obj/structure/railing/corner, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"fWC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "fWL" = ( /obj/structure/table, /obj/item/paper_bin{ @@ -21226,6 +21165,13 @@ }, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain) +"fXq" = ( +/obj/item/clothing/head/cone{ + pixel_x = 3 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "fXr" = ( /turf/open/floor/iron/white/corner{ dir = 8 @@ -21344,6 +21290,14 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/engineering/atmos/storage) +"fZf" = ( +/obj/machinery/mining_weather_monitor/directional/west, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/commons/storage/mining) "fZg" = ( /obj/machinery/computer/teleporter{ dir = 1 @@ -21369,6 +21323,15 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"fZH" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck{ + pixel_x = 6; + pixel_y = 13 + }, +/obj/effect/spawner/random/entertainment/cigarette, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "fZK" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/siding/wood/corner{ @@ -21483,12 +21446,6 @@ /obj/machinery/light/small/directional/west, /turf/open/misc/asteroid/snow/standard_air, /area/station/science/cytology) -"gaK" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "gaS" = ( /obj/item/hot_potato/harmless/toy, /obj/structure/table/wood, @@ -21774,12 +21731,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"geY" = ( -/obj/structure/sign/nanotrasen{ - pixel_x = 32 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) "geZ" = ( /obj/structure/sink/directional/south, /obj/effect/turf_decal/siding/wood{ @@ -21834,6 +21785,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/cafeteria, /area/station/commons/storage/art) +"gfP" = ( +/obj/structure/minecart_rail{ + dir = 1 + }, +/obj/item/radio/intercom/directional/west{ + frequency = 1453; + name = "Kitchen Intercom" + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "gga" = ( /obj/machinery/light/small/directional/west, /obj/effect/spawner/random/trash/hobo_squat, @@ -21856,6 +21820,13 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"ggr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "ggz" = ( /obj/effect/turf_decal/tile/green/opposingcorners{ dir = 1 @@ -21877,12 +21848,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/engineering/storage_shared) -"ggJ" = ( -/obj/structure/ladder, -/obj/machinery/light/small/dim/directional/east, -/obj/effect/turf_decal/stripes/box, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/mining) "ggR" = ( /obj/machinery/computer/teleporter{ dir = 8 @@ -21897,12 +21862,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/plating, /area/mine/laborcamp) -"ggY" = ( -/obj/structure/rack, -/obj/effect/spawner/random/techstorage/rnd_all, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/large, -/area/station/engineering/storage/tech) "ghb" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral{ @@ -21967,15 +21926,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"gie" = ( -/obj/structure/table/wood/poker, -/obj/effect/spawner/random/entertainment/dice{ - pixel_x = -4; - pixel_y = 5 - }, -/obj/effect/spawner/random/entertainment/money_small, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "gif" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -22082,6 +22032,25 @@ /obj/item/clothing/gloves/cargo_gauntlet, /turf/open/floor/iron, /area/station/cargo/storage) +"gjQ" = ( +/obj/structure/table/wood, +/obj/machinery/camera/directional/east{ + c_tag = "Captain's Office" + }, +/obj/item/storage/lockbox/medal{ + pixel_y = 8 + }, +/obj/item/pinpointer/nuke{ + pixel_y = -9 + }, +/obj/item/disk/nuclear{ + pixel_y = -8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain) "gjS" = ( /obj/structure/chair{ dir = 8; @@ -22090,16 +22059,6 @@ /obj/machinery/newscaster/directional/east, /turf/open/floor/wood, /area/station/security/courtroom) -"gjU" = ( -/obj/structure/table, -/obj/effect/turf_decal/siding/brown{ - dir = 4 - }, -/obj/item/flashlight/lantern{ - pixel_y = -3 - }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/mining) "gjW" = ( /obj/structure/chair, /turf/open/floor/iron/cafeteria, @@ -22164,40 +22123,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"gkR" = ( -/obj/structure/table, -/obj/machinery/button/flasher{ - id = "brigentry"; - pixel_x = -6; - pixel_y = -1 - }, -/obj/machinery/button/door{ - id = "innerbrig"; - name = "Brig Interior Doors Control"; - normaldoorcontrol = 1; - pixel_x = 6; - pixel_y = 9; - req_access = list("secuirty") - }, -/obj/machinery/button/door{ - id = "outerbrig"; - name = "Brig Exterior Doors Control"; - normaldoorcontrol = 1; - pixel_x = 6; - pixel_y = -1; - req_access = list("secuirty") - }, -/obj/machinery/button/door/directional/north{ - id = "briggate"; - name = "Front Gate Shutters"; - pixel_x = -6; - pixel_y = 9; - req_access = list("brig") - }, -/turf/open/floor/iron/dark/textured_edge{ - dir = 8 - }, -/area/station/security/brig/entrance) "gkT" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -22289,20 +22214,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/department/electrical) -"glO" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/obj/effect/mapping_helpers/airlock/access/all/medical/coroner, -/obj/machinery/door/airlock/external{ - dir = 4; - name = "Graveyard Access" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/medical/morgue) "glP" = ( /obj/structure/railing/corner, /obj/item/storage/belt/utility, @@ -22667,6 +22578,12 @@ /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, /turf/closed/wall/r_wall, /area/station/engineering/atmos) +"gqI" = ( +/obj/structure/cable, +/turf/open/floor/iron/stairs/medium{ + dir = 4 + }, +/area/station/engineering/storage/tech) "gqK" = ( /obj/structure/filingcabinet/chestdrawer, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -22693,6 +22610,12 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark, /area/station/medical/morgue) +"grc" = ( +/obj/item/kirbyplants/photosynthetic, +/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/box/white, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/storage/tech) "grk" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -22755,15 +22678,6 @@ }, /turf/open/floor/iron, /area/station/cargo/lobby) -"grQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "grT" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 1 @@ -22866,6 +22780,20 @@ /obj/effect/spawner/random/vending/colavend, /turf/open/floor/iron, /area/station/commons/locker) +"gtP" = ( +/obj/structure/table, +/obj/item/assembly/timer, +/obj/item/assembly/timer{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/structure/sign/warning/secure_area/directional/west, +/obj/item/assembly/prox_sensor{ + pixel_y = 16; + pixel_x = -2 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "guA" = ( /obj/effect/turf_decal/siding/white/corner{ dir = 4 @@ -22945,12 +22873,25 @@ /obj/machinery/newscaster/directional/west, /turf/open/floor/iron/dark, /area/station/service/chapel) -"gwg" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/brown, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/commons/storage/mining) +"gwl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/obj/machinery/button/door/directional/north{ + id = "Secure Gate"; + name = "Cell Shutters"; + req_access = list("brig") + }, +/obj/machinery/button/door/directional/north{ + id = "Prison Gate"; + name = "Prison Wing Lockdown"; + pixel_y = 35; + req_access = list("brig") + }, +/turf/open/floor/iron/textured, +/area/station/security/brig) "gwp" = ( /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral/full, @@ -22970,6 +22911,11 @@ }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/customs/auxiliary) +"gwx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/light_construct/directional/east, +/turf/open/floor/iron, +/area/station/construction) "gwy" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/flora/bush/sparsegrass/style_random, @@ -23041,10 +22987,6 @@ /obj/item/radio/intercom/prison/directional/south, /turf/open/floor/iron/dark, /area/station/security/prison/rec) -"gxH" = ( -/obj/machinery/firealarm/directional/south, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/cargo/warehouse) "gxO" = ( /obj/structure/table/reinforced, /obj/item/hand_labeler{ @@ -23117,6 +23059,19 @@ /obj/machinery/newscaster/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) +"gyO" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/cytology{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/item/storage/box/swab{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "gyR" = ( /turf/closed/wall/r_wall, /area/station/engineering/main) @@ -23176,6 +23131,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) +"gAa" = ( +/obj/machinery/camera/preset/ordnance{ + dir = 4 + }, +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/icemoon, +/area/station/science/ordnance/bomb/planet) "gAk" = ( /obj/machinery/airalarm/directional/east, /obj/structure/closet/l3closet/scientist, @@ -23218,6 +23185,14 @@ }, /turf/open/floor/iron/grimy, /area/station/service/chapel/office) +"gAJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/frame/computer{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/construction) "gAM" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /obj/structure/sign/warning/cold_temp/directional/east, @@ -23299,6 +23274,21 @@ }, /turf/open/floor/plating, /area/station/security/prison/work) +"gCf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/commons/storage/mining) +"gCl" = ( +/obj/structure/railing/corner/end/flip{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/storage/mining) "gCn" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -23379,6 +23369,10 @@ /obj/item/clothing/mask/breath, /turf/open/floor/plating, /area/station/commons/dorms/laundry) +"gDm" = ( +/obj/structure/frame/machine, +/turf/open/floor/iron, +/area/station/construction) "gDp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -23481,6 +23475,22 @@ /obj/effect/mapping_helpers/airlock/access/any/engineering/general, /turf/open/floor/plating, /area/station/engineering/storage_shared) +"gEy" = ( +/obj/structure/table, +/obj/item/computer_disk/ordnance, +/obj/item/computer_disk/ordnance{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/computer_disk{ + pixel_x = 7; + pixel_y = 2 + }, +/obj/item/aicard, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/command/heads_quarters/rd) "gEE" = ( /turf/open/openspace, /area/station/service/chapel) @@ -23500,6 +23510,18 @@ /obj/structure/cable, /turf/open/floor/carpet, /area/station/security/detectives_office) +"gFx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/freezer{ + desc = "The freezer where the chef keeps all the stuff that needs to be kept cold. Ice cold."; + name = "The Ice Box" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "gFH" = ( /obj/structure/tank_holder/extinguisher, /turf/open/floor/plating, @@ -23520,14 +23542,6 @@ "gFX" = ( /turf/closed/wall, /area/icemoon/underground/explored) -"gGc" = ( -/obj/effect/spawner/random/trash/hobo_squat, -/obj/structure/closet/crate/coffin, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/commons/storage/mining) "gGf" = ( /obj/structure/railing{ dir = 1 @@ -23598,12 +23612,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/storage) -"gGS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/commons/storage/mining) "gGZ" = ( /obj/machinery/computer/bank_machine, /obj/effect/turf_decal/bot_white, @@ -23771,14 +23779,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"gJJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/storage/box/lights/mixed{ - pixel_y = 5 - }, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "gJK" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 @@ -23807,6 +23807,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"gKd" = ( +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/cargo/warehouse) "gKl" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -23845,6 +23848,20 @@ "gKQ" = ( /turf/closed/wall, /area/station/security/courtroom) +"gKU" = ( +/obj/machinery/door/poddoor/preopen{ + dir = 4; + id = "bridge blast"; + name = "Bridge Blast Door" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/obj/machinery/door/firedoor{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/command/bridge) "gLj" = ( /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/engine, @@ -24071,13 +24088,6 @@ }, /turf/open/openspace, /area/station/cargo/storage) -"gOJ" = ( -/obj/item/radio/intercom/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/structure/closet_empty/crate, -/obj/effect/spawner/random/maintenance/no_decals/two, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "gOS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -24123,26 +24133,6 @@ }, /turf/open/openspace, /area/station/science/ordnance/office) -"gPK" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/machinery/light/directional/north, -/obj/machinery/door_buttons/airlock_controller{ - idExterior = "virology_airlock_exterior"; - idInterior = "virology_airlock_interior"; - idSelf = "virology_airlock_control"; - interior_airlock = "virology_airlock_control"; - name = "Virology Access Controller"; - pixel_y = 32; - req_access = list("virology") - }, -/turf/open/floor/iron/white, -/area/station/medical/virology) "gPR" = ( /obj/effect/turf_decal/trimline/green/filled/warning, /obj/machinery/duct, @@ -24168,22 +24158,6 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) -"gQo" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/firealarm/directional/east, -/obj/structure/closet/l3closet/virology, -/obj/machinery/camera/directional/north{ - c_tag = "Virology Airlock"; - network = list("ss13","medbay") - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/white, -/area/station/medical/virology) "gQp" = ( /obj/machinery/door/airlock/external{ name = "External Access" @@ -24331,6 +24305,19 @@ /obj/structure/closet/secure_closet/medical1, /turf/open/floor/iron/white, /area/station/medical/virology) +"gSq" = ( +/obj/machinery/rnd/production/circuit_imprinter/department/science, +/obj/machinery/button/door/directional/north{ + dir = 2; + id = "rnd"; + name = "Shutters Control Button"; + req_access = list("research") + }, +/obj/machinery/light_switch/directional/north{ + pixel_y = 35 + }, +/turf/open/floor/iron/checker, +/area/station/science/lab) "gSr" = ( /obj/structure/table/reinforced, /obj/item/clothing/suit/utility/radiation, @@ -24343,17 +24330,6 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"gSv" = ( -/obj/machinery/door/morgue{ - dir = 4; - name = "Confession Booth (Chaplain)"; - req_access = list("chapel_office") - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/wood/large, -/area/station/service/chapel) "gSy" = ( /turf/open/floor/iron, /area/station/security/prison/workout) @@ -24379,17 +24355,6 @@ /obj/effect/turf_decal/tile/brown/half/contrasted, /turf/open/floor/iron/dark/side, /area/mine/eva/lower) -"gSP" = ( -/obj/item/storage/box/lights/mixed, -/obj/item/storage/box/lights/mixed, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/service/janitor) "gSV" = ( /obj/machinery/light/directional/south, /obj/structure/bodycontainer/morgue{ @@ -24410,6 +24375,11 @@ /obj/structure/cable, /turf/open/floor/eighties, /area/station/commons/lounge) +"gTf" = ( +/obj/effect/spawner/random/maintenance/seven, +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/station/construction) "gTi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/effect/decal/cleanable/dirt, @@ -24446,51 +24416,14 @@ }, /turf/open/openspace, /area/station/security/prison) -"gTz" = ( -/obj/effect/spawner/random/entertainment/arcade{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/captain) "gTK" = ( /turf/closed/wall, /area/station/engineering/engine_smes) -"gTQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) -"gTU" = ( -/obj/effect/landmark/generic_maintenance_landmark, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/construction) "gTW" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/prison/workout) -"gTZ" = ( -/obj/structure/table, -/obj/machinery/cell_charger{ - pixel_y = 3; - pixel_x = 1 - }, -/obj/item/stock_parts/power_store/cell/high, -/obj/item/stock_parts/power_store/cell/high{ - pixel_y = 2; - pixel_x = 4 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "gUa" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/spawner/random/trash/mess, @@ -24568,6 +24501,12 @@ }, /turf/open/floor/plating, /area/station/commons/dorms/laundry) +"gVq" = ( +/obj/structure/rack, +/obj/effect/spawner/random/techstorage/security_all, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/large, +/area/station/engineering/storage/tech) "gVt" = ( /obj/item/radio/intercom/directional/west, /obj/effect/turf_decal/tile/red{ @@ -24652,9 +24591,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/dark, /area/station/maintenance/department/medical/morgue) -"gWg" = ( -/turf/open/floor/carpet/royalblue, -/area/station/command/heads_quarters/captain) "gWh" = ( /obj/structure/rack, /obj/machinery/light/small/dim/directional/north, @@ -24662,17 +24598,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"gWi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/freezer{ - desc = "The freezer where the chef keeps all the stuff that needs to be kept cold. Ice cold."; - name = "The Ice Box" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/turf/open/floor/plating, -/area/station/service/kitchen/coldroom) "gWn" = ( /obj/machinery/atmospherics/components/trinary/filter/flipped{ dir = 4; @@ -24806,6 +24731,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"gYq" = ( +/obj/item/toy/snowball{ + pixel_x = 5; + pixel_y = -7 + }, +/turf/open/misc/asteroid/snow/coldroom, +/area/station/service/kitchen/coldroom) "gYt" = ( /obj/machinery/door/window/left/directional/west{ name = "Research Division Delivery"; @@ -25072,6 +25004,14 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/storage/tech) +"hcO" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) "hcT" = ( /obj/structure/closet/crate/internals, /obj/machinery/firealarm/directional/east, @@ -25268,6 +25208,16 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/chapel) +"hho" = ( +/obj/machinery/vending/cigarette, +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain) "hhr" = ( /obj/structure/weightmachine/weightlifter, /obj/effect/turf_decal/box, @@ -25562,25 +25512,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/mine/laborcamp) -"hlM" = ( -/obj/structure/table/wood, -/obj/machinery/camera/directional/east{ - c_tag = "Captain's Office" - }, -/obj/item/storage/lockbox/medal{ - pixel_y = 8 - }, -/obj/item/pinpointer/nuke{ - pixel_y = -9 - }, -/obj/item/disk/nuclear{ - pixel_y = -8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/captain) "hmb" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -25620,11 +25551,18 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"hmC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) +"hmy" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/storage/mining) "hmE" = ( /obj/structure/chair, /obj/effect/turf_decal/tile/blue/half/contrasted{ @@ -25671,12 +25609,6 @@ }, /turf/open/floor/iron, /area/station/cargo/lobby) -"hnH" = ( -/obj/structure/frame/computer{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "hnN" = ( /obj/machinery/camera/directional/west{ c_tag = "Xenobiology Pens Observation - Port Aft"; @@ -25895,12 +25827,6 @@ /obj/effect/landmark/start/hangover/closet, /turf/open/floor/iron/dark, /area/station/science/genetics) -"hqe" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/commons/storage/mining) "hqi" = ( /obj/machinery/door/window/brigdoor/left/directional/north{ name = "Security Delivery"; @@ -26109,6 +26035,14 @@ /obj/effect/turf_decal/siding/white, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) +"hts" = ( +/obj/structure/table/wood, +/obj/item/wallframe/camera{ + pixel_x = 1; + pixel_y = -2 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "hty" = ( /obj/item/stack/rods, /turf/open/misc/asteroid/snow/icemoon, @@ -26142,19 +26076,6 @@ /obj/effect/landmark/start/depsec/science, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) -"htZ" = ( -/obj/machinery/light_switch/directional/east, -/obj/effect/turf_decal/siding/white{ - dir = 8 - }, -/obj/structure/closet/secure_closet/freezer/kitchen, -/obj/item/food/grown/tomato, -/obj/item/food/grown/tomato{ - pixel_x = 2; - pixel_y = 2 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) "hue" = ( /obj/structure/chair/comfy/black, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -26242,6 +26163,16 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"huO" = ( +/obj/machinery/door/window/right/directional/south{ + name = "The Ice Box"; + req_access = list("kitchen") + }, +/obj/effect/turf_decal/siding/white, +/obj/item/radio/intercom/directional/east, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "huS" = ( /obj/structure/disposalpipe/junction/flip{ dir = 8 @@ -26264,6 +26195,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"hvv" = ( +/obj/structure/rack, +/obj/item/wrench, +/obj/item/crowbar, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/random/engineering/flashlight, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/lesser) "hvQ" = ( /obj/effect/spawner/random/trash/mess, /turf/open/floor/stone, @@ -26285,12 +26227,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/cargo/drone_bay) -"hwh" = ( -/obj/structure/chair/stool/directional/south, -/obj/machinery/light/small/dim/directional/north, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "hwn" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -26385,16 +26321,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/miningdock) -"hxG" = ( -/obj/structure/table, -/obj/item/stock_parts/subspace/transmitter, -/obj/item/stock_parts/subspace/transmitter, -/obj/item/stock_parts/subspace/treatment, -/obj/item/stock_parts/subspace/treatment, -/obj/item/stock_parts/subspace/treatment, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "hxJ" = ( /obj/structure/fence/corner{ dir = 10 @@ -26456,10 +26382,6 @@ /obj/structure/sign/xenobio_guide/directional/north, /turf/open/openspace, /area/station/science/xenobiology) -"hzi" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron, -/area/station/cargo/miningdock) "hzz" = ( /obj/structure/table/glass, /obj/item/clothing/gloves/latex, @@ -26482,6 +26404,41 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/aft) +"hzG" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_x = -6; + pixel_y = 14 + }, +/obj/machinery/button/door/directional/north{ + id = "Secure Gate"; + name = "Cell Shutters"; + pixel_x = 6; + req_access = list("brig") + }, +/obj/machinery/button/door/directional/north{ + id = "Prison Gate"; + name = "Prison Wing Lockdown"; + pixel_x = 6; + pixel_y = 35; + req_access = list("brig") + }, +/obj/machinery/button/door/directional/north{ + id = "briggate"; + name = "Front Gate Shutters"; + pixel_x = 6; + pixel_y = 12; + req_access = list("brig") + }, +/obj/machinery/button/door/directional/north{ + id = "BrigLock"; + name = "Brig Lockdown"; + pixel_x = 6; + pixel_y = 0; + req_access = list("brig") + }, +/turf/open/floor/iron/showroomfloor, +/area/station/security/warden) "hzH" = ( /obj/machinery/camera/motion/directional/west{ c_tag = "MiniSat Core Hallway"; @@ -26553,16 +26510,21 @@ dir = 4 }, /area/station/science/research) -"hAv" = ( +"hAw" = ( /obj/machinery/door/airlock/external{ - dir = 4; - name = "External Access" + glass = 1; + name = "Cargo Warehouse External Airlock"; + opacity = 0 }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 +/obj/effect/mapping_helpers/airlock/access/all/supply/mining_station, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "cargo-warehouse-external" }, -/turf/open/floor/plating, -/area/station/maintenance/aft/lesser) +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "hAE" = ( /obj/structure/railing/corner{ dir = 8 @@ -26714,6 +26676,12 @@ /obj/machinery/newscaster/directional/north, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"hCH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/commons/storage/mining) "hCV" = ( /obj/structure/table/wood, /obj/item/hand_tele{ @@ -26770,6 +26738,12 @@ dir = 1 }, /area/station/service/chapel) +"hDh" = ( +/obj/machinery/computer/atmos_alert/station_only{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage/gas) "hDp" = ( /turf/open/floor/engine, /area/station/science/genetics) @@ -26785,6 +26759,11 @@ /obj/machinery/shower/directional/north, /turf/open/floor/iron/smooth, /area/mine/eva/lower) +"hDA" = ( +/obj/machinery/status_display/ai/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "hDG" = ( /obj/docking_port/stationary/random/icemoon{ dir = 4; @@ -26800,6 +26779,22 @@ /obj/item/kirbyplants/random/dead, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"hDQ" = ( +/obj/item/radio/intercom/directional/east, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/rack, +/obj/machinery/status_display/evac/directional/south, +/obj/item/clothing/gloves/color/yellow, +/obj/item/crowbar/large, +/obj/item/multitool, +/obj/effect/turf_decal/tile/dark_blue/full, +/obj/effect/turf_decal/siding/dark{ + dir = 9 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/storage/tech) "hDU" = ( /turf/closed/wall/r_wall, /area/station/command/gateway) @@ -26809,11 +26804,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/fore) -"hDX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/plating, -/area/station/construction) "hEm" = ( /obj/structure/closet/emcloset, /turf/open/floor/iron/dark, @@ -26912,6 +26902,12 @@ }, /turf/open/floor/iron/cafeteria, /area/station/security/prison/work) +"hFJ" = ( +/obj/machinery/computer/station_alert/station_only, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/computer/security/telescreen/engine/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/engine_smes) "hFL" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 @@ -26933,6 +26929,12 @@ /obj/machinery/vending/wardrobe/det_wardrobe, /turf/open/floor/iron/grimy, /area/station/security/detectives_office) +"hGf" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "hGh" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -26948,10 +26950,6 @@ }, /turf/open/openspace, /area/station/engineering/atmos/storage) -"hGu" = ( -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/plating/icemoon, -/area/station/science/ordnance/bomb/planet) "hGH" = ( /turf/closed/wall, /area/station/security/lockers) @@ -26967,37 +26965,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"hHi" = ( -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/structure/table/glass, -/obj/item/seeds/tower, -/obj/item/seeds/chanter{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/seeds/watermelon{ - pixel_x = 3; - pixel_y = -6 - }, -/obj/item/seeds/apple{ - pixel_x = 2; - pixel_y = 4 - }, -/obj/item/seeds/banana, -/obj/item/seeds/rose{ - pixel_x = -4; - pixel_y = -3 - }, -/obj/structure/noticeboard/directional/west, -/obj/item/paper/guides/jobs/hydroponics{ - pixel_x = -27; - pixel_y = 3 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "hHl" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -27014,6 +26981,12 @@ dir = 1 }, /area/station/hallway/secondary/entry) +"hHo" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "hHp" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -27622,6 +27595,13 @@ /obj/effect/turf_decal/trimline/yellow/filled/line, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) +"hPQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/large, +/area/station/commons/storage/mining) "hPT" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -27801,6 +27781,21 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron/dark/smooth_corner, /area/station/ai_monitored/command/storage/eva) +"hSm" = ( +/obj/structure/table, +/obj/item/paper/crumpled{ + pixel_y = 3; + pixel_x = 2 + }, +/obj/item/paper/crumpled{ + pixel_x = -5 + }, +/obj/item/paper/crumpled{ + pixel_x = 3; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "hSq" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/turf_decal/siding/wood{ @@ -27821,12 +27816,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"hSC" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "hSF" = ( /obj/machinery/atmospherics/components/tank/air{ dir = 8 @@ -27850,6 +27839,17 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) +"hTk" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external/glass{ + dir = 4; + name = "Supply Door Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/turf/open/floor/plating, +/area/station/cargo/storage) "hTm" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/meter, @@ -28103,14 +28103,6 @@ /obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/iron, /area/station/science/xenobiology) -"hWy" = ( -/obj/item/toy/snowball{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/toy/snowball, -/turf/open/misc/asteroid/snow/coldroom, -/area/icemoon/underground/explored) "hWz" = ( /obj/machinery/camera/directional/south{ c_tag = "Ordnance Lower Mix Lab"; @@ -28178,15 +28170,6 @@ /obj/effect/landmark/navigate_destination/disposals, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"hYf" = ( -/obj/structure/marker_beacon/burgundy{ - name = "landing marker" - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) "hYy" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -28277,6 +28260,21 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"hZm" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Service - Kitchen" + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/machinery/airalarm/directional/east, +/obj/structure/table, +/obj/machinery/processor{ + pixel_y = 6 + }, +/obj/effect/mapping_helpers/airalarm/tlv_kitchen, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "hZo" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/rack, @@ -28333,12 +28331,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/hydroponics) -"hZZ" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/end{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/commons/storage/mining) "iag" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, @@ -28693,6 +28685,23 @@ /obj/machinery/duct, /turf/open/floor/plating, /area/station/maintenance/fore) +"idU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/hatch{ + dir = 4; + name = "Morgue" + }, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/morgue, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "iem" = ( /obj/structure/railing{ dir = 8 @@ -28720,17 +28729,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/atmos) -"ifU" = ( -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/obj/machinery/status_display/evac/directional/east, -/turf/open/floor/iron/dark/side{ - dir = 5 - }, -/area/station/commons/storage/mining) "ifX" = ( /obj/machinery/vending/wardrobe/cargo_wardrobe, /turf/open/floor/iron, @@ -28749,6 +28747,14 @@ /obj/item/soap/nanotrasen, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/toilet) +"igb" = ( +/obj/structure/table, +/obj/item/stock_parts/subspace/analyzer, +/obj/item/stock_parts/subspace/analyzer, +/obj/item/stock_parts/subspace/analyzer, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "igd" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/bot_red, @@ -28830,12 +28836,34 @@ /obj/effect/spawner/random/trash/mess, /turf/open/floor/wood/large, /area/station/commons/vacant_room/office) +"ihh" = ( +/obj/item/clothing/glasses/meson, +/obj/item/storage/bag/ore, +/obj/item/pickaxe, +/obj/item/mining_scanner, +/obj/item/flashlight, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/gps/mining, +/obj/structure/rack, +/obj/structure/sign/poster/official/work_for_a_future/directional/north, +/turf/open/floor/iron/textured_large, +/area/station/commons/storage/mining) "ihk" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/chair/stool/directional/south, /turf/open/floor/iron, /area/station/commons/locker) +"iho" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/obj/machinery/light/cold/directional/north, +/turf/open/floor/iron/dark/textured, +/area/station/engineering/storage/tech) "ihu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, @@ -28854,13 +28882,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured, /area/station/security/execution/transfer) -"ihM" = ( -/obj/structure/chair, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/icemoon, -/area/station/science/ordnance/bomb/planet) "iih" = ( /obj/effect/spawner/xmastree, /obj/effect/turf_decal/tile/neutral{ @@ -28925,6 +28946,12 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/medical/virology) +"iiX" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/grille, +/turf/open/floor/plating, +/area/station/commons/storage/mining) "ijb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, @@ -28972,11 +28999,6 @@ dir = 1 }, /area/station/medical/morgue) -"ijy" = ( -/obj/machinery/mech_bay_recharge_port, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "ijC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -28984,12 +29006,6 @@ /obj/effect/turf_decal/tile/green/half/contrasted, /turf/open/floor/iron, /area/station/security/prison/garden) -"ijJ" = ( -/obj/structure/rack, -/obj/effect/spawner/random/techstorage/engineering_all, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/large, -/area/station/engineering/storage/tech) "ijK" = ( /obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; @@ -29118,6 +29134,11 @@ dir = 1 }, /area/station/service/chapel) +"ili" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/spawner/random/structure/barricade, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "iln" = ( /obj/structure/railing/corner{ dir = 4 @@ -29131,6 +29152,13 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron/sepia, /area/station/service/library) +"ilu" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "ilv" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -29209,23 +29237,16 @@ dir = 1 }, /area/station/commons/storage/art) -"imT" = ( -/obj/structure/table/glass, -/obj/machinery/vending/wallmed/directional/north, -/obj/item/book/manual/wiki/surgery{ - pixel_x = -4; - pixel_y = 3 - }, -/obj/effect/spawner/surgery_tray/full, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 +"imP" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding/brown{ + dir = 4 }, -/obj/machinery/camera/directional/north{ - c_tag = "Surgery A"; - network = list("ss13","medbay") +/obj/item/flashlight/lantern{ + pixel_y = -3 }, -/turf/open/floor/iron/white, -/area/station/medical/surgery/fore) +/turf/open/floor/iron/dark, +/area/station/commons/storage/mining) "ini" = ( /obj/structure/falsewall, /turf/open/floor/plating, @@ -29362,18 +29383,13 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"ioW" = ( -/obj/structure/rack, -/obj/effect/turf_decal/tile/dark_blue/full, -/obj/effect/spawner/random/techstorage/ai_all, -/obj/machinery/camera/directional/west{ - c_tag = "Secure Tech Storage" - }, -/obj/effect/turf_decal/siding/dark{ - dir = 1 +"ipa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/engineering/storage/tech) +/obj/structure/sign/departments/engineering/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "ipd" = ( /obj/machinery/light/small/directional/south, /obj/machinery/camera/directional/south{ @@ -29394,33 +29410,11 @@ }, /turf/open/floor/plating, /area/station/service/chapel) -"ipj" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/obj/effect/turf_decal/tile/brown/half{ - dir = 4 - }, -/turf/open/floor/iron/half{ - dir = 1 - }, -/area/station/commons/storage/mining) "ipw" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance/two, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"ipx" = ( -/obj/machinery/door/window/right/directional/south{ - name = "The Ice Box"; - req_access = list("kitchen") - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/siding/white, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "ipA" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -29438,6 +29432,15 @@ /obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"ipU" = ( +/obj/structure/table/wood, +/obj/structure/secure_safe/directional/east, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain) "iqn" = ( /obj/structure/rack, /obj/effect/spawner/random/clothing/costume, @@ -29568,6 +29571,17 @@ /obj/machinery/air_sensor/incinerator_tank, /turf/open/floor/engine/vacuum, /area/station/maintenance/disposal/incinerator) +"isx" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/central) "isz" = ( /obj/machinery/recharger{ pixel_y = 4 @@ -29587,6 +29601,12 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/wood/parquet, /area/station/service/bar/backroom) +"isK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/maintenance/port/aft) "isP" = ( /obj/effect/landmark/start/medical_doctor, /turf/open/floor/iron/white, @@ -29606,14 +29626,6 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"isY" = ( -/obj/structure/mop_bucket/janitorialcart, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron, -/area/station/service/janitor) "itf" = ( /obj/effect/turf_decal/stripes/box, /obj/structure/ladder, @@ -29836,13 +29848,14 @@ "iwS" = ( /turf/closed/wall, /area/station/commons/dorms/laundry) -"iwU" = ( -/obj/machinery/holopad/secure, -/obj/effect/landmark/event_spawn, -/obj/effect/spawner/random/engineering/tracking_beacon, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/large, -/area/station/commons/storage/mining) +"iwT" = ( +/obj/structure/kitchenspike, +/obj/machinery/status_display/evac/directional/west, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "iwV" = ( /obj/structure/railing, /turf/open/misc/asteroid/snow/icemoon, @@ -29903,16 +29916,13 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark, /area/station/engineering/engine_smes) -"ixK" = ( -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 1 - }, -/obj/machinery/light/small/directional/west, -/obj/machinery/status_display/ai/directional/west, -/turf/open/floor/iron/dark/side{ - dir = 9 +"ixS" = ( +/obj/structure/fence/corner{ + dir = 5 }, -/area/station/commons/storage/mining) +/obj/structure/sign/warning/secure_area, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "ixZ" = ( /obj/machinery/door/airlock/command/glass{ name = "Chief Engineer" @@ -30060,17 +30070,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"iAn" = ( -/obj/structure/sign/warning/directional/west, -/obj/machinery/light/small/directional/west, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) -"iAw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/mining) +"iAu" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/station/cargo/miningdock) "iAK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -30307,6 +30310,12 @@ }, /turf/open/floor/iron, /area/station/science/xenobiology) +"iEV" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/captain) "iFe" = ( /obj/structure/cable, /turf/open/floor/iron/dark/smooth_half, @@ -30323,6 +30332,15 @@ /obj/effect/turf_decal/tile/blue/opposingcorners, /turf/open/floor/iron/dark, /area/station/command/gateway) +"iFm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "iFs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ @@ -30433,6 +30451,29 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/robotics/lab) +"iIm" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/obj/machinery/door/airlock{ + dir = 4; + name = "Bar" + }, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/service/bar) "iIs" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, @@ -30453,6 +30494,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"iIH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/station/commons/storage/mining) "iIJ" = ( /turf/open/floor/iron/cafeteria{ dir = 8 @@ -30542,10 +30589,6 @@ }, /turf/open/floor/carpet/lone, /area/station/service/chapel) -"iJY" = ( -/obj/structure/frame/machine, -/turf/open/floor/iron, -/area/station/construction) "iKd" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/effect/turf_decal/siding/white, @@ -30562,6 +30605,26 @@ /obj/machinery/incident_display/delam/directional/north, /turf/open/floor/iron/dark, /area/station/engineering/lobby) +"iKj" = ( +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/machinery/door/airlock/public/glass{ + dir = 4; + name = "Central Access" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "iKl" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -30615,6 +30678,13 @@ dir = 4 }, /area/station/command/gateway) +"iLm" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/meeting_room) "iLn" = ( /obj/effect/spawner/random/trash/mess, /obj/effect/decal/cleanable/dirt/dust, @@ -30677,39 +30747,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"iLO" = ( -/obj/structure/sign/warning/cold_temp/directional/north, -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Cargo Warehouse External Airlock"; - opacity = 0 - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining_station, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "cargo-warehouse-external" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) -"iLU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/hatch{ - dir = 4; - name = "Morgue" - }, -/obj/machinery/door/firedoor{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/all/medical/morgue, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "iLY" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 @@ -30809,19 +30846,6 @@ "iNo" = ( /turf/closed/mineral/random/snow, /area/icemoon/underground/unexplored/rivers/deep/shoreline) -"iNu" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/station/commons/storage/mining) "iNy" = ( /obj/structure/chair{ dir = 4 @@ -30925,6 +30949,12 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/white, /area/station/medical/storage) +"iPI" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/end{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/commons/storage/mining) "iPR" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, @@ -30954,6 +30984,15 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/starboard) +"iQb" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "iQd" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -30976,6 +31015,10 @@ /obj/machinery/computer/records/medical/laptop, /turf/open/floor/iron/white/textured, /area/station/security/medical) +"iQr" = ( +/obj/machinery/status_display/ai/directional/south, +/turf/open/floor/iron, +/area/station/cargo/miningdock) "iQx" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 1 @@ -31163,21 +31206,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/prison/safe) -"iSI" = ( -/obj/structure/table, -/obj/item/analyzer{ - pixel_y = 5 - }, -/obj/item/plant_analyzer, -/obj/item/healthanalyzer{ - pixel_y = 2; - pixel_x = 4 - }, -/obj/machinery/camera/directional/east{ - c_tag = "Tech Storage Access" - }, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "iSL" = ( /obj/structure/disposalpipe/segment, /obj/effect/landmark/event_spawn, @@ -31233,22 +31261,6 @@ /obj/structure/sign/warning/docking/directional/north, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"iTJ" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/item/pen{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/item/folder/white{ - pixel_x = 2 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/dark, -/area/station/science/genetics) "iTP" = ( /obj/item/reagent_containers/cup/bucket, /obj/effect/turf_decal/trimline/green/filled/line, @@ -31293,6 +31305,17 @@ /obj/structure/sign/poster/official/random/directional/east, /turf/open/floor/iron, /area/station/security/prison/workout) +"iUy" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/station/commons/storage/mining) +"iUD" = ( +/obj/structure/ladder, +/obj/machinery/light/small/dim/directional/east, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/mining) "iUG" = ( /turf/open/floor/plating, /area/station/maintenance/fore/lesser) @@ -31538,12 +31561,16 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/chemistry) -"iXX" = ( -/obj/effect/spawner/random/maintenance/four, -/obj/structure/closet/crate, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/construction) +"iXT" = ( +/obj/machinery/light/small/directional/west, +/obj/machinery/newscaster/directional/west, +/obj/effect/turf_decal/tile/brown/half{ + dir = 4 + }, +/turf/open/floor/iron/half{ + dir = 1 + }, +/area/station/commons/storage/mining) "iYb" = ( /turf/closed/wall, /area/station/maintenance/central/greater) @@ -31760,22 +31787,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"jaQ" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 5 - }, -/obj/structure/closet/secure_closet/medical1, -/obj/machinery/light/small/directional/east, -/obj/machinery/light_switch/directional/north, -/obj/machinery/door_buttons/access_button{ - idDoor = "virology_airlock_interior"; - idSelf = "virology_airlock_control"; - name = "Virology Access Button"; - pixel_y = 37; - req_access = list("virology") - }, -/turf/open/floor/iron/white, -/area/station/medical/virology) "jaW" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/red/half/contrasted, @@ -31828,6 +31839,28 @@ /obj/effect/turf_decal/tile/purple/full, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"jbh" = ( +/obj/structure/closet/l3closet/janitor, +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/janitor) +"jbj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/central) "jbq" = ( /obj/structure/flora/bush/flowers_pp/style_random, /obj/structure/flora/bush/flowers_br/style_random, @@ -31928,6 +31961,19 @@ }, /turf/open/floor/iron/dark/smooth_half, /area/station/medical/morgue) +"jcs" = ( +/obj/machinery/door/morgue{ + dir = 4; + req_access = list("bar") + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/grimy, +/area/station/service/bar/backroom) "jct" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -31969,6 +32015,12 @@ }, /turf/open/floor/iron/dark, /area/station/service/chapel) +"jda" = ( +/obj/machinery/keycard_auth/wall_mounted/directional/south, +/obj/machinery/newscaster/directional/west, +/obj/machinery/suit_storage_unit/captain, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) "jdf" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -31980,14 +32032,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/cryo) -"jdt" = ( -/obj/structure/cable/multilayer/multiz, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "jdA" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 4 @@ -32026,11 +32070,6 @@ dir = 9 }, /area/station/science/research) -"jdS" = ( -/obj/machinery/door/airlock/maintenance, -/obj/effect/spawner/random/structure/barricade, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "jdV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -32083,6 +32122,9 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"jeC" = ( +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/captain) "jeF" = ( /obj/effect/landmark/start/security_officer, /turf/open/floor/glass/reinforced, @@ -32140,11 +32182,6 @@ }, /turf/closed/wall/r_wall, /area/station/engineering/atmos) -"jgr" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/iron, -/area/station/service/janitor) "jgs" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/glass, @@ -32257,14 +32294,6 @@ /obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"jio" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/computer/atmos_control/nocontrol/incinerator{ - dir = 8 - }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/iron/dark, -/area/station/maintenance/disposal/incinerator) "jiw" = ( /obj/effect/turf_decal/tile/green/opposingcorners{ dir = 1 @@ -32372,6 +32401,15 @@ /obj/effect/landmark/blobstart, /turf/open/floor/engine, /area/station/science/explab) +"jkK" = ( +/obj/structure/cable/multilayer/multiz, +/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4, +/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/engineering/storage/tech) "jkS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, @@ -32471,13 +32509,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/freezer, /area/station/commons/toilet) -"jlT" = ( -/obj/structure/rack, -/obj/effect/spawner/random/techstorage/arcade_boards, -/obj/effect/turf_decal/bot, -/obj/effect/spawner/random/techstorage/arcade_boards, -/turf/open/floor/iron/large, -/area/station/engineering/storage/tech) "jlV" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 4 @@ -32499,10 +32530,6 @@ }, /turf/open/floor/iron/cafeteria, /area/mine/laborcamp) -"jmg" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "jms" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, @@ -32531,26 +32558,9 @@ /obj/structure/sign/warning/radiation/rad_area/directional/north, /turf/open/floor/iron, /area/station/engineering/main) -"jmH" = ( -/obj/effect/spawner/random/vending/colavend, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/command/meeting_room) "jmI" = ( /turf/closed/wall/r_wall, /area/station/security/prison/workout) -"jmQ" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/structure/disposalpipe/junction{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "jmR" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -32566,13 +32576,14 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/station/maintenance/aft/greater) -"jno" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 9 +"jnm" = ( +/obj/machinery/door/airlock/engineering{ + name = "Utilities Room" }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) "jnp" = ( @@ -32659,24 +32670,17 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"jou" = ( -/obj/item/clothing/glasses/meson, -/obj/item/storage/bag/ore, -/obj/item/pickaxe, -/obj/item/mining_scanner, -/obj/item/flashlight, -/obj/item/clothing/suit/hooded/wintercoat, -/obj/item/gps/mining, -/obj/machinery/light/small/directional/east, -/obj/structure/rack, -/obj/machinery/firealarm/directional/east, -/obj/machinery/camera/autoname/directional/east, -/turf/open/floor/iron/textured_large, -/area/station/commons/storage/mining) "jpd" = ( /obj/machinery/vending/coffee, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"jpe" = ( +/obj/structure/closet/crate/freezer/donk, +/obj/effect/spawner/random/food_or_drink/donkpockets, +/obj/item/food/pizza/donkpocket, +/obj/item/knife/shiv, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "jpg" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/landmark/start/bartender, @@ -32721,6 +32725,13 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/smooth, /area/station/security/brig/upper) +"jpH" = ( +/obj/machinery/holopad/secure, +/obj/effect/landmark/event_spawn, +/obj/effect/spawner/random/engineering/tracking_beacon, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/large, +/area/station/commons/storage/mining) "jpN" = ( /obj/machinery/door/firedoor/heavy, /obj/effect/turf_decal/stripes/white/line{ @@ -32900,11 +32911,6 @@ dir = 1 }, /area/station/hallway/primary/port) -"jsI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/maintenance/port/aft) "jsO" = ( /obj/effect/spawner/random/maintenance/three, /obj/structure/closet/crate/wooden, @@ -33014,6 +33020,12 @@ "jug" = ( /turf/open/floor/glass/reinforced, /area/station/engineering/atmos/pumproom) +"jui" = ( +/obj/structure/frame/computer{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "jul" = ( /obj/machinery/conveyor{ id = "garbage" @@ -33063,6 +33075,12 @@ /mob/living/basic/parrot/poly, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/ce) +"juM" = ( +/obj/structure/ladder, +/obj/machinery/light/small/dim/directional/east, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/iron/smooth, +/area/station/maintenance/port/aft) "juQ" = ( /obj/structure/rack, /obj/item/stack/rods/fifty, @@ -33074,36 +33092,6 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/circuit/telecomms/mainframe, /area/station/tcommsat/server) -"jvb" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/command/glass{ - dir = 4; - name = "Bridge" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/command/general, -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/turf/open/floor/iron, -/area/station/command/bridge) -"jvi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table, -/obj/item/food/grown/carrot, -/obj/item/food/grown/carrot{ - pixel_x = -2; - pixel_y = 4 - }, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "jvj" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/chair, @@ -33263,25 +33251,17 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/storage) -"jxS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/light/directional/north, -/obj/machinery/button/door/directional/north{ - id = "Secure Gate"; - name = "Cell Shutters"; - req_access = list("brig") - }, -/obj/machinery/button/door/directional/north{ - id = "Prison Gate"; - name = "Prison Wing Lockdown"; - pixel_y = 35; - req_access = list("brig") +"jxw" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/icemoon, +/area/station/science/ordnance/bomb/planet) +"jyj" = ( +/obj/structure/kitchenspike, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 8 }, -/turf/open/floor/iron/textured, -/area/station/security/brig) +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "jyl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -33343,30 +33323,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/checkpoint/engineering) -"jyY" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/effect/turf_decal/box/red, -/obj/machinery/airalarm/directional/east, -/obj/effect/mapping_helpers/airalarm/mixingchamber_access, -/obj/effect/mapping_helpers/airalarm/link{ - chamber_id = "ordnanceburn" - }, -/obj/effect/mapping_helpers/airalarm/tlv_no_checks, -/obj/machinery/airlock_controller/incinerator_ordmix{ - pixel_y = 27 - }, -/obj/machinery/button/ignition/incinerator/ordmix{ - pixel_x = -6; - pixel_y = 39 - }, -/obj/machinery/button/door/incinerator_vent_ordmix{ - pixel_x = 5; - pixel_y = 39 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "jzk" = ( /obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/wood, @@ -33484,28 +33440,6 @@ }, /turf/open/floor/iron, /area/station/cargo/miningdock) -"jBg" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 10 - }, -/obj/structure/table/glass, -/obj/machinery/reagentgrinder{ - pixel_x = 6; - pixel_y = 8 - }, -/obj/item/storage/box/syringes{ - pixel_x = -5; - pixel_y = 8 - }, -/obj/item/storage/box/beakers{ - pixel_x = -9; - pixel_y = 5 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "jBh" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -33526,37 +33460,6 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"jBp" = ( -/obj/structure/table, -/obj/machinery/button/ticket_machine{ - pixel_x = -6; - pixel_y = -1; - req_access = list("hop") - }, -/obj/machinery/button/photobooth{ - pixel_x = 6; - pixel_y = -1; - req_access = list("hop") - }, -/obj/machinery/button/door/directional/south{ - id = "hop"; - name = "Privacy Shutters"; - pixel_x = -6; - req_access = list("hop") - }, -/obj/machinery/button/door/directional/south{ - id = "hopqueue"; - name = "Queue Shutters"; - pixel_x = 6; - req_access = list("hop") - }, -/obj/machinery/button/flasher{ - id = "hopflash"; - pixel_y = 9; - req_access = list("hop") - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "jBr" = ( /obj/machinery/computer/security{ dir = 4 @@ -33565,10 +33468,6 @@ /obj/machinery/computer/security/telescreen/prison/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/security/warden) -"jBB" = ( -/obj/structure/kitchenspike, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "jBR" = ( /obj/machinery/atmospherics/components/unary/thermomachine/heater{ dir = 8 @@ -33576,10 +33475,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/station/engineering/atmos) -"jBY" = ( -/obj/structure/weightmachine, -/turf/open/floor/iron, -/area/station/commons/fitness) "jCl" = ( /turf/open/floor/plating, /area/station/maintenance/starboard/aft) @@ -33703,15 +33598,6 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"jDT" = ( -/obj/structure/table, -/obj/item/food/deadmouse{ - pixel_x = 13; - pixel_y = 18 - }, -/obj/structure/microscope, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "jDV" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, @@ -33738,6 +33624,15 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/commons/fitness) +"jEg" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain) "jEo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -33783,6 +33678,12 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"jEU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/icemoon, +/area/station/science/ordnance/bomb/planet) "jFf" = ( /obj/effect/turf_decal/siding/thinplating/dark{ dir = 1 @@ -33875,14 +33776,6 @@ }, /turf/open/floor/iron/cafeteria, /area/station/commons/dorms/laundry) -"jHk" = ( -/obj/machinery/door/airlock/engineering{ - name = "Construction Area" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/construction, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/construction) "jHF" = ( /obj/item/trash/boritos/red, /obj/structure/cable, @@ -33971,6 +33864,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"jIC" = ( +/obj/effect/turf_decal/siding/brown, +/turf/open/floor/iron/dark, +/area/station/commons/storage/mining) "jII" = ( /turf/closed/wall, /area/station/hallway/primary/central) @@ -34038,21 +33935,6 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) -"jJy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/table, -/obj/item/paper_bin/construction, -/obj/item/storage/crayons{ - pixel_x = -3; - pixel_y = -2 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) "jJA" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/siding/wood{ @@ -34063,6 +33945,19 @@ "jJM" = ( /turf/open/floor/glass, /area/station/security/lockers) +"jJQ" = ( +/obj/machinery/light_switch/directional/east, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/structure/closet/secure_closet/freezer/kitchen, +/obj/item/food/grown/tomato, +/obj/item/food/grown/tomato{ + pixel_x = 2; + pixel_y = 2 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "jJV" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -34125,6 +34020,16 @@ }, /turf/open/floor/iron/dark/textured_half, /area/station/service/bar/atrium) +"jKv" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/caution{ + dir = 8 + }, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/mining) "jKy" = ( /obj/machinery/holopad, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -34189,6 +34094,14 @@ "jKY" = ( /turf/closed/mineral/random/snow/high_chance, /area/icemoon/underground/unexplored/rivers/deep/shoreline) +"jLb" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/commons/storage/mining) "jLc" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 8 @@ -34363,17 +34276,17 @@ /obj/structure/sign/calendar/directional/north, /turf/open/floor/iron, /area/station/commons/dorms) -"jML" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/light/directional/south, -/obj/effect/turf_decal/tile/purple{ +"jME" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, -/turf/open/floor/iron, -/area/station/service/janitor) +/obj/machinery/door/airlock/external/glass{ + dir = 8; + name = "Supply Door Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/turf/open/floor/plating, +/area/station/cargo/storage) "jMO" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -34575,17 +34488,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/science/breakroom) -"jPy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light_switch/directional/north, -/obj/machinery/button/door/directional/north{ - id = "Mining_launch"; - name = "Mech Bay Door Control"; - pixel_y = 37 - }, -/turf/open/floor/iron/textured, -/area/mine/mechbay) "jPL" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -34618,6 +34520,10 @@ /obj/machinery/space_heater, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"jQy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/storage/mining) "jQz" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -34724,6 +34630,14 @@ /obj/structure/cable, /turf/open/floor/carpet, /area/station/command/heads_quarters/hop) +"jRI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "jRM" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 6 @@ -34790,6 +34704,12 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/wood, /area/station/service/library) +"jSL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/commons/storage/mining) "jSN" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -34811,12 +34731,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/central/greater) -"jSZ" = ( +"jSY" = ( /obj/structure/fence/corner{ - dir = 5 + dir = 2 }, +/obj/structure/sign/warning/secure_area, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) +/area/icemoon/underground/unexplored/rivers/deep/shoreline) "jTf" = ( /obj/structure/fence{ dir = 1 @@ -34870,17 +34791,6 @@ /obj/effect/mapping_helpers/airlock/access/all/science/rd, /turf/open/floor/iron/dark, /area/station/science/server) -"jUb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table, -/obj/item/stack/sheet/mineral/coal{ - pixel_x = 6; - pixel_y = 3 - }, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "jUi" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 1 @@ -34904,6 +34814,18 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/security/warden) +"jUs" = ( +/obj/machinery/door/airlock/external{ + dir = 4; + name = "Graveyard Access" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/coroner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/medical/morgue) "jUB" = ( /turf/closed/wall, /area/station/medical/virology) @@ -34913,10 +34835,8 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/command/teleporter) -"jUT" = ( -/obj/item/clothing/head/cone{ - pixel_x = -4 - }, +"jUV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/port/aft) @@ -34976,13 +34896,6 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/iron, /area/station/science/xenobiology) -"jVz" = ( -/obj/machinery/portable_atmospherics/canister/water_vapor, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/service/janitor) "jVE" = ( /obj/effect/turf_decal/box/white, /turf/open/floor/engine, @@ -35122,6 +35035,12 @@ /obj/structure/mirror/directional/south, /turf/open/floor/iron/freezer, /area/station/medical/break_room) +"jYB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/storage/mining) "jYF" = ( /obj/machinery/door/firedoor/heavy, /obj/machinery/door/poddoor/preopen{ @@ -35152,18 +35071,19 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmos) +"jYL" = ( +/obj/effect/spawner/random/techstorage/rnd_secure_all, +/obj/structure/rack, +/obj/effect/turf_decal/tile/dark_blue/full, +/obj/effect/turf_decal/siding/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/storage/tech) "jYS" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"jYU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/closet/crate/trashcart/filled, -/obj/effect/spawner/random/maintenance/no_decals/two, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "jYV" = ( /obj/effect/turf_decal/bot_white/left, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -35201,41 +35121,6 @@ }, /turf/open/floor/stone, /area/station/service/bar/atrium) -"jZl" = ( -/obj/structure/table, -/obj/machinery/recharger{ - pixel_x = -6; - pixel_y = 14 - }, -/obj/machinery/button/door/directional/north{ - id = "Secure Gate"; - name = "Cell Shutters"; - pixel_x = 6; - req_access = list("brig") - }, -/obj/machinery/button/door/directional/north{ - id = "Prison Gate"; - name = "Prison Wing Lockdown"; - pixel_x = 6; - pixel_y = 35; - req_access = list("brig") - }, -/obj/machinery/button/door/directional/north{ - id = "briggate"; - name = "Front Gate Shutters"; - pixel_x = 6; - pixel_y = 12; - req_access = list("brig") - }, -/obj/machinery/button/door/directional/north{ - id = "BrigLock"; - name = "Brig Lockdown"; - pixel_x = 6; - pixel_y = 0; - req_access = list("brig") - }, -/turf/open/floor/iron/showroomfloor, -/area/station/security/warden) "jZo" = ( /obj/structure/fence{ dir = 2 @@ -35313,6 +35198,16 @@ }, /turf/open/floor/iron, /area/mine/laborcamp) +"kaW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/engineering/storage/tech) "kbd" = ( /obj/structure/closet, /obj/effect/spawner/random/maintenance, @@ -35362,6 +35257,19 @@ /obj/machinery/field/generator, /turf/open/floor/plating, /area/station/engineering/engine_smes) +"kbL" = ( +/obj/structure/table, +/obj/machinery/light/small/dim/directional/west, +/obj/item/camera{ + pixel_x = -2; + pixel_y = 9 + }, +/obj/item/reagent_containers/cup/glass/waterbottle/empty{ + pixel_x = 4; + pixel_y = 5 + }, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) "kbN" = ( /obj/structure/table/wood, /obj/item/storage/box/matches, @@ -35415,16 +35323,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/laborcamp) -"kcw" = ( -/obj/machinery/computer/atmos_alert/station_only, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/command/bridge) -"kcy" = ( -/turf/open/floor/plating/icemoon, -/area/station/science/ordnance/bomb/planet) "kcC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -35777,17 +35675,12 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"khm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/vending/assist, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/turf_decal/siding/dark_blue/inner_corner{ - dir = 1 +"khr" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/middle{ + dir = 4 }, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) +/turf/open/floor/plating, +/area/station/commons/storage/mining) "khs" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, @@ -35808,6 +35701,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/circuit, /area/station/ai_monitored/command/nuke_storage) +"khU" = ( +/obj/structure/displaycase/captain, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain) "khV" = ( /obj/structure/table, /obj/item/ai_module/reset, @@ -35834,13 +35737,6 @@ /obj/effect/spawner/random/trash/food_packaging, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"kil" = ( -/obj/machinery/vending/wardrobe/jani_wardrobe, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/service/janitor) "kin" = ( /obj/machinery/pdapainter/supply, /turf/open/floor/carpet, @@ -36063,10 +35959,6 @@ "kkl" = ( /turf/closed/wall, /area/station/security/interrogation) -"kkz" = ( -/obj/effect/spawner/random/maintenance, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "kkA" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/newscaster/directional/west, @@ -36142,14 +36034,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/break_room) -"kll" = ( -/obj/structure/table, -/obj/machinery/recharger{ - pixel_y = 2; - pixel_x = -5 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "klo" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/table/reinforced, @@ -36170,13 +36054,6 @@ /obj/effect/spawner/random/contraband/prison, /turf/open/floor/carpet/blue, /area/station/security/prison/work) -"klT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/commons/storage/mining) "klW" = ( /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/iron, @@ -36231,6 +36108,15 @@ }, /turf/open/floor/iron/white, /area/mine/laborcamp) +"kmC" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Public Mining Storage" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/textured, +/area/station/commons/storage/mining) "kmG" = ( /obj/machinery/defibrillator_mount/directional/north, /obj/effect/turf_decal/tile/blue/full, @@ -36249,11 +36135,25 @@ /obj/effect/decal/cleanable/generic, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) +"kmN" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "kmO" = ( /obj/machinery/computer/mechpad, /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/textured, /area/mine/mechbay) +"kmR" = ( +/obj/machinery/door/airlock/engineering{ + name = "Utilities Room" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "knd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, @@ -36437,6 +36337,17 @@ /obj/machinery/vending/sustenance/labor_camp, /turf/open/floor/iron, /area/mine/laborcamp) +"kqt" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/east, +/obj/machinery/status_display/evac/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/commons/storage/mining) "kqw" = ( /obj/effect/spawner/random/vending/colavend, /obj/effect/turf_decal/tile/red{ @@ -36484,6 +36395,10 @@ /obj/effect/turf_decal/tile/blue/anticorner/contrasted, /turf/open/floor/iron, /area/station/engineering/atmos) +"kqV" = ( +/obj/machinery/firealarm/directional/south, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/cargo/warehouse) "kra" = ( /obj/structure/railing{ dir = 1 @@ -36525,6 +36440,13 @@ }, /turf/open/floor/plating, /area/mine/laborcamp/security) +"krJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "krN" = ( /obj/structure/sign/poster/official/random/directional/south, /obj/structure/window/reinforced/spawner/directional/west, @@ -36546,22 +36468,6 @@ /obj/machinery/telecomms/bus/preset_four, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) -"krV" = ( -/obj/structure/table, -/obj/item/flashlight/flare/candle{ - pixel_x = -16; - pixel_y = 1 - }, -/obj/item/paper/crumpled{ - name = "used napkin"; - pixel_x = 1; - pixel_y = 3 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "krY" = ( /turf/closed/wall/r_wall, /area/station/science/breakroom) @@ -36713,13 +36619,6 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"ktY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "kub" = ( /obj/machinery/newscaster/directional/east, /turf/open/floor/iron/dark, @@ -36740,7 +36639,7 @@ /turf/open/floor/iron/freezer, /area/station/commons/toilet) "kuC" = ( -/obj/structure/closet/cardboard, +/obj/machinery/suit_storage_unit/industrial/loader, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) "kuJ" = ( @@ -36840,6 +36739,16 @@ }, /turf/open/floor/iron/smooth_large, /area/station/science/cytology) +"kwu" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_y = 14 + }, +/obj/item/book/manual/wiki/security_space_law{ + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) "kww" = ( /obj/machinery/gibber, /turf/open/misc/asteroid/snow/coldroom, @@ -36913,6 +36822,10 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) +"kxT" = ( +/obj/structure/railing/corner, +/turf/open/floor/iron/dark/textured, +/area/station/engineering/storage/tech) "kxY" = ( /obj/effect/turf_decal/stripes/corner, /turf/open/floor/iron, @@ -37030,18 +36943,29 @@ }, /turf/open/floor/iron/large, /area/station/engineering/engine_smes) +"kzD" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 4 + }, +/obj/item/multitool{ + pixel_x = 9; + pixel_y = 4 + }, +/obj/machinery/button/door{ + id = "bridge blast"; + name = "Blast Door Control"; + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/iron, +/area/station/command/bridge) "kzG" = ( /obj/structure/sign/poster/random/directional/north, /turf/open/floor/iron/white/side{ dir = 10 }, /area/station/science/research) -"kzR" = ( -/obj/effect/spawner/random/structure/closet_empty/crate, -/obj/effect/turf_decal/stripes/line, -/obj/effect/spawner/random/maintenance/no_decals/two, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "kzZ" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -37082,11 +37006,6 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"kAN" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/computer/mech_bay_power_console, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "kAQ" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/machinery/status_display/evac/directional/north, @@ -37110,13 +37029,12 @@ /turf/open/floor/iron/dark/textured_edge, /area/station/security/prison) "kBb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/structure/window/hollow/reinforced/middle{ + dir = 4 + }, /obj/structure/cable, -/obj/structure/girder, -/obj/effect/spawner/structure/electrified_grille, /turf/open/floor/plating, -/area/station/maintenance/port/aft) +/area/station/engineering/storage/tech) "kBc" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -37133,6 +37051,20 @@ }, /turf/open/floor/iron/textured, /area/station/commons/fitness) +"kBe" = ( +/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ + pixel_y = 0; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ + dir = 8 + }, +/obj/structure/cable/multilayer/multiz, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/engineering/storage/tech) "kBi" = ( /obj/effect/mapping_helpers/airlock/abandoned, /obj/machinery/door/airlock/atmos{ @@ -37270,9 +37202,21 @@ /obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/iron, /area/mine/laborcamp/security) +"kCI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/frame/machine/secured, +/turf/open/floor/iron, +/area/station/construction) "kCV" = ( /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/service) +"kDa" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/structure/table, +/obj/effect/spawner/random/engineering/tracking_beacon, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron, +/area/station/command/teleporter) "kDc" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/incinerator_input{ dir = 8 @@ -37328,6 +37272,13 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"kDX" = ( +/obj/structure/chair, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/icemoon, +/area/station/science/ordnance/bomb/planet) "kEj" = ( /obj/machinery/computer/libraryconsole/bookmanagement, /obj/structure/table, @@ -37353,20 +37304,6 @@ /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"kEE" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Public Mining"; - opacity = 0 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/mining) "kEM" = ( /turf/open/floor/iron/freezer, /area/station/commons/toilet/locker) @@ -37408,11 +37345,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"kFy" = ( -/obj/effect/spawner/random/maintenance/seven, -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/station/construction) "kFH" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 10 @@ -37434,6 +37366,13 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/mine/eva) +"kFR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "kFW" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -37456,6 +37395,20 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/wood/large, /area/station/command/heads_quarters/hos) +"kGe" = ( +/obj/machinery/door/poddoor/preopen{ + dir = 4; + id = "bridge blast"; + name = "Bridge Blast Door" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/structure/sign/warning/secure_area/directional/north, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/command/bridge) "kGm" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -37636,6 +37589,12 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"kII" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "kIL" = ( /obj/structure/flora/grass/green/style_random, /obj/structure/sign/warning/electric_shock/directional/north, @@ -37752,6 +37711,13 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/transit_tube) +"kKG" = ( +/obj/item/radio/intercom/directional/west, +/obj/machinery/modular_computer/preset/id{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) "kKH" = ( /obj/item/radio/intercom/directional/south, /obj/effect/turf_decal/tile/yellow/half/contrasted, @@ -37830,11 +37796,6 @@ /obj/effect/mapping_helpers/airlock/access/all/science/xenobio, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"kLL" = ( -/obj/machinery/computer/atmos_alert/station_only, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/engine_smes) "kLZ" = ( /obj/effect/turf_decal/stripes/corner{ dir = 8 @@ -37870,6 +37831,22 @@ }, /turf/open/floor/iron/large, /area/station/engineering/storage) +"kNf" = ( +/obj/structure/table, +/obj/item/flashlight/flare/candle{ + pixel_x = -16; + pixel_y = 1 + }, +/obj/item/paper/crumpled{ + name = "used napkin"; + pixel_x = 1; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "kNi" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -37888,14 +37865,6 @@ /obj/structure/cable, /turf/open/floor/iron/large, /area/station/engineering/atmos/storage/gas) -"kNm" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/frame/computer{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/construction) "kNp" = ( /obj/structure/cable, /turf/open/floor/iron/dark/telecomms, @@ -37911,6 +37880,10 @@ /obj/effect/turf_decal/siding/thinplating, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) +"kNE" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/icemoon, +/area/station/science/ordnance/bomb/planet) "kNQ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -37933,6 +37906,18 @@ /obj/structure/sign/warning/directional/north, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) +"kOd" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/storage/mining) "kOi" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 9 @@ -37979,13 +37964,6 @@ }, /turf/open/floor/iron/dark, /area/station/service/bar) -"kOA" = ( -/obj/structure/closet/crate/freezer/donk, -/obj/effect/spawner/random/food_or_drink/donkpockets, -/obj/item/food/pizza/donkpocket, -/obj/item/knife/shiv, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "kOM" = ( /obj/structure/grille, /obj/structure/window/reinforced/spawner/directional/north, @@ -38076,6 +38054,15 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics/garden) +"kPH" = ( +/obj/structure/stairs/south{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/stairs/medium{ + dir = 4 + }, +/area/station/engineering/storage/tech) "kPL" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, @@ -38181,6 +38168,14 @@ /obj/structure/bookcase, /turf/open/floor/iron, /area/mine/laborcamp) +"kRw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/computer/atmos_control/nocontrol/incinerator{ + dir = 8 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark, +/area/station/maintenance/disposal/incinerator) "kRy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -38232,6 +38227,18 @@ /obj/effect/spawner/random/trash/grille_or_waste, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"kRZ" = ( +/obj/structure/table, +/obj/item/food/grown/carrot, +/obj/item/food/grown/carrot{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "kSc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt/dust, @@ -38315,19 +38322,6 @@ /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/mine/eva/lower) -"kTV" = ( -/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ - pixel_y = 0; - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/commons/storage/mining) "kUb" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 8 @@ -38409,6 +38403,13 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/station/commons/fitness) +"kVb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/brown, +/obj/machinery/camera/autoname/directional/west, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark, +/area/station/commons/storage/mining) "kVe" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -38420,14 +38421,6 @@ /obj/machinery/light/floor, /turf/open/floor/iron, /area/station/cargo/storage) -"kVr" = ( -/obj/machinery/door/morgue{ - dir = 2; - name = "Coffin Storage"; - req_access = list("chapel_office") - }, -/turf/open/floor/iron/dark, -/area/station/service/chapel) "kVv" = ( /obj/structure/frame/machine, /obj/item/stack/cable_coil/five, @@ -38639,6 +38632,12 @@ }, /turf/open/floor/plating/icemoon, /area/icemoon/surface/outdoors/nospawn) +"kXL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/maintenance/port/aft) "kXM" = ( /obj/structure/closet/secure_closet/security/med, /obj/structure/cable, @@ -38698,6 +38697,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/mine/laborcamp) +"kYF" = ( +/obj/structure/light_construct/directional/west, +/mob/living/basic/goose/vomit, +/turf/open/floor/wood, +/area/station/maintenance/port/aft) "kYI" = ( /turf/open/floor/iron/showroomfloor, /area/station/security/processing) @@ -38708,6 +38712,27 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/large, /area/station/engineering/engine_smes) +"kYP" = ( +/obj/structure/table, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/tank/internals/emergency_oxygen, +/obj/effect/turf_decal/siding/brown{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/mining) +"kYS" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Public Mining Storage" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/navigate_destination, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/textured, +/area/station/commons/storage/mining) "kZa" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -38772,6 +38797,14 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/vault, /area/station/security/prison/rec) +"kZL" = ( +/obj/item/target, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/icemoon, +/area/station/science/ordnance/bomb/planet) "laa" = ( /obj/machinery/newscaster/directional/west, /obj/machinery/vending/cigarette, @@ -38799,6 +38832,29 @@ }, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"lah" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + dir = 4; + name = "Escape" + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/secondary/exit/departure_lounge) "law" = ( /obj/machinery/door/airlock/security/glass{ name = "Security Vestibule" @@ -38828,23 +38884,6 @@ }, /turf/open/floor/iron, /area/station/service/janitor) -"laS" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 4 - }, -/obj/item/multitool{ - pixel_x = 9; - pixel_y = 4 - }, -/obj/machinery/button/door{ - id = "bridge blast"; - name = "Blast Door Control"; - pixel_x = -3; - pixel_y = -3 - }, -/turf/open/floor/iron, -/area/station/command/bridge) "laV" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 @@ -38899,11 +38938,6 @@ /obj/effect/decal/cleanable/confetti, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"lbT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "lch" = ( /obj/machinery/computer/monitor{ dir = 1; @@ -38936,16 +38970,6 @@ /obj/structure/table/wood, /turf/open/floor/carpet, /area/station/commons/dorms) -"lcS" = ( -/obj/machinery/door/airlock/engineering{ - name = "Utilities Room" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "lcY" = ( /obj/structure/sign/poster/official/random/directional/west, /turf/open/floor/iron/dark, @@ -39077,12 +39101,24 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/storage) -"lff" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ +"lfo" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) +/obj/machinery/door/airlock/command/glass{ + dir = 4; + name = "Bridge" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron, +/area/station/command/bridge) "lfp" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, @@ -39098,6 +39134,26 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"lfA" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/light/directional/north, +/obj/machinery/door_buttons/airlock_controller{ + idExterior = "virology_airlock_exterior"; + idInterior = "virology_airlock_interior"; + idSelf = "virology_airlock_control"; + interior_airlock = "virology_airlock_control"; + name = "Virology Access Controller"; + pixel_y = 32; + req_access = list("virology") + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) "lfG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39127,16 +39183,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"lfZ" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/icemoon, -/area/station/science/ordnance/bomb/planet) -"lgf" = ( -/obj/structure/rack, -/obj/effect/spawner/random/techstorage/security_all, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/large, -/area/station/engineering/storage/tech) "lgg" = ( /obj/machinery/air_sensor/engine_chamber, /turf/open/floor/engine, @@ -39176,19 +39222,15 @@ }, /turf/open/floor/iron/textured, /area/station/security/brig) -"lgE" = ( -/obj/structure/rack, -/obj/item/gun/energy/ionrifle, -/obj/item/gun/ballistic/automatic/battle_rifle{ - pixel_y = 3 +"lgH" = ( +/obj/machinery/status_display/supply{ + pixel_y = -32 }, -/obj/item/gun/energy/temperature/security, -/obj/item/clothing/suit/hooded/ablative, -/obj/effect/turf_decal/tile/red/half/contrasted{ +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/turf/open/floor/iron/dark/textured, -/area/station/ai_monitored/security/armory) +/turf/open/floor/iron, +/area/station/cargo/miningdock) "lgK" = ( /turf/closed/wall, /area/station/security/prison/visit) @@ -39210,12 +39252,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/storage) -"lht" = ( -/obj/machinery/computer/atmos_alert/station_only{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage/gas) "lhu" = ( /obj/machinery/camera/directional/north{ c_tag = "Xenobiology Lab Access"; @@ -39249,14 +39285,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) -"lhR" = ( -/obj/structure/closet/l3closet/janitor, -/obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/service/janitor) "lia" = ( /turf/open/openspace, /area/station/service/kitchen/coldroom) @@ -39301,6 +39329,12 @@ /obj/effect/landmark/start/medical_doctor, /turf/open/floor/iron/white, /area/station/medical/surgery/aft) +"liB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "liI" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/cable, @@ -39325,11 +39359,6 @@ /obj/item/toy/figure/chaplain, /turf/open/floor/plating, /area/station/maintenance/department/chapel) -"liT" = ( -/obj/machinery/light/small/directional/west, -/obj/structure/sign/warning/directional/west, -/turf/open/openspace, -/area/station/commons/storage/mining) "liV" = ( /obj/structure/chair/sofa/bench/left, /obj/effect/mapping_helpers/no_atoms_ontop, @@ -39374,6 +39403,13 @@ /obj/machinery/light/floor, /turf/open/floor/iron, /area/station/hallway/primary/central) +"ljz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "ljB" = ( /obj/machinery/door/firedoor, /obj/structure/cable, @@ -39614,6 +39650,13 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/dark, /area/station/engineering/atmos/storage) +"lmB" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "lmK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -39648,6 +39691,17 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/commons/storage/tools) +"lne" = ( +/obj/structure/table/glass, +/obj/item/seeds/glowshroom, +/obj/item/seeds/bamboo{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/machinery/newscaster/directional/east, +/obj/structure/sign/poster/contraband/kudzu/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "lnk" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -39742,6 +39796,11 @@ /obj/structure/statue/snow/snowman, /turf/open/misc/asteroid/snow/standard_air, /area/station/science/cytology) +"loT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) "loV" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ dir = 4 @@ -39755,12 +39814,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"lpe" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/station/commons/storage/mining) "lpj" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -39780,6 +39833,10 @@ }, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"lpx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/commons/storage/mining) "lpy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/closed/wall/r_wall, @@ -39940,11 +39997,6 @@ /obj/effect/mapping_helpers/mail_sorting/medbay/cmo_office, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"lrj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/commons/storage/mining) "lrl" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -39971,6 +40023,11 @@ /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/work) +"lrY" = ( +/obj/machinery/space_heater, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "lsa" = ( /obj/machinery/door/poddoor/shutters/preopen{ dir = 4; @@ -40074,11 +40131,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/cafeteria, /area/station/commons/dorms/laundry) -"ltX" = ( -/obj/effect/spawner/random/trash/cigbutt, -/obj/effect/spawner/random/trash/cigbutt, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "ltY" = ( /obj/machinery/camera/directional/north{ c_tag = "Central Hallway North-East" @@ -40162,6 +40214,28 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/science/xenobiology) +"lvb" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 10 + }, +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/storage/box/syringes{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/item/storage/box/beakers{ + pixel_x = -9; + pixel_y = 5 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "lvk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40181,6 +40255,20 @@ "lvt" = ( /turf/open/openspace/icemoon, /area/icemoon/underground/explored) +"lvA" = ( +/obj/machinery/door/poddoor/preopen{ + dir = 4; + id = "bridge blast"; + name = "Bridge Blast Door" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/sign/warning/secure_area/directional/north, +/obj/machinery/door/firedoor{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/command/bridge) "lvB" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40189,15 +40277,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"lvF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk/multiz{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "lvG" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -40241,6 +40320,18 @@ }, /turf/open/floor/iron/dark/smooth_half, /area/station/security/prison/work) +"lvW" = ( +/obj/structure/table, +/obj/effect/spawner/random/trash/food_packaging, +/obj/effect/spawner/random/trash/food_packaging, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/radio/intercom/directional/north, +/obj/item/newspaper, +/obj/machinery/camera/directional/north{ + c_tag = "Arrivals Lobby North" + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) "lvY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, @@ -40361,6 +40452,9 @@ "lyg" = ( /turf/closed/wall/r_wall, /area/station/security/brig) +"lym" = ( +/turf/open/floor/iron/smooth, +/area/station/commons/storage/mining) "lyq" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, /obj/effect/turf_decal/bot, @@ -40512,18 +40606,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured, /area/station/medical/chemistry) -"lAj" = ( -/obj/item/clothing/glasses/meson, -/obj/item/storage/bag/ore, -/obj/item/pickaxe, -/obj/item/mining_scanner, -/obj/item/flashlight, -/obj/item/clothing/suit/hooded/wintercoat, -/obj/item/gps/mining, -/obj/structure/rack, -/obj/structure/sign/poster/official/safety_internals/directional/south, -/turf/open/floor/iron/textured_large, -/area/station/commons/storage/mining) "lAu" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -40543,6 +40625,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) +"lAB" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "lAC" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/external{ @@ -40576,6 +40664,19 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark/textured, /area/station/commons/fitness) +"lBc" = ( +/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ + pixel_y = 0; + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/commons/storage/mining) "lBo" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/carpet, @@ -40595,6 +40696,14 @@ /obj/structure/flora/grass/green/style_random, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"lBN" = ( +/obj/machinery/door/morgue{ + dir = 2; + name = "Coffin Storage"; + req_access = list("chapel_office") + }, +/turf/open/floor/iron/dark, +/area/station/service/chapel) "lBR" = ( /turf/closed/wall, /area/station/security/prison/toilet) @@ -40676,6 +40785,16 @@ dir = 1 }, /area/station/engineering/lobby) +"lCI" = ( +/obj/effect/spawner/random/vending/snackvend, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/meeting_room) "lCV" = ( /obj/machinery/door/airlock/maintenance, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40985,11 +41104,26 @@ }, /turf/open/floor/iron/white, /area/station/medical/psychology) +"lGw" = ( +/obj/structure/railing{ + dir = 10 + }, +/obj/structure/table, +/obj/effect/spawner/random/trash/janitor_supplies, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "lGz" = ( /obj/structure/table, /obj/item/storage/toolbox/emergency, /turf/open/floor/iron, /area/station/hallway/primary/port) +"lGG" = ( +/obj/structure/rack, +/obj/effect/spawner/random/techstorage/engineering_all, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/large, +/area/station/engineering/storage/tech) "lGH" = ( /obj/structure/closet, /obj/effect/spawner/random/maintenance, @@ -41070,20 +41204,6 @@ /obj/machinery/smartfridge/organ, /turf/open/floor/iron/dark, /area/station/medical/morgue) -"lIi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/hallway/primary/central) "lIk" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -41151,12 +41271,6 @@ "lIW" = ( /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat_interior) -"lJf" = ( -/obj/item/kirbyplants/photosynthetic, -/obj/effect/turf_decal/box/white, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/iron/dark/smooth_large, -/area/station/engineering/storage/tech) "lJg" = ( /obj/structure/closet/crate/trashcart/laundry, /obj/machinery/light/small/directional/north, @@ -41185,6 +41299,10 @@ dir = 4 }, /area/station/hallway/secondary/entry) +"lKi" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "lKk" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -41218,6 +41336,21 @@ /obj/structure/closet/radiation, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) +"lKw" = ( +/obj/machinery/light/directional/west, +/obj/structure/filingcabinet, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain) +"lKN" = ( +/obj/machinery/door/window/left/directional/west{ + name = "Hydroponics Equipment"; + req_access = list("hydroponics") + }, +/turf/open/floor/iron/half, +/area/station/service/hydroponics) "lLf" = ( /obj/structure/table/wood, /obj/item/storage/dice, @@ -41327,14 +41460,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"lNx" = ( -/obj/machinery/door/window/right/directional/north{ - name = "Public Mining" - }, -/turf/open/floor/iron/stairs/medium{ - dir = 1 - }, -/area/station/commons/storage/mining) "lNy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41414,16 +41539,6 @@ /obj/structure/falsewall, /turf/open/floor/plating, /area/station/medical/morgue) -"lOA" = ( -/obj/structure/minecart_rail{ - dir = 1 - }, -/obj/item/radio/intercom/directional/west{ - frequency = 1453; - name = "Kitchen Intercom" - }, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "lOI" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible/layer1{ dir = 5 @@ -41553,14 +41668,16 @@ }, /turf/open/floor/iron/dark/textured_large, /area/station/cargo/bitrunning/den) -"lPP" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 +"lPW" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark/side{ - dir = 8 +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Public Mining"; + opacity = 0 }, +/turf/open/floor/iron/smooth, /area/station/commons/storage/mining) "lQc" = ( /obj/effect/spawner/structure/window/reinforced, @@ -41842,13 +41959,6 @@ dir = 10 }, /area/station/science/research) -"lUr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "lUw" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41969,6 +42079,25 @@ /obj/effect/landmark/start/roboticist, /turf/open/floor/iron, /area/station/science/robotics/lab) +"lWd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + dir = 4; + id = "bridge blast"; + name = "Bridge Blast Door" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/command/bridge) "lWf" = ( /obj/structure/mop_bucket/janitorialcart, /turf/open/floor/plating, @@ -41981,12 +42110,6 @@ }, /turf/open/floor/iron/smooth_half, /area/station/security/brig/upper) -"lWn" = ( -/obj/structure/closet/crate/miningcar, -/obj/item/shovel, -/obj/item/pickaxe, -/turf/open/floor/iron/textured_large, -/area/station/commons/storage/mining) "lWG" = ( /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/fore) @@ -42065,6 +42188,12 @@ /obj/structure/railing, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"lZt" = ( +/turf/closed/indestructible/riveted{ + desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease"; + name = "hyper-reinforced wall" + }, +/area/station/science/ordnance/bomb/planet) "lZQ" = ( /obj/machinery/airalarm/directional/west, /obj/machinery/computer/cargo{ @@ -42097,49 +42226,11 @@ }, /turf/open/floor/plating, /area/station/medical/pharmacy) -"mat" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/station/commons/storage/mining) "maB" = ( /obj/structure/chair/stool/directional/north, /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/commons/dorms) -"maI" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "misclab"; - name = "Specimen Chamber Control"; - pixel_x = -6; - pixel_y = -1; - req_access = list("rd") - }, -/obj/machinery/button/door{ - id = "xenobiomain"; - name = "Xenobiology Control"; - pixel_x = -6; - pixel_y = 9; - req_access = list("rd") - }, -/obj/machinery/button/door{ - id = "rd_office_shutters"; - name = "Privacy Control"; - pixel_x = 6; - pixel_y = -1; - req_access = list("rd") - }, -/obj/machinery/button/door{ - id = "rnd2"; - name = "Ordnance Control"; - pixel_x = 6; - pixel_y = 9; - req_access = list("rd") - }, -/turf/open/floor/iron/white/corner{ - dir = 1 - }, -/area/station/command/heads_quarters/rd) "maM" = ( /obj/machinery/hydroponics/constructable, /obj/item/seeds/soya, @@ -42326,13 +42417,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"mcj" = ( -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/obj/machinery/status_display/evac/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "mco" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, @@ -42378,6 +42462,21 @@ "mcW" = ( /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"mdc" = ( +/obj/structure/table, +/obj/item/stock_parts/servo, +/obj/item/stock_parts/servo, +/obj/item/stock_parts/servo, +/obj/item/stock_parts/servo, +/obj/item/stock_parts/micro_laser/high, +/obj/item/stock_parts/micro_laser/high, +/obj/item/stock_parts/micro_laser/high, +/obj/item/stock_parts/micro_laser/high, +/obj/item/stock_parts/capacitor, +/obj/item/stock_parts/micro_laser, +/obj/structure/sign/warning/secure_area/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "mde" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -42415,6 +42514,14 @@ dir = 1 }, /area/station/science/explab) +"mdI" = ( +/obj/machinery/door/airlock/atmos{ + dir = 4; + name = "Turbine" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "mdM" = ( /obj/structure/rack, /obj/item/clothing/suit/hooded/wintercoat/eva{ @@ -42492,16 +42599,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/morgue) -"meN" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/captain) "meT" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; @@ -42662,10 +42759,6 @@ /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron/dark/textured_half, /area/station/security/office) -"mhP" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating/icemoon, -/area/station/science/ordnance/bomb/planet) "mhQ" = ( /turf/closed/wall/r_wall, /area/station/command/teleporter) @@ -42700,6 +42793,10 @@ }, /turf/open/floor/iron/white, /area/station/science/ordnance/office) +"miL" = ( +/obj/structure/railing/corner, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "miS" = ( /obj/structure/table, /obj/item/stack/cable_coil{ @@ -42786,6 +42883,12 @@ /obj/item/clothing/head/costume/fancy, /turf/open/floor/iron/dark/textured, /area/station/security/prison) +"mkn" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/brown, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/commons/storage/mining) "mku" = ( /obj/effect/spawner/random/structure/grille, /obj/effect/decal/cleanable/glass, @@ -42810,6 +42913,14 @@ }, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"mln" = ( +/obj/structure/table, +/obj/item/stock_parts/subspace/amplifier, +/obj/item/stock_parts/subspace/amplifier, +/obj/item/stock_parts/subspace/amplifier, +/obj/structure/sign/warning/secure_area/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "mlo" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -42887,6 +42998,23 @@ /obj/machinery/light/directional/east, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"mml" = ( +/obj/structure/sign/poster/official/random/directional/south, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/item/stack/package_wrap/small, +/obj/item/wrench, +/obj/item/stack/cable_coil, +/obj/item/screwdriver, +/obj/structure/closet/crate/nakamura{ + welded = 1 + }, +/obj/structure/flatpack_cart, +/obj/effect/spawner/random/maintenance/no_decals/three, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "mmn" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/components/binary/pump, @@ -42937,15 +43065,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"mnj" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, -/obj/structure/marker_beacon/burgundy{ - name = "landing marker" - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) "mnm" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -42973,6 +43092,19 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"mnA" = ( +/obj/item/clothing/accessory/pocketprotector, +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/camera{ + pixel_x = -3; + pixel_y = 4 + }, +/obj/effect/spawner/random/clothing/mafia_outfit, +/obj/effect/spawner/random/clothing/mafia_outfit, +/obj/effect/spawner/random/clothing/backpack, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "mnC" = ( /obj/structure/grille, /obj/structure/disposalpipe/segment{ @@ -43273,19 +43405,13 @@ /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/closed/wall/r_wall, /area/station/maintenance/disposal/incinerator) -"msQ" = ( -/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ - pixel_y = 0; - dir = 8 - }, -/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 +"msP" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 }, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/storage/mining) "msT" = ( /obj/structure/extinguisher_cabinet/directional/south, /obj/machinery/atmospherics/components/binary/valve/digital/on{ @@ -43296,6 +43422,29 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/storage) +"mta" = ( +/obj/structure/rack, +/obj/item/lighter, +/obj/item/clothing/glasses/meson{ + pixel_y = 4 + }, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/computer_disk/engineering{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/computer_disk/engineering{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/computer_disk/engineering{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/reagent_containers/pill/patch/aiuri, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) "mtn" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -43318,9 +43467,53 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/laborcamp) +"mty" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/item/seeds/tower, +/obj/item/seeds/chanter{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/seeds/watermelon{ + pixel_x = 3; + pixel_y = -6 + }, +/obj/item/seeds/apple{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/seeds/banana, +/obj/item/seeds/rose{ + pixel_x = -4; + pixel_y = -3 + }, +/obj/structure/noticeboard/directional/west, +/obj/item/paper/guides/jobs/hydroponics{ + pixel_x = -27; + pixel_y = 3 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "mtI" = ( /turf/closed/wall, /area/station/science/robotics/lab) +"mtS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/status_display/door_timer{ + id = "Cell 2"; + name = "Cell 2"; + pixel_x = -32 + }, +/turf/open/floor/iron/textured, +/area/station/security/brig) "mtV" = ( /obj/effect/turf_decal/tile/brown/half/contrasted, /obj/machinery/door/firedoor/border_only{ @@ -43561,10 +43754,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/cmo) -"myz" = ( -/obj/machinery/status_display/ai/directional/north, -/turf/open/openspace, -/area/station/engineering/storage/tech) "myE" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -43734,23 +43923,6 @@ "mAe" = ( /turf/open/floor/glass/reinforced, /area/station/security/lockers) -"mAf" = ( -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/structure/table/glass, -/obj/item/book/manual/hydroponics_pod_people, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/structure/sign/poster/contraband/kudzu/directional/north, -/obj/machinery/light/small/directional/west, -/obj/item/plant_analyzer, -/obj/item/watertank{ - pixel_x = -5; - pixel_y = -3 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "mAn" = ( /obj/effect/spawner/random/trash, /obj/structure/grille/broken, @@ -43907,20 +44079,6 @@ /obj/effect/turf_decal/bot_white, /turf/open/floor/iron/dark, /area/station/medical/morgue) -"mCm" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark/side{ - dir = 8 - }, -/area/station/commons/storage/mining) "mCw" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/hatch{ @@ -43999,23 +44157,17 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"mDJ" = ( -/obj/machinery/door/poddoor/preopen{ - dir = 4; - id = "bridge blast"; - name = "Bridge Blast Door" - }, -/obj/effect/turf_decal/delivery, -/obj/structure/sign/warning/secure_area/directional/north, -/obj/machinery/door/firedoor{ - dir = 8 - }, -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/turf/open/floor/iron/dark/textured, -/area/station/command/bridge) "mDX" = ( /turf/open/floor/engine/n2, /area/station/engineering/atmos) +"mEb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/button/flasher{ + id = "GulagCell 3"; + pixel_y = -30 + }, +/turf/open/floor/iron, +/area/mine/laborcamp) "mEg" = ( /obj/structure/cable, /obj/machinery/holopad/secure, @@ -44208,15 +44360,6 @@ /obj/structure/lattice/catwalk, /turf/open/openspace/icemoon, /area/station/science/server) -"mGv" = ( -/obj/structure/table, -/obj/item/stock_parts/subspace/filter, -/obj/item/stock_parts/subspace/filter, -/obj/item/stock_parts/subspace/filter, -/obj/item/stock_parts/subspace/filter, -/obj/item/stock_parts/subspace/filter, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "mGH" = ( /obj/structure/railing{ dir = 4 @@ -44236,6 +44379,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"mHa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/sign/clock/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) "mHd" = ( /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, @@ -44254,19 +44405,6 @@ /obj/machinery/brm, /turf/open/floor/iron, /area/mine/production) -"mHm" = ( -/obj/machinery/door/poddoor/preopen{ - dir = 4; - id = "bridge blast"; - name = "Bridge Blast Door" - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/firedoor{ - dir = 8 - }, -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/turf/open/floor/iron/dark/textured, -/area/station/command/bridge) "mHq" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -44303,6 +44441,19 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"mIc" = ( +/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ + pixel_y = 0; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "mIe" = ( /obj/structure/railing{ dir = 8 @@ -44341,6 +44492,12 @@ /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"mIH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/iron, +/area/station/commons/storage/mining) "mII" = ( /obj/machinery/door/airlock/maintenance{ name = "Research Delivery Access" @@ -44366,12 +44523,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"mJk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "mJq" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -44382,15 +44533,9 @@ dir = 4 }, /area/station/service/chapel) -"mJy" = ( -/obj/structure/cable/multilayer/multiz, -/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4, -/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/engineering/storage/tech) +"mJz" = ( +/turf/open/floor/iron/dark, +/area/icemoon/underground/explored) "mJM" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 @@ -44479,6 +44624,9 @@ /obj/structure/sign/poster/contraband/kudzu/directional/north, /turf/open/floor/iron, /area/station/service/hydroponics/garden) +"mLf" = ( +/turf/open/openspace/icemoon/keep_below, +/area/icemoon/underground/unexplored/rivers/deep/shoreline) "mLm" = ( /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ @@ -44504,18 +44652,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) -"mLN" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad2" - }, -/obj/machinery/door/poddoor{ - dir = 4; - id = "QMLoaddoor2"; - name = "Supply Dock Loading Door" - }, -/turf/open/floor/plating, -/area/station/cargo/storage) "mLO" = ( /obj/machinery/camera/directional/west{ c_tag = "Xenobiology Pens - Port Aft"; @@ -44898,9 +45034,6 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"mTd" = ( -/turf/open/misc/asteroid/snow/icemoon, -/area/station/cargo/miningdock) "mTh" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/turf_decal/tile/yellow/anticorner/contrasted, @@ -44926,6 +45059,10 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"mUh" = ( +/obj/effect/spawner/random/structure/closet_private, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "mUs" = ( /obj/machinery/light/directional/south, /turf/open/floor/plating, @@ -44943,41 +45080,34 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"mUK" = ( -/obj/machinery/pdapainter/engineering, -/obj/effect/turf_decal/tile/neutral/full, -/obj/machinery/button/door/directional/west{ - id = "Engineering"; - name = "Engineering Lockdown Control"; - pixel_y = -8; - req_access = list("engineering") - }, -/obj/machinery/button/door/directional/west{ - id = "engstorage"; - name = "Engineering Secure Storage Control"; - pixel_x = -36; - pixel_y = 4; - req_access = list("engine_equip") - }, -/obj/machinery/button/door/directional/west{ - id = "atmos"; - name = "Atmospherics Lockdown Control"; - pixel_y = 4; - req_access = list("atmospherics") +"mVi" = ( +/obj/structure/railing{ + dir = 4 }, -/obj/machinery/button/door/directional/west{ - id = "ceprivacy"; - name = "Privacy Shutter Control"; - pixel_x = -36; - pixel_y = -8; - req_access = list("engineering") +/obj/machinery/door/window/brigdoor/right/directional/south{ + name = "Secure Tech Storage"; + req_access = list("command"); + desc = "Contains the highest security circuitry on the station. Unless you count the AI." }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/heads_quarters/ce) +/turf/open/floor/iron/dark/textured, +/area/station/engineering/storage/tech) "mVp" = ( /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_dark, /area/station/ai_monitored/turret_protected/ai_upload) +"mVw" = ( +/obj/machinery/requests_console/directional/west{ + department = "Captain's Desk"; + name = "Captain's Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/announcement, +/obj/effect/mapping_helpers/requests_console/information, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/machinery/computer/communications{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) "mVD" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/cable, @@ -44997,29 +45127,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/hallway/secondary/entry) -"mVH" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 6 - }, -/obj/structure/table/glass, -/obj/machinery/light/small/directional/east, -/obj/machinery/firealarm/directional/east, -/obj/item/food/grown/poppy{ - pixel_x = 3; - pixel_y = -1 - }, -/obj/item/food/grown/poppy/geranium{ - pixel_x = 2; - pixel_y = 5 - }, -/obj/item/food/grown/poppy/lily{ - pixel_x = -2 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "mVN" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/broken/directional/north, @@ -45608,6 +45715,16 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/commons/locker) +"ncu" = ( +/obj/structure/table, +/obj/item/stock_parts/subspace/ansible, +/obj/item/stock_parts/subspace/ansible, +/obj/item/stock_parts/subspace/ansible, +/obj/item/stock_parts/subspace/crystal, +/obj/item/stock_parts/subspace/crystal, +/obj/item/stock_parts/subspace/crystal, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "ncB" = ( /obj/machinery/door/airlock/security/glass{ name = "Brig Walkway" @@ -45647,6 +45764,12 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/maintenance/disposal) +"ndv" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/machinery/light/warm/directional/north, +/obj/structure/fish_mount/bar/directional/north, +/turf/open/floor/iron, +/area/station/service/bar) "ndz" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -45824,6 +45947,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"nfS" = ( +/obj/machinery/door/morgue{ + dir = 4; + name = "Confession Booth (Chaplain)"; + req_access = list("chapel_office") + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/station/service/chapel) "nfU" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -45858,6 +45992,12 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/mine/production) +"ngn" = ( +/obj/effect/spawner/random/structure/closet_empty/crate, +/obj/effect/turf_decal/stripes/line, +/obj/effect/spawner/random/maintenance/no_decals/two, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "ngo" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 8; @@ -45985,6 +46125,17 @@ /obj/effect/spawner/structure/window/hollow/reinforced/middle, /turf/open/floor/plating, /area/mine/eva/lower) +"niO" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/machinery/reagentgrinder{ + pixel_x = 4; + pixel_y = 9 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "niU" = ( /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment, @@ -46118,6 +46269,10 @@ }, /turf/open/floor/iron, /area/station/security/brig/upper) +"nlv" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/commons/storage/mining) "nlJ" = ( /obj/structure/railing{ dir = 5 @@ -46320,16 +46475,6 @@ /obj/machinery/holopad, /turf/open/floor/carpet, /area/station/command/heads_quarters/hop) -"nnV" = ( -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/structure/sign/warning/electric_shock/directional/north, -/turf/open/floor/iron/dark/corner{ - dir = 1 - }, -/area/station/hallway/primary/central) "nof" = ( /obj/machinery/newscaster/directional/east, /turf/open/floor/stone, @@ -46389,6 +46534,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/atmos/storage) +"noT" = ( +/obj/effect/spawner/random/trash/bin, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/commons/storage/mining) "noW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -46549,6 +46702,12 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"nqx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/storage/mining) "nqD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -46579,6 +46738,12 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"nrB" = ( +/obj/structure/rack, +/obj/effect/spawner/random/techstorage/service_all, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/large, +/area/station/engineering/storage/tech) "nrC" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 6 @@ -46673,6 +46838,11 @@ dir = 1 }, /area/station/security/processing) +"nsM" = ( +/obj/machinery/light/small/directional/west, +/obj/structure/sign/warning/directional/west, +/turf/open/openspace, +/area/station/commons/storage/mining) "nsO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/textured, @@ -46696,12 +46866,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) -"ntk" = ( -/obj/machinery/airalarm/directional/south, -/obj/effect/spawner/random/vending/snackvend, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/central) "ntl" = ( /turf/closed/wall/r_wall, /area/station/service/lawoffice) @@ -46753,6 +46917,13 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/wood, /area/station/security/courtroom) +"nua" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "nub" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/event_spawn, @@ -46834,6 +47005,22 @@ /obj/item/pen, /turf/open/floor/iron, /area/station/cargo/miningdock) +"nvy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Cargo Warehouse External Airlock"; + opacity = 0 + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/mining_station, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "cargo-warehouse-external" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "nvB" = ( /obj/structure/fence/door{ dir = 4 @@ -46929,6 +47116,10 @@ }, /turf/open/floor/iron, /area/station/security/prison/mess) +"nwO" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/middle, +/turf/open/floor/plating, +/area/station/commons/storage/mining) "nwT" = ( /turf/closed/wall, /area/station/commons/vacant_room/office) @@ -46945,19 +47136,18 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"nxi" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/commons/storage/mining) "nxm" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/solars/port/aft) -"nxo" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/icemoon, -/area/station/science/ordnance/bomb/planet) "nxD" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -47037,6 +47227,11 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"nys" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/computer/mech_bay_power_console, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "nyA" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ dir = 4 @@ -47230,17 +47425,6 @@ /obj/structure/lattice/catwalk, /turf/open/openspace/icemoon/keep_below, /area/station/maintenance/port/lesser) -"nAh" = ( -/obj/structure/table, -/obj/effect/turf_decal/siding/white{ - dir = 6 - }, -/obj/machinery/reagentgrinder{ - pixel_x = 4; - pixel_y = 9 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) "nAr" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating, @@ -47287,10 +47471,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/break_room) -"nAR" = ( -/obj/effect/turf_decal/tile/brown, -/turf/open/floor/iron, -/area/station/commons/storage/mining) "nAX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47325,6 +47505,11 @@ "nBk" = ( /turf/open/floor/plating, /area/station/engineering/storage/tech) +"nBl" = ( +/obj/machinery/light/directional/south, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "nBo" = ( /obj/effect/landmark/start/ai/secondary, /obj/item/radio/intercom/directional/north{ @@ -47425,6 +47610,16 @@ }, /turf/open/floor/iron, /area/station/security/brig/upper) +"nCn" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/caution{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/mining) "nCs" = ( /obj/structure/chair/stool/directional/north, /obj/structure/cable, @@ -47719,6 +47914,21 @@ /obj/machinery/vending/games, /turf/open/floor/iron/dark/textured, /area/station/security/prison) +"nGv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/table, +/obj/item/paper_bin/construction, +/obj/item/storage/crayons{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "nGA" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -47824,33 +48034,20 @@ }, /turf/open/floor/iron/white, /area/station/science/robotics/lab) +"nIu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/commons/storage/mining) "nIx" = ( /turf/closed/wall/r_wall, /area/station/maintenance/solars/starboard/aft) -"nIX" = ( -/obj/structure/cable/multilayer/multiz, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/station/commons/storage/mining) "nJd" = ( /obj/structure/grille, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"nJh" = ( -/obj/structure/sign/warning/cold_temp/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/mining) "nJo" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -48035,12 +48232,6 @@ /obj/machinery/light/floor, /turf/open/floor/iron/white, /area/station/medical/virology) -"nLw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/structure/closet_empty/crate, -/obj/effect/spawner/random/maintenance/no_decals/two, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "nLB" = ( /obj/structure/sign/nanotrasen{ pixel_y = 32 @@ -48058,23 +48249,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/station/command/teleporter) -"nLV" = ( -/obj/machinery/door/firedoor{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/machinery/door/airlock/public/glass{ - dir = 4; - name = "Central Access" - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) "nLW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -48177,22 +48351,6 @@ }, /turf/open/floor/wood, /area/station/service/library) -"nMU" = ( -/obj/structure/chair, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/icemoon, -/area/station/science/ordnance/bomb/planet) -"nMV" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/obj/effect/landmark/start/captain, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/carpet/royalblue, -/area/station/command/heads_quarters/captain) "nNe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -48249,12 +48407,6 @@ /obj/structure/railing/corner, /turf/open/floor/iron, /area/station/cargo/storage) -"nNz" = ( -/obj/structure/rack, -/obj/effect/spawner/random/techstorage/service_all, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/large, -/area/station/engineering/storage/tech) "nNB" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 9 @@ -48270,6 +48422,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"nNZ" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2" + }, +/obj/machinery/door/poddoor{ + dir = 4; + id = "QMLoaddoor2"; + name = "Supply Dock Loading Door" + }, +/turf/open/floor/plating, +/area/station/cargo/storage) "nOa" = ( /obj/structure/railing/corner{ dir = 4 @@ -48320,19 +48484,6 @@ /obj/item/pillow/random, /turf/open/floor/carpet, /area/station/commons/dorms) -"nOn" = ( -/turf/open/floor/glass/reinforced, -/area/station/engineering/storage/tech) -"nOw" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/caution{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/mining) "nOx" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -48353,6 +48504,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/command/bridge) +"nON" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "nOQ" = ( /obj/machinery/suit_storage_unit/security, /obj/machinery/camera/directional/north{ @@ -48367,6 +48525,11 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) +"nOY" = ( +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "nPc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -48527,6 +48690,17 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"nRa" = ( +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/generic, +/obj/effect/decal/cleanable/plasma, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/commons/storage/mining) "nRc" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 8 @@ -48554,6 +48728,17 @@ /obj/machinery/light/floor, /turf/open/floor/iron, /area/station/security/brig/upper) +"nRn" = ( +/obj/machinery/door/window/left/directional/south{ + name = "The Ice Box"; + req_access = list("kitchen") + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "nRq" = ( /obj/structure/closet/crate, /obj/effect/spawner/random/bureaucracy/birthday_wrap, @@ -48694,14 +48879,15 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"nSY" = ( -/obj/structure/fence{ - dir = 2; - pixel_y = 0 +"nTe" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 }, -/obj/structure/sign/warning/directional/south, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/hallway/primary/central) "nTp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -48839,13 +49025,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/science/robotics/lab) -"nVJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "nVR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/cafeteria{ @@ -48864,28 +49043,6 @@ /obj/item/plate, /turf/open/floor/iron/checker, /area/station/maintenance/port/fore) -"nWh" = ( -/obj/item/clothing/glasses/meson, -/obj/item/storage/bag/ore, -/obj/item/pickaxe, -/obj/item/mining_scanner, -/obj/item/flashlight, -/obj/item/clothing/suit/hooded/wintercoat, -/obj/item/gps/mining, -/obj/machinery/light/small/directional/east, -/obj/structure/rack, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/iron/textured_large, -/area/station/commons/storage/mining) -"nWm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/siding/dark_blue{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) "nWn" = ( /obj/structure/tank_holder/extinguisher, /obj/effect/mapping_helpers/burnt_floor, @@ -48895,6 +49052,15 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"nWy" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/storage/mining) "nWG" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -48989,12 +49155,6 @@ /obj/structure/flora/rock/pile/icy/style_random, /turf/open/misc/asteroid/snow/coldroom, /area/icemoon/underground/explored) -"nYF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/icemoon, -/area/station/science/ordnance/bomb/planet) "nYZ" = ( /obj/item/storage/bag/trash, /turf/open/floor/plating, @@ -49029,12 +49189,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/checkpoint/supply) -"nZs" = ( -/obj/structure/ore_box, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/bot_red, -/turf/open/floor/iron/dark, -/area/station/commons/storage/mining) "nZC" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -49086,9 +49240,6 @@ dir = 1 }, /area/station/security/prison) -"oaD" = ( -/turf/closed/wall, -/area/station/science/ordnance/bomb/planet) "oaG" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 9 @@ -49151,6 +49302,12 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) +"obc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) "obe" = ( /obj/structure/fence/corner{ dir = 4 @@ -49264,18 +49421,6 @@ }, /turf/open/floor/iron/dark/smooth_half, /area/station/service/hydroponics) -"obY" = ( -/obj/machinery/door/airlock/external{ - dir = 4; - name = "Graveyard Access" - }, -/obj/effect/mapping_helpers/airlock/access/all/medical/coroner, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/medical/morgue) "obZ" = ( /obj/machinery/camera/directional/east{ c_tag = "Xenobiology Test Chamber Access"; @@ -49399,13 +49544,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/cmo) -"oeS" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/item/kirbyplants/photosynthetic, -/obj/effect/turf_decal/box/white, -/turf/open/floor/iron/dark/smooth_large, -/area/station/engineering/storage/tech) "oeT" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 4 @@ -49561,10 +49699,6 @@ /obj/structure/sign/departments/medbay/alt/directional/north, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"ohn" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/station/cargo/miningdock) "ohp" = ( /turf/open/floor/glass, /area/station/maintenance/department/medical/central) @@ -49636,6 +49770,11 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/electrical) +"oii" = ( +/obj/structure/cable, +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/captain) "oik" = ( /obj/structure/closet/emcloset, /obj/machinery/airalarm/directional/west, @@ -49790,11 +49929,6 @@ }, /turf/open/floor/iron/dark, /area/station/service/hydroponics) -"ojz" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "ojF" = ( /obj/machinery/rnd/production/protolathe/department/science, /turf/open/floor/iron/checker, @@ -49884,11 +50018,13 @@ "olf" = ( /turf/open/floor/carpet, /area/station/commons/dorms) -"olo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/commons/storage/mining) +"olG" = ( +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/meeting_room) "olI" = ( /obj/structure/table/glass, /obj/item/book/manual/wiki/medicine{ @@ -49917,16 +50053,6 @@ /obj/machinery/light/dim/directional/north, /turf/open/floor/circuit, /area/station/ai_monitored/command/nuke_storage) -"olR" = ( -/obj/structure/rack, -/obj/item/wrench, -/obj/item/crowbar, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/random/engineering/flashlight, -/turf/open/floor/iron/smooth, -/area/station/maintenance/starboard/lesser) "olV" = ( /obj/machinery/light/small/directional/west, /obj/structure/cable, @@ -50000,18 +50126,6 @@ }, /turf/open/floor/plating, /area/station/security/prison/safe) -"omQ" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "QMLoad" - }, -/obj/machinery/door/poddoor{ - dir = 4; - id = "QMLoaddoor"; - name = "Supply Dock Loading Door" - }, -/turf/open/floor/plating, -/area/station/cargo/storage) "omT" = ( /obj/structure/table, /obj/machinery/cell_charger, @@ -50038,6 +50152,13 @@ dir = 9 }, /area/station/science/research) +"onk" = ( +/obj/structure/chair, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/icemoon, +/area/station/science/ordnance/bomb/planet) "ons" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -50369,23 +50490,6 @@ /obj/effect/spawner/random/structure/closet_private, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"ore" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 5 - }, -/obj/machinery/camera/directional/north{ - c_tag = "Virology Hallway"; - network = list("ss13","medbay") - }, -/obj/machinery/door_buttons/access_button{ - idDoor = "virology_airlock_exterior"; - idSelf = "virology_airlock_control"; - name = "Virology Access Button"; - pixel_x = 35; - req_access = list("virology") - }, -/turf/open/floor/iron/white, -/area/station/medical/virology) "orq" = ( /obj/machinery/light/small/directional/west, /obj/machinery/button/door/directional/south{ @@ -50435,23 +50539,28 @@ dir = 4 }, /area/station/medical/chem_storage) -"orK" = ( -/turf/open/floor/iron/grimy, -/area/station/ai_monitored/turret_protected/aisat_interior) -"orN" = ( -/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ - pixel_y = 0; - dir = 8 +"orG" = ( +/obj/structure/sign/nanotrasen{ + pixel_y = 32 }, -/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ - dir = 8 +/obj/structure/table, +/obj/item/assembly/igniter{ + pixel_y = 4; + pixel_x = -2 }, -/obj/structure/cable/multilayer/multiz, -/obj/effect/turf_decal/stripes/line{ - dir = 10 +/obj/item/assembly/igniter/condenser, +/obj/item/assembly/infra{ + pixel_y = 0; + pixel_x = 5 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/dark_blue/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark, /area/station/engineering/storage/tech) +"orK" = ( +/turf/open/floor/iron/grimy, +/area/station/ai_monitored/turret_protected/aisat_interior) "orS" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 10 @@ -50508,22 +50617,6 @@ /obj/machinery/duct, /turf/open/floor/iron/white, /area/station/medical/virology) -"osu" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/camera/directional/north{ - c_tag = "Morgue North"; - network = list("ss13","medbay") - }, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/trimline/neutral/filled/end{ - dir = 8 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "osI" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/purple/visible, @@ -50579,6 +50672,14 @@ /obj/item/healthanalyzer, /turf/open/floor/iron/white/textured, /area/station/security/medical) +"otA" = ( +/obj/machinery/door/window/left/directional/north{ + name = "Public Mining" + }, +/turf/open/floor/iron/stairs/medium{ + dir = 1 + }, +/area/station/commons/storage/mining) "otG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/blue{ @@ -50675,6 +50776,16 @@ /obj/machinery/portable_atmospherics/canister, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"ouU" = ( +/obj/machinery/door/airlock/external{ + dir = 4; + name = "External Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) "ouW" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/musician/piano/random_piano, @@ -50689,15 +50800,6 @@ }, /turf/open/floor/iron/white, /area/station/science/genetics) -"ovg" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/window{ - dir = 8; - id = "dontdeadopeninside"; - name = "Shutters" - }, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "ovm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -50765,17 +50867,16 @@ /obj/machinery/newscaster/directional/east, /turf/open/floor/iron, /area/station/security/prison/workout) -"owi" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/light_construct/directional/east, -/turf/open/floor/iron, -/area/station/construction) "owk" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted{ dir = 8 }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/customs/auxiliary) +"owl" = ( +/obj/structure/closet/cardboard, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "owr" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -50807,13 +50908,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) -"owP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "oxh" = ( /obj/machinery/light/directional/south, /obj/effect/decal/cleanable/dirt, @@ -50946,13 +51040,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/maintenance/aft/lesser) -"oyG" = ( -/obj/machinery/holopad/secure, -/obj/effect/turf_decal/bot, -/obj/effect/landmark/event_spawn, -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron/large, -/area/station/engineering/storage/tech) "oyH" = ( /obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/plating, @@ -51073,6 +51160,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/chapel) +"ozW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "ozX" = ( /obj/machinery/hydroponics/soil, /turf/open/floor/grass, @@ -51093,11 +51188,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"oAg" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/station/construction) "oAh" = ( /turf/open/floor/glass/reinforced, /area/station/security/brig/entrance) @@ -51221,11 +51311,15 @@ }, /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) -"oBF" = ( -/obj/effect/spawner/random/trash/moisture_trap, -/obj/structure/sign/poster/contraband/random/directional/east, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) +"oBD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/cup/bucket{ + pixel_x = -4; + pixel_y = 10 + }, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "oBI" = ( /obj/machinery/light/floor, /turf/open/floor/carpet, @@ -51331,6 +51425,17 @@ dir = 1 }, /area/station/security/prison) +"oDb" = ( +/obj/item/popsicle_stick{ + pixel_x = -9; + pixel_y = 1 + }, +/obj/item/popsicle_stick{ + pixel_x = -2; + pixel_y = 3 + }, +/turf/open/misc/asteroid/snow/coldroom, +/area/icemoon/underground/explored) "oDg" = ( /obj/structure/chair/stool/directional/west, /obj/effect/decal/cleanable/dirt, @@ -51380,6 +51485,22 @@ }, /turf/open/floor/iron, /area/station/cargo/office) +"oDw" = ( +/obj/structure/table, +/obj/item/petri_dish{ + pixel_x = -5; + pixel_y = 15 + }, +/obj/item/petri_dish{ + pixel_x = 6; + pixel_y = 10 + }, +/obj/item/petri_dish{ + pixel_x = -1; + pixel_y = -6 + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "oDB" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/plating, @@ -51506,10 +51627,6 @@ /obj/effect/turf_decal/stripes/end, /turf/open/floor/iron/dark/textured, /area/station/medical/medbay/aft) -"oEJ" = ( -/obj/structure/railing/corner, -/turf/open/floor/iron/dark/textured, -/area/station/engineering/storage/tech) "oEX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -51528,20 +51645,6 @@ /obj/machinery/meter, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"oFk" = ( -/obj/structure/table, -/obj/item/assembly/timer, -/obj/item/assembly/timer{ - pixel_x = 3; - pixel_y = 2 - }, -/obj/structure/sign/warning/secure_area/directional/west, -/obj/item/assembly/prox_sensor{ - pixel_y = 16; - pixel_x = -2 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "oFl" = ( /obj/machinery/light/small/dim/directional/west, /obj/structure/sign/warning/cold_temp/directional/west, @@ -51605,6 +51708,16 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/smooth_large, /area/station/science/cytology) +"oGl" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding/brown{ + dir = 4 + }, +/obj/item/climbing_hook/emergency{ + pixel_y = 12 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/mining) "oGm" = ( /obj/machinery/power/solar_control{ dir = 1; @@ -51786,6 +51899,9 @@ /obj/item/kirbyplants/organic/plant11, /turf/open/floor/stone, /area/station/service/bar/atrium) +"oIr" = ( +/turf/open/floor/glass/reinforced, +/area/station/engineering/storage/tech) "oIt" = ( /obj/structure/sign/departments/cargo/directional/west, /turf/open/floor/plating/snowed/smoothed/icemoon, @@ -51797,6 +51913,11 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors/labor_camp) +"oIy" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "oIB" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -51824,16 +51945,6 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/general, /turf/open/floor/iron, /area/station/cargo/storage) -"oII" = ( -/obj/effect/spawner/random/vending/snackvend, -/obj/structure/sign/nanotrasen{ - pixel_x = 32 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/command/meeting_room) "oIJ" = ( /obj/effect/landmark/start/medical_doctor, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -51854,13 +51965,6 @@ /obj/effect/spawner/random/maintenance/four, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"oJi" = ( -/obj/structure/extinguisher_cabinet/directional/west, -/obj/structure/table, -/obj/effect/spawner/random/engineering/tracking_beacon, -/obj/machinery/newscaster/directional/north, -/turf/open/floor/iron, -/area/station/command/teleporter) "oJk" = ( /obj/structure/railing/corner, /obj/effect/turf_decal/tile/brown, @@ -52088,12 +52192,6 @@ "oMT" = ( /turf/open/floor/iron, /area/station/command/heads_quarters/rd) -"oMW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/iron, -/area/station/service/janitor) "oNA" = ( /obj/effect/turf_decal/bot, /turf/open/floor/plating/snowed/smoothed/icemoon, @@ -52166,6 +52264,12 @@ /obj/machinery/status_display/evac/directional/west, /turf/open/floor/iron/white, /area/station/science/research) +"oOt" = ( +/obj/item/kirbyplants/photosynthetic, +/obj/effect/turf_decal/box/white, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/storage/tech) "oOw" = ( /obj/effect/spawner/random/trash/moisture_trap, /obj/effect/decal/cleanable/dirt/dust, @@ -52203,15 +52307,6 @@ /obj/effect/turf_decal/tile/brown/half/contrasted, /turf/open/floor/iron/dark/side, /area/mine/eva) -"oPh" = ( -/obj/structure/railing{ - dir = 10 - }, -/obj/structure/table, -/obj/effect/spawner/random/trash/janitor_supplies, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "oPl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -52402,11 +52497,17 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/security/lockers) -"oSD" = ( -/obj/effect/spawner/random/trash/grille_or_waste, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/mining) +"oSK" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external/glass{ + dir = 4; + name = "Supply Door Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/turf/open/floor/plating, +/area/station/cargo/storage) "oSR" = ( /obj/machinery/door/firedoor, /obj/structure/cable, @@ -52468,6 +52569,16 @@ /obj/structure/sign/warning/cold_temp/directional/east, /turf/open/floor/plating, /area/mine/mechbay) +"oTr" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 1 + }, +/obj/machinery/light/small/directional/west, +/obj/machinery/status_display/ai/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/commons/storage/mining) "oTu" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/green{ @@ -52475,12 +52586,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"oTx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/maintenance/starboard/lesser) "oTA" = ( /turf/open/floor/iron/dark, /area/station/service/chapel) @@ -52565,21 +52670,22 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/freezer, /area/station/commons/toilet) -"oVa" = ( -/obj/structure/stairs/south{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/stairs/medium{ - dir = 4 - }, -/area/station/engineering/storage/tech) "oVt" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/construction) +"oVu" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "oVy" = ( /obj/machinery/door/airlock/security{ name = "Permabrig Lab" @@ -52774,11 +52880,6 @@ dir = 1 }, /area/station/hallway/primary/starboard) -"oXM" = ( -/obj/machinery/space_heater, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/station/commons/storage/mining) "oXX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -52843,6 +52944,22 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"oZi" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) +"oZk" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/icemoon, +/area/station/science/ordnance/bomb/planet) "oZn" = ( /obj/structure/cable, /obj/effect/turf_decal/stripes/line{ @@ -52872,15 +52989,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"oZQ" = ( -/obj/structure/table/wood/poker, -/obj/item/toy/cards/deck{ - pixel_x = 6; - pixel_y = 13 - }, -/obj/effect/spawner/random/entertainment/cigarette, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "oZR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -52917,14 +53025,6 @@ /obj/structure/sign/warning/electric_shock/directional/north, /turf/open/openspace/icemoon/keep_below, /area/icemoon/underground/explored) -"paD" = ( -/obj/machinery/airalarm/directional/west, -/obj/machinery/computer/station_alert/station_only{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat_interior) "paF" = ( /obj/structure/table, /obj/item/clothing/suit/hooded/wintercoat/science, @@ -53321,6 +53421,19 @@ initial_gas_mix = "ICEMOON_ATMOS" }, /area/icemoon/underground/explored) +"pgp" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/multitool, +/obj/item/clothing/glasses/meson, +/obj/machinery/requests_console/auto_name/directional/west, +/obj/effect/turf_decal/bot, +/obj/machinery/light/cold/directional/west, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/storage/tech) "pgq" = ( /obj/machinery/light_switch/directional/west, /obj/effect/decal/cleanable/cobweb, @@ -53403,6 +53516,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/break_room) +"phk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/maintenance/port/aft) "phr" = ( /obj/machinery/door/airlock/hydroponics/glass{ name = "Hydroponics" @@ -53648,6 +53766,13 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) +"pks" = ( +/obj/machinery/vending/wardrobe/jani_wardrobe, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/janitor) "pkz" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 9 @@ -53701,6 +53826,10 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, /area/station/maintenance/port/greater) +"pls" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/commons/storage/mining) "plI" = ( /obj/structure/chair/stool, /turf/open/floor/plating, @@ -53762,14 +53891,6 @@ /obj/machinery/light/small/red/directional/north, /turf/open/floor/plating/snowed/coldroom, /area/icemoon/underground/explored) -"pmY" = ( -/obj/machinery/computer/security/telescreen/entertainment/directional/north, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/carpet/royalblue, -/area/station/command/heads_quarters/captain) "pna" = ( /obj/machinery/door/poddoor/preopen{ id = "Engineering"; @@ -53815,6 +53936,12 @@ }, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) +"pny" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain) "pnA" = ( /obj/machinery/airalarm/directional/north, /obj/structure/rack, @@ -53854,16 +53981,6 @@ /obj/machinery/portable_atmospherics/canister/nitrous_oxide, /turf/open/floor/plating, /area/station/maintenance/fore) -"pnZ" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/brown/half{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/half{ - dir = 1 - }, -/area/station/commons/storage/mining) "poc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -53882,26 +53999,6 @@ /obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/iron/dark/textured, /area/station/security/execution/transfer) -"poo" = ( -/obj/machinery/door/firedoor{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/machinery/door/airlock/public/glass{ - dir = 4; - name = "Central Access" - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) "pou" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, @@ -54024,14 +54121,6 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"ppP" = ( -/obj/structure/marker_beacon/burgundy{ - name = "landing marker" - }, -/obj/effect/mapping_helpers/no_atoms_ontop, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) "ppQ" = ( /obj/structure/table, /obj/item/clothing/gloves/latex, @@ -54096,6 +54185,15 @@ "prg" = ( /turf/open/floor/wood, /area/station/service/library) +"prh" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/mail_sorting/service/janitor_closet, +/obj/effect/turf_decal/tile/purple/half/contrasted, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "prs" = ( /obj/docking_port/stationary{ dir = 8; @@ -54123,10 +54221,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/xenobiology) -"prX" = ( -/obj/machinery/light/cold/directional/east, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "psb" = ( /turf/closed/wall/ice, /area/icemoon/underground/explored) @@ -54378,6 +54472,17 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/mine/eva) +"pvg" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Aft Primary Hallway North" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) "pvh" = ( /obj/item/clothing/glasses/meson, /obj/item/flashlight, @@ -54476,23 +54581,13 @@ /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"pwl" = ( -/obj/structure/sign/poster/official/random/directional/south, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/item/stack/package_wrap/small, -/obj/item/wrench, -/obj/item/stack/cable_coil, -/obj/item/screwdriver, -/obj/structure/closet/crate/nakamura{ - welded = 1 - }, -/obj/structure/flatpack_cart, -/obj/effect/spawner/random/maintenance/no_decals/three, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) +"pwi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/construction) "pwn" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -54517,10 +54612,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/station/maintenance/department/chapel) -"pwE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/large, -/area/station/commons/storage/mining) "pwF" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -54570,15 +54661,6 @@ /obj/structure/closet/emcloset, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"pxE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/turf_decal/siding/dark_blue/corner{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "pxL" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -54691,6 +54773,13 @@ /obj/effect/landmark/start/station_engineer, /turf/open/floor/iron, /area/station/engineering/storage_shared) +"pyR" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/spawner/random/structure/crate_abandoned, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "pyY" = ( /obj/machinery/status_display/evac/directional/south, /turf/open/openspace, @@ -54713,13 +54802,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/atmos) -"pzm" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 4 +"pzl" = ( +/obj/structure/rack, +/obj/effect/turf_decal/tile/dark_blue/full, +/obj/effect/spawner/random/techstorage/ai_all, +/obj/machinery/camera/directional/west{ + c_tag = "Secure Tech Storage" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/commons/storage/mining) +/obj/effect/turf_decal/siding/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/storage/tech) "pzn" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ dir = 4 @@ -54907,6 +55001,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"pCp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/button/flasher{ + id = "visitorflash"; + pixel_y = -26 + }, +/turf/open/floor/iron, +/area/station/security/prison/visit) "pCE" = ( /obj/machinery/firealarm/directional/east, /obj/structure/filingcabinet, @@ -54932,17 +55034,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/mine/eva) -"pCV" = ( -/obj/structure/table/glass, -/obj/item/seeds/glowshroom, -/obj/item/seeds/bamboo{ - pixel_x = 4; - pixel_y = 3 - }, -/obj/machinery/newscaster/directional/east, -/obj/structure/sign/poster/contraband/kudzu/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "pDe" = ( /obj/structure/closet/secure_closet/personal{ anchored = 1 @@ -55233,6 +55324,11 @@ }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) +"pHr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/plating, +/area/station/construction) "pHy" = ( /obj/structure/rack, /obj/item/clothing/mask/breath, @@ -55327,6 +55423,16 @@ dir = 4 }, /area/station/science/explab) +"pJi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/flashlight{ + pixel_x = -4; + pixel_y = 3 + }, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) "pJm" = ( /obj/structure/fence{ dir = 2 @@ -55430,6 +55536,10 @@ }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) +"pKD" = ( +/obj/effect/spawner/random/trash/grille_or_waste, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/mining) "pKJ" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -55449,6 +55559,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"pKW" = ( +/obj/structure/fence/corner{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/unexplored/rivers/deep/shoreline) "pKX" = ( /obj/structure/railing, /obj/structure/closet, @@ -55694,19 +55810,6 @@ "pOL" = ( /turf/open/floor/iron/white, /area/station/science/ordnance) -"pOU" = ( -/obj/item/clothing/accessory/pocketprotector, -/obj/structure/closet/secure_closet/personal/cabinet, -/obj/item/camera{ - pixel_x = -3; - pixel_y = 4 - }, -/obj/effect/spawner/random/clothing/mafia_outfit, -/obj/effect/spawner/random/clothing/mafia_outfit, -/obj/effect/spawner/random/clothing/backpack, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "pOV" = ( /obj/structure/rack, /obj/item/clothing/suit/hazardvest, @@ -55720,6 +55823,10 @@ dir = 4 }, /area/station/service/hydroponics) +"pPh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) "pPl" = ( /obj/item/stack/ore/silver, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -55778,13 +55885,14 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics/garden) -"pPX" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/effect/turf_decal/siding/dark_blue/inner_corner{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) +"pPY" = ( +/obj/machinery/light/small/dim/directional/west, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/spawner/random/trash/grime, +/obj/effect/decal/cleanable/generic, +/obj/structure/sign/departments/maint/directional/west, +/turf/open/floor/iron/smooth, +/area/station/maintenance/port/lesser) "pQa" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -55865,11 +55973,6 @@ "pRj" = ( /turf/closed/wall, /area/station/maintenance/port/aft) -"pRn" = ( -/obj/structure/sign/warning/directional/east, -/obj/machinery/light/small/directional/east, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "pRs" = ( /obj/structure/bodycontainer/morgue, /obj/effect/turf_decal/trimline/neutral/line, @@ -56090,6 +56193,11 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/white, /area/station/science/research) +"pUx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/station/construction) "pUy" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -56134,19 +56242,6 @@ }, /turf/open/floor/iron, /area/station/tcommsat/computer) -"pVB" = ( -/obj/machinery/requests_console/directional/west{ - department = "Captain's Desk"; - name = "Captain's Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/announcement, -/obj/effect/mapping_helpers/requests_console/information, -/obj/effect/mapping_helpers/requests_console/assistance, -/obj/machinery/computer/communications{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/captain) "pVD" = ( /obj/structure/flora/bush/fullgrass/style_random, /obj/structure/flora/bush/generic/style_random, @@ -56213,20 +56308,6 @@ }, /turf/open/genturf, /area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) -"pWE" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) -"pWG" = ( -/obj/structure/marker_beacon/burgundy{ - name = "landing marker" - }, -/obj/effect/mapping_helpers/no_atoms_ontop, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) "pWJ" = ( /obj/effect/turf_decal/siding/thinplating/dark{ dir = 8 @@ -56241,12 +56322,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/hydroponics) -"pWT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "pWY" = ( /obj/structure/table/glass, /obj/structure/extinguisher_cabinet/directional/east, @@ -56384,17 +56459,20 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"pYG" = ( -/obj/machinery/light_switch/directional/north, -/obj/machinery/camera/directional/north{ - c_tag = "Custodial Closet" +"pYK" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Public Mining"; + opacity = 0 }, -/obj/vehicle/ridden/janicart, -/obj/effect/turf_decal/tile/purple{ - dir = 1 +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 }, -/turf/open/floor/iron, -/area/station/service/janitor) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/mining) "pYT" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/iron, @@ -56442,6 +56520,21 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron, /area/station/engineering/storage) +"pZN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/captain) +"pZS" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "pZY" = ( /mob/living/simple_animal/hostile/asteroid/polarbear{ move_force = 999; @@ -56478,6 +56571,12 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) +"qax" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "qaz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -56598,6 +56697,17 @@ dir = 4 }, /area/station/security/brig/entrance) +"qbn" = ( +/obj/machinery/light_switch/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Custodial Closet" + }, +/obj/vehicle/ridden/janicart, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/janitor) "qbp" = ( /obj/effect/turf_decal/tile/purple/anticorner/contrasted{ dir = 8 @@ -56804,13 +56914,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/textured, /area/station/service/hydroponics) -"qeE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/north, -/obj/structure/closet/crate, -/obj/effect/spawner/random/structure/furniture_parts, -/turf/open/floor/plating, -/area/station/construction) "qeF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -56857,22 +56960,20 @@ dir = 8 }, /area/station/service/chapel) -"qfg" = ( -/obj/structure/table, -/obj/item/computer_disk/ordnance, -/obj/item/computer_disk/ordnance{ - pixel_x = -5; - pixel_y = 4 +"qeW" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 }, -/obj/item/computer_disk{ - pixel_x = 7; - pixel_y = 2 +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/obj/item/aicard, -/turf/open/floor/iron/white/side{ - dir = 4 +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 8 }, -/area/station/command/heads_quarters/rd) +/area/station/commons/storage/mining) "qfh" = ( /turf/open/floor/iron/recharge_floor, /area/station/science/robotics/mechbay) @@ -57116,6 +57217,15 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) +"qjc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "qjg" = ( /obj/effect/landmark/observer_start, /obj/effect/turf_decal/plaque{ @@ -57138,10 +57248,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/freezer, /area/station/maintenance/starboard/fore) -"qjj" = ( -/obj/machinery/status_display/evac/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "qjp" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/thinplating_new, @@ -57350,6 +57456,10 @@ /obj/structure/cable, /turf/open/floor/iron/textured, /area/station/hallway/secondary/entry) +"qlQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "qlU" = ( /obj/structure/closet/crate, /turf/open/floor/plating/snowed/icemoon, @@ -57378,6 +57488,17 @@ /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"qms" = ( +/obj/structure/table, +/obj/item/stack/sheet/mineral/coal{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "qmt" = ( /turf/closed/wall, /area/mine/eva/lower) @@ -57390,19 +57511,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"qmR" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/item/key/janitor, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/janitor) "qmU" = ( /obj/machinery/duct, /obj/structure/cable, @@ -57428,12 +57536,6 @@ /obj/machinery/status_display/evac/directional/east, /turf/open/floor/wood, /area/station/service/library) -"qns" = ( -/obj/structure/ladder, -/obj/machinery/light/small/dim/directional/east, -/obj/effect/turf_decal/stripes/box, -/turf/open/floor/iron/smooth, -/area/station/maintenance/port/aft) "qnt" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 6 @@ -57442,6 +57544,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, /turf/open/floor/iron/dark, /area/station/medical/virology) +"qnw" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/brown/half{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/half{ + dir = 1 + }, +/area/station/commons/storage/mining) "qnC" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/ce) @@ -57454,6 +57566,19 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"qnU" = ( +/obj/structure/rack, +/obj/item/gun/energy/ionrifle, +/obj/item/gun/ballistic/automatic/battle_rifle{ + pixel_y = 3 + }, +/obj/item/gun/energy/temperature/security, +/obj/item/clothing/suit/hooded/ablative, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/ai_monitored/security/armory) "qnV" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/emergency{ @@ -57602,16 +57727,6 @@ /obj/structure/fence/door, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) -"qpO" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/storage/wallet{ - pixel_x = 3; - pixel_y = 5 - }, -/obj/item/newspaper, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "qpP" = ( /obj/structure/chair/comfy/black, /obj/effect/landmark/start/assistant, @@ -57626,6 +57741,15 @@ /obj/machinery/recharge_station, /turf/open/floor/wood, /area/station/command/meeting_room) +"qpU" = ( +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/storage/mining) "qpZ" = ( /obj/structure/table, /obj/item/folder/blue{ @@ -57646,12 +57770,6 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/hop) -"qqh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/icemoon, -/area/station/science/ordnance/bomb/planet) "qqv" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance/two, @@ -57682,6 +57800,19 @@ dir = 1 }, /area/station/security/office) +"qqT" = ( +/obj/structure/rack, +/obj/effect/spawner/random/techstorage/medical_all, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/large, +/area/station/engineering/storage/tech) +"qrb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/poster/official/random/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "qrg" = ( /obj/item/bodypart/head, /obj/effect/decal/cleanable/blood, @@ -57728,12 +57859,6 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron, /area/station/hallway/primary/central) -"qrL" = ( -/obj/vehicle/sealed/mecha/ripley/cargo, -/obj/effect/decal/cleanable/wrapping, -/obj/machinery/light/small/directional/east, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/cargo/warehouse) "qrP" = ( /obj/effect/decal/cleanable/cobweb, /obj/effect/spawner/random/structure/crate, @@ -57789,14 +57914,6 @@ "qtj" = ( /turf/closed/wall, /area/station/engineering/storage) -"qtl" = ( -/obj/item/target, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/icemoon, -/area/station/science/ordnance/bomb/planet) "qts" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/effect/turf_decal/stripes/red/line{ @@ -57891,17 +58008,6 @@ /obj/effect/spawner/random/trash/cigbutt, /turf/open/floor/stone, /area/station/service/bar/atrium) -"quT" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/door/window/brigdoor/right/directional/south{ - name = "Secure Tech Storage"; - req_access = list("command"); - desc = "Contains the highest security circuitry on the station. Unless you count the AI." - }, -/turf/open/floor/iron/dark/textured, -/area/station/engineering/storage/tech) "quW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -57916,6 +58022,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/cargo/drone_bay) +"qvb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/large, +/area/station/commons/storage/mining) "qvh" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -57929,17 +58039,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"qvs" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Aft Primary Hallway North" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/machinery/light/directional/west, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) "qvx" = ( /obj/item/food/grown/carrot, /turf/open/misc/asteroid/snow/standard_air, @@ -57958,15 +58057,6 @@ }, /turf/open/floor/wood, /area/station/service/library) -"qvG" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Public Mining Storage" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured, -/area/station/commons/storage/mining) "qvM" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, @@ -58101,6 +58191,10 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/smooth, /area/station/maintenance/port/lesser) +"qxn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/construction) "qxo" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ @@ -58346,6 +58440,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet, /area/station/command/heads_quarters/hop) +"qBU" = ( +/obj/structure/sign/warning/directional/east, +/obj/machinery/light/small/directional/east, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"qCa" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "qCl" = ( /obj/effect/spawner/random/trash/mess, /obj/structure/disposalpipe/segment{ @@ -58492,6 +58597,15 @@ /obj/effect/turf_decal/siding/white, /turf/open/floor/iron/white/smooth_large, /area/station/service/kitchen) +"qEq" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/icemoon, +/area/station/science/ordnance/bomb/planet) "qEu" = ( /obj/effect/turf_decal/siding/brown{ dir = 4 @@ -58512,6 +58626,10 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/iron/dark, /area/station/science/breakroom) +"qEB" = ( +/obj/structure/weightmachine, +/turf/open/floor/iron, +/area/station/commons/fitness) "qEJ" = ( /turf/closed/wall, /area/station/service/chapel/office) @@ -58533,6 +58651,26 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"qER" = ( +/obj/structure/table, +/obj/item/storage/pill_bottle/mutadone{ + pixel_x = 11; + pixel_y = 7 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = 2 + }, +/obj/item/flesh_shears{ + pixel_y = 5; + pixel_x = -10 + }, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"qEU" = ( +/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/mining) "qEV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58578,6 +58716,14 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/science/explab) +"qFu" = ( +/obj/machinery/airalarm/directional/west, +/obj/machinery/computer/station_alert/station_only{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) "qFA" = ( /obj/machinery/door/airlock/hatch, /obj/effect/mapping_helpers/airlock/access/any/security/maintenance, @@ -58641,6 +58787,12 @@ /obj/item/gps/mining, /turf/open/floor/iron/smooth, /area/mine/eva) +"qGt" = ( +/obj/structure/sign/warning{ + pixel_y = 32 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "qGJ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -58725,6 +58877,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/maintenance/aft/greater) +"qHy" = ( +/obj/structure/fence{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/unexplored/rivers/deep/shoreline) "qHz" = ( /obj/machinery/light_switch/directional/west, /obj/machinery/disposal/bin{ @@ -58751,6 +58909,11 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) +"qHP" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "qIf" = ( /obj/machinery/power/smes, /obj/structure/cable, @@ -58913,6 +59076,24 @@ /obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/plating, /area/station/security/prison/safe) +"qKn" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/command/glass{ + dir = 4; + name = "Bridge" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron, +/area/station/command/bridge) "qKq" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -58923,6 +59104,12 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/plating, /area/station/hallway/secondary/exit/departure_lounge) +"qKs" = ( +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/openspace/icemoon/keep_below, +/area/icemoon/underground/explored) "qKt" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -58987,6 +59174,12 @@ /obj/effect/turf_decal/tile/blue/anticorner/contrasted, /turf/open/floor/iron/white, /area/station/medical/surgery/fore) +"qLA" = ( +/obj/structure/chair/office/light, +/obj/machinery/light/small/dim/directional/east, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "qLB" = ( /obj/structure/filingcabinet/employment, /turf/open/floor/wood, @@ -59032,13 +59225,6 @@ "qLY" = ( /turf/closed/wall/r_wall, /area/station/science/xenobiology) -"qMg" = ( -/obj/structure/sign/warning/secure_area{ - desc = "A warning sign which reads 'BOMB RANGE"; - name = "BOMB RANGE" - }, -/turf/closed/wall, -/area/station/science/ordnance/bomb/planet) "qMk" = ( /obj/structure/railing{ dir = 1 @@ -59072,6 +59258,11 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) +"qML" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/brown, +/turf/open/floor/iron/dark, +/area/station/commons/storage/mining) "qMN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -59098,6 +59289,19 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/plating, /area/station/engineering/storage_shared) +"qNf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/railing/corner/end{ + dir = 8 + }, +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/obj/machinery/holopad/secure, +/turf/open/floor/iron/dark/textured_large, +/area/station/engineering/storage/tech) "qNl" = ( /obj/structure/plasticflaps/opaque, /obj/effect/turf_decal/delivery, @@ -59417,29 +59621,6 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"qQR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/door/firedoor{ - dir = 4 - }, -/obj/machinery/door/airlock/public/glass{ - dir = 4; - name = "Escape" - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/secondary/exit/departure_lounge) "qRk" = ( /obj/item/chair/wood, /turf/open/floor/carpet, @@ -59541,6 +59722,16 @@ "qSk" = ( /turf/open/floor/iron/dark, /area/station/science/ordnance) +"qSl" = ( +/obj/structure/table, +/obj/item/reagent_containers/cup/glass/coffee{ + pixel_y = 11; + pixel_x = -5 + }, +/obj/structure/sign/poster/contraband/random/directional/west, +/obj/item/binoculars, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "qSo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/green/half/contrasted, @@ -59610,19 +59801,6 @@ "qTf" = ( /turf/open/misc/asteroid/snow/standard_air, /area/station/science/cytology) -"qTg" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/cytology{ - pixel_x = -7; - pixel_y = 8 - }, -/obj/item/storage/box/swab{ - pixel_x = 7; - pixel_y = 7 - }, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/iron/smooth_large, -/area/station/science/cytology) "qTm" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 8 @@ -59638,6 +59816,15 @@ "qTs" = ( /turf/open/floor/iron/showroomfloor, /area/station/security/prison/mess) +"qTD" = ( +/obj/structure/marker_beacon/burgundy{ + name = "landing marker" + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "qTI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59661,6 +59848,14 @@ }, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"qUa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/closet/crate/trashcart/filled, +/obj/effect/spawner/random/maintenance/no_decals/two, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "qUf" = ( /obj/machinery/firealarm/directional/east, /obj/item/storage/box/bodybags{ @@ -59888,6 +60083,15 @@ /obj/machinery/light/small/directional/south, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"qXm" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/obj/structure/marker_beacon/burgundy{ + name = "landing marker" + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "qXt" = ( /obj/effect/turf_decal/stripes/corner, /obj/effect/turf_decal/siding/yellow{ @@ -59895,10 +60099,21 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) +"qXF" = ( +/obj/machinery/computer/station_alert/station_only, +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/turf/open/floor/iron, +/area/station/command/bridge) "qXO" = ( /obj/structure/flora/bush/jungle/c/style_random, /turf/open/floor/grass, /area/station/medical/virology) +"qXU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/iron, +/area/station/service/janitor) "qYb" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ @@ -59923,6 +60138,24 @@ }, /turf/open/floor/iron, /area/station/science/robotics/lab) +"qYx" = ( +/obj/item/trapdoor_remote/preloaded{ + name = "corpse trapdoor remote"; + pixel_y = 17 + }, +/obj/structure/rack{ + pixel_x = -1; + pixel_y = 12 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/effect/turf_decal/caution/red{ + pixel_y = -14 + }, +/obj/structure/noticeboard/cmo{ + pixel_y = 36 + }, +/turf/open/floor/iron/white/textured, +/area/station/medical/medbay/central) "qYz" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 @@ -60011,16 +60244,6 @@ /obj/item/pen, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"qZu" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/command/meeting_room) "qZv" = ( /obj/machinery/chem_heater/withbuffer, /obj/effect/turf_decal/stripes/line{ @@ -60054,13 +60277,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/textured, /area/mine/mechbay) -"qZW" = ( -/obj/machinery/atmospherics/components/tank/air{ - dir = 3; - initialize_directions = 3 - }, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) "qZZ" = ( /obj/structure/marker_beacon/yellow, /turf/open/misc/dirt{ @@ -60237,17 +60453,13 @@ }, /turf/open/floor/iron, /area/station/science/explab) -"rcB" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Public Mining"; - opacity = 0 - }, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/mining) +"rcA" = ( +/obj/structure/rack, +/obj/effect/spawner/random/techstorage/arcade_boards, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/techstorage/arcade_boards, +/turf/open/floor/iron/large, +/area/station/engineering/storage/tech) "rcE" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -60271,6 +60483,17 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"rdf" = ( +/obj/structure/table/wood, +/obj/machinery/fax{ + fax_name = "Captain's Office"; + name = "Captain's Fax Machine" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain) "rdn" = ( /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, @@ -60328,15 +60551,40 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"rem" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/insectguts, -/obj/machinery/light/small/dim/directional/west, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +"rep" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "misclab"; + name = "Specimen Chamber Control"; + pixel_x = -6; + pixel_y = -1; + req_access = list("rd") }, -/turf/open/floor/plating, -/area/station/commons/storage/mining) +/obj/machinery/button/door{ + id = "xenobiomain"; + name = "Xenobiology Control"; + pixel_x = -6; + pixel_y = 9; + req_access = list("rd") + }, +/obj/machinery/button/door{ + id = "rd_office_shutters"; + name = "Privacy Control"; + pixel_x = 6; + pixel_y = -1; + req_access = list("rd") + }, +/obj/machinery/button/door{ + id = "rnd2"; + name = "Ordnance Control"; + pixel_x = 6; + pixel_y = 9; + req_access = list("rd") + }, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/command/heads_quarters/rd) "res" = ( /obj/structure/ladder, /obj/machinery/light/small/directional/east, @@ -60496,6 +60744,10 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/maintenance/fore) +"rhw" = ( +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "rhF" = ( /obj/machinery/camera/directional/north{ c_tag = "Security - Permabrig Observation North"; @@ -60605,13 +60857,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/smooth, /area/station/security/execution/transfer) -"rjj" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/obj/structure/closet/wardrobe/miner, -/turf/open/floor/iron, -/area/station/cargo/miningdock) "rjr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, /turf/open/floor/plating, @@ -60650,11 +60895,6 @@ }, /turf/open/floor/iron, /area/station/engineering/storage) -"rke" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "rkh" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -60772,6 +61012,9 @@ /obj/structure/sign/warning/secure_area/directional/north, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) +"rkW" = ( +/turf/closed/wall, +/area/station/science/ordnance/bomb/planet) "rlf" = ( /obj/effect/spawner/random/structure/steam_vent, /obj/structure/cable, @@ -60782,19 +61025,6 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"rlo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/obj/effect/turf_decal/siding/yellow/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light_switch/directional/north{ - pixel_y = 37 - }, -/turf/open/floor/iron, -/area/station/engineering/storage_shared) "rlq" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -60814,21 +61044,6 @@ /obj/effect/spawner/random/vending/snackvend, /turf/open/floor/iron/dark, /area/station/science/breakroom) -"rlx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table, -/obj/item/grown/log/tree, -/obj/item/grown/log/tree{ - pixel_x = 7; - pixel_y = 5 - }, -/obj/item/grown/log/tree{ - pixel_x = 7 - }, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "rlB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -60849,9 +61064,6 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/service/kitchen) -"rlJ" = ( -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/cargo/warehouse) "rlS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -60901,11 +61113,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"rmT" = ( -/obj/structure/cable, -/obj/machinery/status_display/evac/directional/north, -/turf/open/floor/carpet/royalblue, -/area/station/command/heads_quarters/captain) "rmZ" = ( /obj/machinery/iv_drip, /obj/structure/mirror/broken/directional/north, @@ -60948,22 +61155,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"rnv" = ( -/obj/machinery/button/door/directional/west{ - id = "executionfireblast"; - name = "Transfer Area Lockdown"; - pixel_y = -6; - req_access = list("brig") - }, -/obj/structure/railing, -/obj/machinery/door/window/left/directional/south, -/obj/machinery/button/flasher{ - id = "executionflash"; - pixel_x = -24; - pixel_y = 5 - }, -/turf/open/floor/plating/icemoon, -/area/station/security/execution/education) "rnx" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -61109,6 +61300,14 @@ /obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"rpP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/storage/box/lights/mixed{ + pixel_y = 5 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "rpT" = ( /obj/structure/closet/emcloset, /obj/machinery/camera/directional/north{ @@ -61266,6 +61465,21 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron, /area/station/command/heads_quarters/qm) +"rrP" = ( +/obj/structure/table, +/obj/item/clothing/mask/breath{ + pixel_x = 2; + pixel_y = -1 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/effect/turf_decal/siding/brown{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/mining) "rrR" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -61640,6 +61854,19 @@ /obj/structure/cable/layer3, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) +"ryh" = ( +/obj/item/clothing/glasses/meson, +/obj/item/storage/bag/ore, +/obj/item/pickaxe, +/obj/item/mining_scanner, +/obj/item/flashlight, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/gps/mining, +/obj/machinery/light/small/directional/east, +/obj/structure/rack, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/textured_large, +/area/station/commons/storage/mining) "ryl" = ( /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/stripes/line{ @@ -61675,11 +61902,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) -"ryF" = ( -/obj/effect/spawner/random/structure/tank_holder, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/maintenance/port/aft) "ryG" = ( /obj/structure/chair{ dir = 1 @@ -61768,10 +61990,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"rAq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "rAr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -61801,13 +62019,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"rAG" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/siding/brown, -/obj/machinery/camera/autoname/directional/west, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/iron/dark, -/area/station/commons/storage/mining) "rAO" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, @@ -61895,10 +62106,6 @@ "rBV" = ( /turf/closed/wall, /area/station/tcommsat/computer) -"rBZ" = ( -/obj/machinery/suit_storage_unit/industrial/loader, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "rCe" = ( /obj/structure/toilet{ dir = 4 @@ -61909,18 +62116,32 @@ "rCf" = ( /turf/open/floor/iron, /area/station/maintenance/starboard/fore) +"rCh" = ( +/obj/structure/table/wood, +/obj/machinery/airalarm/directional/east, +/obj/item/storage/photo_album{ + pixel_y = -1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain) "rCj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/commons/locker) -"rCp" = ( -/obj/structure/chair/office/light, -/obj/machinery/light/small/dim/directional/east, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) +"rCs" = ( +/obj/structure/table, +/obj/item/food/deadmouse{ + pixel_x = 13; + pixel_y = 18 + }, +/obj/structure/microscope, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "rCu" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/landmark/start/hangover, @@ -61976,10 +62197,12 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/iron, /area/station/security/prison/mess) -"rCM" = ( -/obj/effect/spawner/random/structure/closet_private, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) +"rCO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "rCT" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, @@ -62021,6 +62244,11 @@ }, /turf/open/floor/iron, /area/station/science/robotics/lab) +"rCZ" = ( +/obj/item/chair, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "rDa" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -62084,26 +62312,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/storage) -"rDP" = ( -/obj/item/clothing/head/cone{ - pixel_x = 3 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) -"rDY" = ( -/obj/machinery/rnd/production/circuit_imprinter/department/science, -/obj/machinery/button/door/directional/north{ - dir = 2; - id = "rnd"; - name = "Shutters Control Button"; - req_access = list("research") - }, -/obj/machinery/light_switch/directional/north{ - pixel_y = 35 - }, -/turf/open/floor/iron/checker, -/area/station/science/lab) "rDZ" = ( /turf/open/floor/engine, /area/station/science/explab) @@ -62154,6 +62362,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/hydroponics) +"rEr" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad" + }, +/obj/machinery/door/poddoor{ + dir = 4; + id = "QMLoaddoor"; + name = "Supply Dock Loading Door" + }, +/turf/open/floor/plating, +/area/station/cargo/storage) "rEx" = ( /obj/effect/turf_decal/bot_white, /turf/open/floor/iron/dark, @@ -62209,20 +62429,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/mine/eva/lower) -"rFt" = ( -/obj/machinery/door/airlock/external{ - dir = 8; - name = "Lower Medical External Access" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "chem-morgue-airlock" - }, -/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/any/engineering/external, -/turf/open/floor/plating, -/area/station/medical/morgue) "rFI" = ( /obj/structure/cable, /obj/machinery/button/door/directional/north{ @@ -62300,22 +62506,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/pharmacy) -"rGQ" = ( -/obj/structure/table, -/obj/item/screwdriver, -/obj/item/assembly/signaler, -/obj/item/assembly/signaler{ - pixel_y = 1; - pixel_x = 3 - }, -/obj/structure/sign/nanotrasen{ - pixel_y = 32 - }, -/obj/effect/turf_decal/siding/dark_blue/corner{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "rGY" = ( /obj/machinery/airalarm/directional/east, /obj/structure/table, @@ -62346,6 +62536,19 @@ /obj/effect/turf_decal/trimline/yellow/mid_joiner, /turf/open/floor/iron/smooth_large, /area/station/cargo/drone_bay) +"rHx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/effect/turf_decal/siding/yellow/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light_switch/directional/north{ + pixel_y = 37 + }, +/turf/open/floor/iron, +/area/station/engineering/storage_shared) "rHz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/blue/filled/line, @@ -62385,6 +62588,11 @@ /obj/structure/sign/warning/cold_temp/directional/north, /turf/open/floor/iron/smooth, /area/station/maintenance/fore/lesser) +"rID" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "rIF" = ( /obj/effect/turf_decal/trimline/dark_blue/line, /obj/machinery/camera/directional/south{ @@ -62456,23 +62664,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/maintenance/fore/lesser) -"rKb" = ( -/obj/effect/spawner/random/techstorage/rnd_secure_all, -/obj/structure/rack, -/obj/effect/turf_decal/tile/dark_blue/full, -/obj/effect/turf_decal/siding/dark{ - dir = 1 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/engineering/storage/tech) -"rKd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/button/flasher{ - id = "GulagCell 2"; - pixel_y = -30 - }, -/turf/open/floor/iron, -/area/mine/laborcamp) "rKs" = ( /obj/structure/chair/stool/directional/south, /obj/effect/decal/cleanable/dirt, @@ -62491,6 +62682,14 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) +"rKK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/mob/living/basic/bot/repairbot, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat/atmos) "rKZ" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/effect/turf_decal/stripes/line{ @@ -62500,6 +62699,11 @@ /obj/machinery/portable_atmospherics/canister, /turf/open/floor/iron, /area/station/science/xenobiology) +"rLc" = ( +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/spawner/random/trash/cigbutt, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "rLl" = ( /obj/structure/sign/nanotrasen{ pixel_y = 32 @@ -62536,10 +62740,6 @@ /obj/machinery/computer/security/telescreen/med_sec/directional/east, /turf/open/floor/iron/dark/smooth_large, /area/station/security/checkpoint/medical) -"rLM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/commons/storage/mining) "rLX" = ( /obj/item/target, /obj/item/target/syndicate, @@ -62644,20 +62844,6 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"rNt" = ( -/obj/machinery/door/poddoor/preopen{ - dir = 4; - id = "bridge blast"; - name = "Bridge Blast Door" - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/firedoor{ - dir = 4 - }, -/obj/structure/sign/warning/secure_area/directional/north, -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/turf/open/floor/iron/dark/textured, -/area/station/command/bridge) "rNz" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -62713,6 +62899,14 @@ /obj/structure/closet/toolcloset, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) +"rOq" = ( +/obj/structure/marker_beacon/burgundy{ + name = "landing marker" + }, +/obj/effect/mapping_helpers/no_atoms_ontop, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "rOv" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/disposalpipe/segment, @@ -62923,6 +63117,10 @@ }, /turf/open/floor/iron, /area/station/science/ordnance) +"rRn" = ( +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "rRt" = ( /obj/effect/turf_decal/tile/bar{ dir = 4 @@ -62953,13 +63151,6 @@ /obj/structure/railing, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"rRT" = ( -/obj/structure/cable, -/obj/structure/minecart_rail{ - dir = 1 - }, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "rSe" = ( /obj/structure/rack, /obj/effect/spawner/random/clothing/costume, @@ -62967,11 +63158,6 @@ /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron/white, /area/station/maintenance/port/fore) -"rSi" = ( -/obj/structure/marker_beacon/jade, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) "rSl" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -63031,6 +63217,17 @@ }, /turf/open/floor/iron, /area/station/cargo/office) +"rTz" = ( +/turf/open/floor/plating/icemoon, +/area/station/science/ordnance/bomb/planet) +"rTM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/siding/dark_blue/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "rTO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral/opposingcorners, @@ -63074,16 +63271,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/security/armory/upper) -"rUl" = ( -/obj/item/chair/stool{ - pixel_y = 0; - pixel_x = -5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/commons/storage/mining) "rUo" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/green{ @@ -63221,14 +63408,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"rVF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/button/flasher{ - id = "visitorflash"; - pixel_y = -26 - }, -/turf/open/floor/iron, -/area/station/security/prison/visit) "rVV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -63243,17 +63422,16 @@ /obj/structure/cable, /turf/open/floor/iron, /area/mine/laborcamp) -"rVZ" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Public Mining"; - opacity = 0 - }, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/mining) +"rWc" = ( +/obj/structure/table, +/obj/item/stock_parts/subspace/transmitter, +/obj/item/stock_parts/subspace/transmitter, +/obj/item/stock_parts/subspace/treatment, +/obj/item/stock_parts/subspace/treatment, +/obj/item/stock_parts/subspace/treatment, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "rWg" = ( /obj/machinery/airalarm/directional/east, /obj/structure/extinguisher_cabinet/directional/north, @@ -63291,6 +63469,29 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/general, /turf/open/floor/iron/smooth, /area/station/maintenance/department/medical/central) +"rWI" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 6 + }, +/obj/structure/table/glass, +/obj/machinery/light/small/directional/east, +/obj/machinery/firealarm/directional/east, +/obj/item/food/grown/poppy{ + pixel_x = 3; + pixel_y = -1 + }, +/obj/item/food/grown/poppy/geranium{ + pixel_x = 2; + pixel_y = 5 + }, +/obj/item/food/grown/poppy/lily{ + pixel_x = -2 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "rWO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -63410,6 +63611,13 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/security/processing) +"rXY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/storage/mining) "rYq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -63472,22 +63680,6 @@ dir = 1 }, /area/mine/eva) -"rYM" = ( -/obj/machinery/door/airlock/engineering{ - name = "Tech Storage" - }, -/obj/structure/cable, -/obj/effect/landmark/navigate_destination, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/engineering/tech_storage, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/siding/yellow, -/obj/effect/turf_decal/siding/yellow{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/engineering/storage/tech) "rYT" = ( /obj/structure/ladder, /obj/effect/turf_decal/stripes/box, @@ -63569,6 +63761,22 @@ /obj/structure/window/spawner/directional/north, /turf/open/floor/plating, /area/station/maintenance/department/chapel) +"saX" = ( +/obj/machinery/button/door/directional/west{ + id = "executionfireblast"; + name = "Transfer Area Lockdown"; + pixel_y = -6; + req_access = list("brig") + }, +/obj/structure/railing, +/obj/machinery/door/window/left/directional/south, +/obj/machinery/button/flasher{ + id = "executionflash"; + pixel_x = -24; + pixel_y = 5 + }, +/turf/open/floor/plating/icemoon, +/area/station/security/execution/education) "sbc" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -63614,12 +63822,6 @@ dir = 1 }, /area/station/security/prison) -"sbC" = ( -/obj/structure/cable, -/turf/open/floor/iron/stairs/medium{ - dir = 4 - }, -/area/station/engineering/storage/tech) "sbD" = ( /obj/structure/grille, /turf/open/floor/plating, @@ -63724,6 +63926,20 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/grimy, /area/station/security/detectives_office) +"sdd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Construction Area Maintenance" + }, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/engineering/construction, +/turf/open/floor/plating, +/area/station/construction) "sdf" = ( /obj/structure/table, /obj/effect/spawner/random/maintenance/two, @@ -63795,6 +64011,12 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) +"sdZ" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "sen" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -63880,19 +64102,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/large, /area/station/hallway/secondary/entry) -"sfs" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/command/glass{ - dir = 8; - name = "Bridge" - }, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/command/general, -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/turf/open/floor/iron, -/area/station/command/bridge) "sfv" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, @@ -63933,6 +64142,11 @@ dir = 5 }, /area/station/science/research) +"sgh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "sgA" = ( /obj/effect/turf_decal/box, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -63982,6 +64196,10 @@ }, /turf/open/floor/glass/reinforced/icemoon, /area/icemoon/surface/outdoors/nospawn) +"sgZ" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/captain) "shc" = ( /turf/open/floor/iron, /area/station/command/heads_quarters/hop) @@ -64065,19 +64283,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/sepia, /area/station/service/library) -"sio" = ( -/obj/machinery/door/morgue{ - dir = 4; - req_access = list("bar") - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/iron/grimy, -/area/station/service/bar/backroom) "siu" = ( /obj/structure/table, /obj/item/storage/toolbox/emergency, @@ -64103,10 +64308,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/mine/eva) -"sja" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/station/cargo/warehouse) "sjb" = ( /turf/closed/wall/r_wall, /area/station/cargo/drone_bay) @@ -64316,6 +64517,11 @@ /obj/machinery/door/poddoor/massdriver_trash, /turf/open/floor/plating, /area/station/maintenance/disposal) +"sma" = ( +/obj/effect/spawner/random/trash/mopbucket, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "smg" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -64442,6 +64648,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"snL" = ( +/obj/item/pickaxe{ + desc = "Someone left their pickaxe out here, must not have known about the boulder processing machines inside."; + pixel_x = 12 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "snO" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -64455,16 +64668,6 @@ /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron, /area/station/engineering/atmos) -"soc" = ( -/obj/structure/table, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/wirecutters, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "sok" = ( /obj/machinery/door/airlock/security/glass{ name = "Security Office" @@ -64632,6 +64835,15 @@ /obj/structure/chair/wood, /turf/open/floor/wood/parquet, /area/station/service/bar/atrium) +"spV" = ( +/obj/effect/spawner/random/trash/bin, +/obj/item/paper/crumpled{ + default_raw_text = "We finally got that mecha we asked for. Although it's rusted, badly beaten it's still something. Thank you Nanotrasen!!"; + name = "note to nanotrasen" + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "sqb" = ( /obj/item/coin/iron{ pixel_y = -5 @@ -64648,14 +64860,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/commons/dorms/laundry) -"sqk" = ( -/obj/machinery/vending/coffee, -/obj/machinery/light/directional/east, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/command/meeting_room) "sqn" = ( /obj/machinery/computer/records/security{ dir = 1 @@ -65018,6 +65222,10 @@ }, /turf/open/floor/iron, /area/station/cargo/lobby) +"svm" = ( +/obj/structure/sign/departments/cargo/directional/west, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "svq" = ( /obj/structure/table/glass, /obj/item/stack/medical/gauze{ @@ -65053,15 +65261,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) -"svC" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 8 - }, -/obj/structure/cable, -/obj/effect/mapping_helpers/mail_sorting/service/janitor_closet, -/obj/effect/turf_decal/tile/purple/half/contrasted, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "svF" = ( /turf/open/floor/iron/smooth, /area/station/security/execution/transfer) @@ -65160,6 +65359,12 @@ dir = 4 }, /area/station/hallway/secondary/entry) +"swO" = ( +/obj/effect/spawner/random/maintenance/four, +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/construction) "swS" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, @@ -65298,6 +65503,27 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) +"syI" = ( +/obj/effect/turf_decal/siding/white/end{ + dir = 8 + }, +/obj/structure/table, +/obj/item/reagent_containers/cup/bowl{ + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/bowl{ + pixel_x = 3; + pixel_y = 8 + }, +/obj/item/food/grown/eggplant{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/food/grown/mushroom/chanterelle{ + pixel_y = 3 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "syL" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -65337,11 +65563,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/laborcamp) -"szw" = ( -/obj/effect/spawner/random/structure/closet_empty/crate, -/obj/effect/spawner/random/maintenance/no_decals/two, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "szD" = ( /obj/effect/turf_decal/trimline/green/filled/end, /obj/effect/decal/cleanable/dirt, @@ -65350,6 +65571,22 @@ "szG" = ( /turf/closed/mineral/random/snow/high_chance, /area/icemoon/underground/explored) +"szJ" = ( +/obj/structure/sign/warning/cold_temp/directional/north, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Cargo Warehouse External Airlock"; + opacity = 0 + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/mining_station, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "cargo-warehouse-external" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "szR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -65412,17 +65649,6 @@ "sAS" = ( /turf/closed/wall, /area/station/commons/storage/art) -"sAY" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/machinery/light/small/directional/east, -/obj/machinery/newscaster/directional/east, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/station/commons/storage/mining) "sBd" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/light/small/directional/west, @@ -65434,12 +65660,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/department/electrical) -"sBj" = ( -/obj/item/kirbyplants/photosynthetic, -/obj/item/radio/intercom/directional/west, -/obj/effect/turf_decal/box/white, -/turf/open/floor/iron/dark/smooth_large, -/area/station/engineering/storage/tech) "sBu" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -65535,6 +65755,21 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/office) +"sCz" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "chem-morgue-airlock" + }, +/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, +/obj/effect/mapping_helpers/airlock/access/any/engineering/external, +/obj/machinery/door/airlock/external{ + dir = 8; + name = "Lower Medical External Access" + }, +/turf/open/floor/plating, +/area/station/medical/morgue) "sCA" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -65587,13 +65822,6 @@ /obj/machinery/light/small/dim/directional/north, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"sDA" = ( -/obj/item/pickaxe{ - desc = "Someone left their pickaxe out here, must not have known about the boulder processing machines inside."; - pixel_x = 12 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "sDB" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -65645,6 +65873,16 @@ }, /turf/open/floor/wood, /area/station/command/meeting_room) +"sEn" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/effect/turf_decal/tile/brown/half{ + dir = 4 + }, +/turf/open/floor/iron/half{ + dir = 1 + }, +/area/station/commons/storage/mining) "sEq" = ( /obj/effect/spawner/structure/window/hollow/reinforced/end{ dir = 8 @@ -65820,6 +66058,12 @@ /obj/structure/sign/warning/secure_area/directional/north, /turf/open/genturf/blue, /area/icemoon/underground/unexplored/rivers/deep/shoreline) +"sGz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "sGE" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 4 @@ -65911,16 +66155,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet, /area/station/service/chapel) -"sHj" = ( -/obj/structure/railing/corner/end/flip{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/commons/storage/mining) "sHl" = ( /obj/machinery/vending/coffee, /obj/item/radio/intercom/directional/south, @@ -66156,12 +66390,6 @@ dir = 1 }, /area/station/medical/chemistry) -"sLI" = ( -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/machinery/light/warm/directional/north, -/obj/structure/fish_mount/bar/directional/north, -/turf/open/floor/iron, -/area/station/service/bar) "sLR" = ( /obj/machinery/conveyor{ dir = 1; @@ -66176,16 +66404,6 @@ "sMg" = ( /turf/open/floor/engine/air, /area/station/engineering/atmos) -"sMi" = ( -/obj/machinery/door/airlock/external{ - dir = 4; - name = "External Access" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/aft/lesser) "sMo" = ( /obj/machinery/camera/directional/south{ c_tag = "Solar Maintenance - South East Access" @@ -66409,6 +66627,10 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) +"sPI" = ( +/obj/structure/sign/poster/random/directional/west, +/turf/open/floor/plating, +/area/station/construction) "sPJ" = ( /obj/machinery/door/firedoor, /obj/structure/cable, @@ -66646,16 +66868,6 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/fore) -"sTk" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/obj/machinery/camera/directional/south{ - c_tag = "Medbay Stasis Center North"; - network = list("ss13","medbay") - }, -/turf/open/floor/iron/white, -/area/station/medical/treatment_center) "sTl" = ( /obj/structure/cable, /obj/effect/turf_decal/weather/snow/corner{ @@ -66729,6 +66941,13 @@ /obj/structure/microscope, /turf/open/floor/iron/grimy, /area/station/security/prison/work) +"sTY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/commons/storage/mining) "sUb" = ( /obj/machinery/door/airlock/security/glass{ name = "Permabrig Visitation" @@ -66738,14 +66957,6 @@ /obj/effect/mapping_helpers/airlock/access/any/security/brig, /turf/open/floor/iron, /area/station/security/prison/visit) -"sUv" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/mob/living/basic/bot/repairbot, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat/atmos) "sUE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/frame/computer{ @@ -66802,6 +67013,15 @@ /obj/structure/sign/poster/random/directional/north, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"sVC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "sVL" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, @@ -66817,6 +67037,24 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) +"sVR" = ( +/obj/structure/ore_box, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/bot_red, +/turf/open/floor/iron/dark, +/area/station/commons/storage/mining) +"sVW" = ( +/obj/effect/decal/cleanable/garbage, +/obj/item/reagent_containers/spray/chemsprayer/party{ + pixel_x = 1 + }, +/obj/item/clothing/head/costume/festive{ + pixel_x = -5; + pixel_y = -3 + }, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "sWl" = ( /obj/machinery/door/airlock/command{ name = "Chief Medical Officer" @@ -66856,13 +67094,14 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/mining_station, /turf/open/floor/iron/textured_half, /area/mine/production) -"sWF" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"sWD" = ( +/obj/structure/sign/nanotrasen{ + pixel_y = 32 }, -/obj/structure/sign/poster/official/random/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/central) +/obj/structure/marker_beacon/jade, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "sWN" = ( /obj/structure/chair{ dir = 1; @@ -67038,6 +67277,9 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/mining, /turf/open/floor/iron/smooth, /area/mine/eva/lower) +"sZU" = ( +/turf/open/floor/iron, +/area/station/engineering/storage/tech) "taf" = ( /obj/effect/landmark/start/quartermaster, /obj/structure/chair/office{ @@ -67103,6 +67345,14 @@ /obj/structure/cable/multilayer/multiz, /turf/open/floor/plating, /area/station/security/prison/safe) +"taZ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "tba" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -67126,6 +67376,11 @@ dir = 1 }, /area/station/engineering/atmos) +"tbi" = ( +/obj/effect/spawner/random/trash/food_packaging, +/obj/effect/spawner/random/trash/crushed_can, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "tbl" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/red{ @@ -67134,15 +67389,14 @@ /obj/structure/sign/departments/lawyer/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"tbv" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ +"tbt" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 4 }, -/obj/structure/railing{ - dir = 1 +/turf/open/floor/iron/dark/side{ + dir = 4 }, -/turf/open/floor/iron/dark/textured_large, -/area/station/engineering/storage/tech) +/area/station/commons/storage/mining) "tbH" = ( /obj/structure/table/reinforced, /obj/structure/disposalpipe/segment{ @@ -67179,6 +67433,22 @@ }, /turf/open/floor/plating, /area/mine/eva/lower) +"tcn" = ( +/obj/structure/table, +/obj/item/screwdriver, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler{ + pixel_y = 1; + pixel_x = 3 + }, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/obj/effect/turf_decal/siding/dark_blue/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "tcD" = ( /obj/structure/chair, /obj/effect/landmark/start/hangover, @@ -67294,17 +67564,15 @@ }, /turf/open/floor/iron/dark, /area/station/commons/storage/primary) -"tec" = ( -/obj/structure/cable, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "tei" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/carpet/red, /area/station/security/prison/work) +"tel" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/commons/storage/mining) "teq" = ( /obj/structure/railing, /obj/structure/rack, @@ -67316,13 +67584,6 @@ /obj/effect/spawner/random/armory/dragnet, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/security/armory/upper) -"ter" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair/plastic{ - dir = 8 - }, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "teE" = ( /obj/effect/spawner/structure/window, /obj/machinery/door/poddoor/shutters{ @@ -67332,6 +67593,19 @@ }, /turf/open/floor/plating, /area/station/commons/vacant_room/office) +"teF" = ( +/obj/item/clothing/head/cone{ + pixel_x = -4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"teM" = ( +/obj/structure/ore_box, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot_red, +/turf/open/floor/iron/dark, +/area/station/commons/storage/mining) "teN" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -67343,12 +67617,17 @@ dir = 4 }, /area/station/security/brig/entrance) -"teY" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +"teQ" = ( +/obj/machinery/chem_master{ + name = "CytoMaster 5000" }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/captain) +/obj/item/swab{ + pixel_x = -2; + pixel_y = 10 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "teZ" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -67390,6 +67669,12 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"tfX" = ( +/obj/structure/fence/corner{ + dir = 5 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "tgd" = ( /obj/machinery/door/airlock{ name = "Garden" @@ -67400,6 +67685,24 @@ }, /turf/open/floor/iron/dark, /area/station/commons/storage/primary) +"tge" = ( +/obj/machinery/button/door/directional/east{ + id = "commissaryshutter"; + name = "Commissary Shutter Control" + }, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/machinery/button/door/directional/east{ + id = "commissarydoor"; + name = "Commissary Door Lock"; + normaldoorcontrol = 1; + pixel_x = 35; + specialfunctions = 4 + }, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) "tgj" = ( /obj/structure/table/wood, /obj/effect/spawner/random/trash/janitor_supplies, @@ -67443,27 +67746,6 @@ /mob/living/simple_animal/bot/secbot/beepsky/armsky, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/security/armory) -"thj" = ( -/obj/machinery/door/poddoor/preopen{ - dir = 4; - id = "bridge blast"; - name = "Bridge Blast Door" - }, -/obj/effect/turf_decal/delivery, -/obj/structure/cable, -/obj/machinery/door/firedoor{ - dir = 8 - }, -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/turf/open/floor/iron/dark/textured, -/area/station/command/bridge) -"thm" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "thA" = ( /turf/open/genturf/blue, /area/icemoon/underground/unexplored/rivers/deep/shoreline) @@ -67706,10 +67988,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) -"tjU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) "tjY" = ( /obj/effect/turf_decal/siding/yellow{ dir = 4 @@ -67795,6 +68073,26 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/command/storage/eva) +"tlt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/status_display/door_timer{ + id = "Cell 3"; + name = "Cell 3"; + pixel_x = -32 + }, +/turf/open/floor/iron/textured, +/area/station/security/brig) +"tlA" = ( +/obj/item/radio/intercom/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/closet_empty/crate, +/obj/effect/spawner/random/maintenance/no_decals/two, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "tlE" = ( /turf/open/floor/glass/reinforced/icemoon, /area/icemoon/surface/outdoors/nospawn) @@ -67846,16 +68144,10 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "tmr" = ( -/obj/effect/mapping_helpers/airlock/access/all/supply/mining, -/obj/machinery/door/airlock/external/glass{ - name = "Mining Airlock"; - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "miner-passthrough" - }, -/turf/open/floor/plating, -/area/station/cargo/miningdock) +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) "tmw" = ( /obj/structure/closet/firecloset, /turf/open/floor/iron, @@ -67930,6 +68222,10 @@ /obj/item/folder/yellow, /turf/open/floor/iron/dark, /area/station/tcommsat/computer) +"tns" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/mining) "tnu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -67978,6 +68274,12 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/maintenance/fore) +"tnY" = ( +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "toi" = ( /obj/machinery/computer/security/telescreen/entertainment/directional/east, /obj/machinery/status_display/evac/directional/south, @@ -68039,15 +68341,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/hallway/secondary/exit/departure_lounge) -"tpf" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/station/commons/storage/mining) "tpk" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -68060,10 +68353,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"tpx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/commons/storage/mining) "tpG" = ( /obj/machinery/door/firedoor, /obj/effect/landmark/navigate_destination, @@ -68254,10 +68543,6 @@ /obj/machinery/door/airlock/freezer, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/mess) -"tts" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron/large, -/area/station/commons/storage/mining) "ttw" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white/smooth_large, @@ -68416,11 +68701,6 @@ dir = 4 }, /area/station/hallway/secondary/entry) -"tvr" = ( -/obj/effect/spawner/random/trash/cigbutt, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "tvt" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -68486,6 +68766,14 @@ /obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron/white/smooth_large, /area/station/service/kitchen) +"twr" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/commons/storage/mining) "twt" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -68497,6 +68785,11 @@ /obj/machinery/holopad, /turf/open/floor/carpet/red, /area/station/security/prison/work) +"twF" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "twK" = ( /obj/machinery/porta_turret/ai{ dir = 8 @@ -68686,19 +68979,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/morgue) -"tAe" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/status_display/door_timer{ - id = "Cell 2"; - name = "Cell 2"; - pixel_x = -32 - }, -/turf/open/floor/iron/textured, -/area/station/security/brig) "tAg" = ( /obj/effect/turf_decal/trimline/green/filled/corner{ dir = 1 @@ -68791,12 +69071,6 @@ }, /turf/open/floor/iron, /area/station/security/checkpoint/supply) -"tCd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/maintenance/port/aft) "tCe" = ( /obj/effect/turf_decal/bot{ dir = 1 @@ -69048,6 +69322,14 @@ /obj/machinery/duct, /turf/open/floor/plating, /area/station/maintenance/fore) +"tFK" = ( +/obj/machinery/door/airlock/engineering{ + name = "Construction Area" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/construction, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/construction) "tFV" = ( /obj/structure/cable, /obj/machinery/light/directional/south, @@ -69177,6 +69459,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/mine/laborcamp) +"tHb" = ( +/obj/effect/spawner/random/structure/musician/piano/random_piano, +/obj/machinery/button/curtain{ + id = "cantena_curtains"; + pixel_x = -32 + }, +/turf/open/floor/wood, +/area/station/commons/lounge) "tHj" = ( /obj/machinery/status_display/evac/directional/east, /turf/open/floor/iron, @@ -69283,6 +69573,10 @@ /obj/machinery/status_display/evac/directional/south, /turf/open/floor/iron/dark, /area/station/service/chapel) +"tIy" = ( +/obj/machinery/status_display/ai/directional/north, +/turf/open/openspace, +/area/station/engineering/storage/tech) "tIC" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 5 @@ -69396,18 +69690,6 @@ /obj/item/clothing/mask/gas, /turf/open/floor/plating, /area/station/command/teleporter) -"tJT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/machinery/light_switch/directional/west, -/obj/machinery/microwave{ - anchored_tabletop_offset = 0; - pixel_y = 5; - pixel_x = -1 - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "tJY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -69433,6 +69715,17 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/lesser) +"tKr" = ( +/obj/machinery/door/airlock/engineering{ + name = "Utilities Room" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/unres, +/obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/commons/storage/mining) "tKz" = ( /obj/structure/closet/wardrobe/mixed, /turf/open/floor/plating, @@ -69518,13 +69811,6 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) -"tLa" = ( -/obj/structure/mineral_door/wood{ - dir = 4; - name = "Maintenance Bar" - }, -/turf/open/floor/wood, -/area/station/maintenance/port/aft) "tLe" = ( /obj/machinery/cryo_cell, /obj/effect/turf_decal/stripes/line{ @@ -69655,16 +69941,6 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron/dark/textured, /area/station/command/gateway) -"tMJ" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/caution{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/mining) "tMO" = ( /turf/closed/wall, /area/station/medical/break_room) @@ -69797,10 +70073,6 @@ /obj/item/trash/energybar, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"tPp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "tPz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/side{ @@ -69873,6 +70145,13 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/medical/storage) +"tQg" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/item/kirbyplants/photosynthetic, +/obj/effect/turf_decal/box/white, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/storage/tech) "tQM" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/east, @@ -69896,6 +70175,11 @@ }, /turf/open/floor/iron, /area/station/maintenance/starboard/upper) +"tRa" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "tRd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, @@ -69957,15 +70241,6 @@ /obj/machinery/bluespace_vendor/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) -"tSh" = ( -/obj/machinery/atmospherics/components/tank/air{ - dir = 3; - initialize_directions = 3 - }, -/obj/effect/mapping_helpers/burnt_floor, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) "tSi" = ( /obj/machinery/suit_storage_unit/security, /turf/open/floor/iron/smooth, @@ -69986,6 +70261,24 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/prison/workout) +"tSF" = ( +/obj/machinery/door/window/left/directional/west{ + name = "Deliveries"; + req_one_access = list("bar", "kitchen") + }, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/textured, +/area/station/service/kitchen/coldroom) "tTc" = ( /obj/item/storage/bag/plants/portaseeder, /obj/structure/table/glass, @@ -70037,16 +70330,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/maintenance/space_hut/cabin) -"tUk" = ( -/obj/structure/displaycase/captain, -/obj/structure/sign/nanotrasen{ - pixel_x = 32 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/captain) "tUn" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -70112,17 +70395,6 @@ }, /turf/open/floor/wood, /area/station/service/library) -"tUT" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/hallway/primary/central) "tUV" = ( /obj/structure/railing{ dir = 8 @@ -70291,6 +70563,14 @@ }, /turf/open/floor/iron, /area/station/engineering/main) +"tXE" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/light_construct/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "tXM" = ( /obj/machinery/hydroponics/constructable, /obj/structure/window/reinforced/spawner/directional/west, @@ -70355,13 +70635,6 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/fore) -"tYQ" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) "tYS" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, @@ -70394,6 +70667,10 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating/icemoon, /area/icemoon/surface/outdoors/nospawn) +"tZb" = ( +/obj/effect/spawner/random/structure/shipping_container, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "tZd" = ( /obj/machinery/hydroponics/soil{ pixel_y = 8 @@ -70415,18 +70692,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/grimy, /area/station/service/theater) -"tZA" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/oil, +"tZM" = ( +/obj/effect/spawner/random/trash/bin, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"tZC" = ( -/obj/effect/spawner/random/trash/grille_or_waste, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/mining) "tZZ" = ( /obj/structure/disposalpipe/segment, /obj/machinery/light/directional/west, @@ -70510,25 +70779,16 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/storage) -"uaQ" = ( -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Cargo Warehouse External Airlock"; - opacity = 0 - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining_station, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "cargo-warehouse-external" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "uaT" = ( /obj/machinery/rnd/experimentor, /turf/open/floor/engine, /area/station/science/explab) +"uaY" = ( +/obj/item/radio/intercom/directional/south, +/obj/effect/spawner/random/vending/colavend, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) "ubc" = ( /obj/structure/table, /obj/machinery/recharger{ @@ -70780,17 +71040,6 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/security/processing) -"ufw" = ( -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/structure/sign/flag/terragov/directional/north, -/obj/structure/weightmachine/weightlifter, -/turf/open/floor/iron, -/area/station/commons/fitness) "ufF" = ( /obj/structure/table, /obj/item/storage/box/prisoner{ @@ -70799,12 +71048,6 @@ /obj/item/storage/box/prisoner, /turf/open/floor/iron/smooth, /area/station/security/execution/transfer) -"ufM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/icemoon, -/area/station/science/ordnance/bomb/planet) "ufN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /turf/open/floor/iron/white, @@ -70842,15 +71085,6 @@ /obj/machinery/requests_console/auto_name/directional/north, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"ugx" = ( -/obj/effect/spawner/random/trash/bin, -/obj/item/paper/crumpled{ - default_raw_text = "We finally got that mecha we asked for. Although it's rusted, badly beaten it's still something. Thank you Nanotrasen!!"; - name = "note to nanotrasen" - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "ugA" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, @@ -70948,6 +71182,18 @@ /obj/machinery/hydroponics/constructable, /turf/open/floor/iron/dark, /area/station/service/hydroponics) +"uhG" = ( +/obj/structure/table/glass, +/obj/item/book/manual/wiki/surgery{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/effect/spawner/surgery_tray/full, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/surgery/aft) "uhH" = ( /obj/machinery/door/airlock/engineering{ name = "Chemistry Lab Utilities" @@ -71003,18 +71249,19 @@ /obj/effect/spawner/random/maintenance/three, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"uiM" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 +"uiO" = ( +/obj/structure/cable, +/obj/structure/minecart_rail{ + dir = 1 }, -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/stripes/line{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/iron/dark/side{ - dir = 4 +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 }, -/area/station/commons/storage/mining) +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "uja" = ( /turf/closed/wall, /area/station/commons/toilet) @@ -71042,21 +71289,6 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"ujN" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/rack, -/obj/item/aicard, -/obj/item/ai_module/reset, -/obj/machinery/status_display/ai/directional/south, -/obj/machinery/firealarm/directional/west, -/obj/effect/turf_decal/tile/dark_blue/full, -/obj/effect/turf_decal/siding/dark{ - dir = 5 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/engineering/storage/tech) "ujP" = ( /obj/structure/table, /obj/machinery/computer/security/telescreen/research, @@ -71073,13 +71305,6 @@ /obj/effect/decal/cleanable/plastic, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"ukf" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark/side{ - dir = 8 - }, -/area/station/engineering/storage/tech) "uko" = ( /obj/structure/chair/pew/left{ dir = 1 @@ -71088,9 +71313,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/dark, /area/station/service/chapel) -"ukr" = ( -/turf/open/floor/iron/dark, -/area/icemoon/underground/explored) "ukz" = ( /obj/machinery/duct, /obj/structure/disposalpipe/segment{ @@ -71163,6 +71385,14 @@ /obj/effect/mapping_helpers/airlock/access/all/command/teleporter, /turf/open/floor/plating, /area/station/maintenance/central/lesser) +"ukS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/spawner/random/structure/steam_vent, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "ukV" = ( /obj/structure/closet/crate/freezer, /obj/item/reagent_containers/blood/random, @@ -71215,20 +71445,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/security/prison/safe) -"ulA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance{ - name = "Construction Area Maintenance" - }, -/obj/effect/mapping_helpers/airlock/abandoned, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/engineering/construction, -/turf/open/floor/plating, -/area/station/construction) "ulL" = ( /obj/machinery/modular_computer/preset/id, /obj/effect/turf_decal/tile/blue/full, @@ -71282,6 +71498,9 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"umu" = ( +/turf/open/openspace, +/area/station/engineering/storage/tech) "umv" = ( /obj/structure/railing/corner{ dir = 4 @@ -71369,6 +71588,37 @@ /obj/machinery/gulag_teleporter, /turf/open/floor/iron/showroomfloor, /area/station/security/processing) +"unG" = ( +/obj/machinery/computer/station_alert/station_only{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/computer/security/telescreen/ce/directional/west, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) +"unH" = ( +/obj/structure/table, +/obj/item/analyzer{ + pixel_y = 5 + }, +/obj/item/plant_analyzer, +/obj/item/healthanalyzer{ + pixel_y = 2; + pixel_x = 4 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Tech Storage Access" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"unK" = ( +/obj/structure/cable/multilayer/multiz, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/commons/storage/mining) "unO" = ( /obj/item/paper_bin{ pixel_x = -3; @@ -71394,6 +71644,18 @@ /obj/effect/spawner/random/contraband/prison, /turf/open/floor/plating, /area/station/security/prison/safe) +"uoj" = ( +/obj/structure/sign/warning/cold_temp/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/mining) "uom" = ( /obj/effect/turf_decal/plaque{ icon_state = "L3" @@ -71408,6 +71670,15 @@ }, /turf/open/floor/iron/textured, /area/station/engineering/atmos) +"uow" = ( +/obj/structure/railing, +/obj/structure/table, +/obj/item/screwdriver{ + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "uoB" = ( /obj/structure/disposalpipe/junction/yjunction{ dir = 1 @@ -71471,13 +71742,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/storage) -"upp" = ( -/obj/item/radio/intercom/directional/west, -/obj/machinery/modular_computer/preset/id{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/captain) "upv" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -71545,10 +71809,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"uqm" = ( -/obj/structure/table/wood, -/turf/open/floor/carpet/royalblue, -/area/station/command/heads_quarters/captain) "uqn" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -71666,12 +71926,6 @@ /obj/item/hand_labeler, /turf/open/floor/iron, /area/station/service/hydroponics) -"urU" = ( -/obj/structure/sign/nanotrasen{ - pixel_y = 32 - }, -/turf/open/openspace/icemoon/keep_below, -/area/icemoon/underground/explored) "usm" = ( /obj/machinery/airalarm/directional/east, /turf/open/floor/plating, @@ -71688,13 +71942,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/laborcamp) -"usF" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/departments/engineering/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "usS" = ( /obj/structure/bed{ dir = 1 @@ -71715,12 +71962,6 @@ /obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"usX" = ( -/obj/machinery/computer/station_alert/station_only, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/computer/security/telescreen/engine/directional/north, -/turf/open/floor/iron/dark, -/area/station/engineering/engine_smes) "utr" = ( /obj/structure/table, /obj/item/storage/toolbox/mechanical{ @@ -71745,12 +71986,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"utC" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/station/cargo/miningdock) "utR" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"utU" = ( +/obj/effect/spawner/random/structure/shipping_container, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "uub" = ( /obj/machinery/atmospherics/components/binary/pump{ name = "Port to Fuel Pipe" @@ -71784,6 +72033,12 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) +"uuy" = ( +/obj/structure/rack, +/obj/item/climbing_hook/emergency, +/obj/item/stack/rods, +/turf/open/floor/iron/smooth, +/area/station/maintenance/port/aft) "uuC" = ( /obj/structure/railing/corner, /turf/open/floor/iron, @@ -71845,6 +72100,14 @@ }, /turf/open/floor/plating, /area/station/service/hydroponics) +"uvC" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) "uvM" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle, /turf/open/floor/plating, @@ -72005,22 +72268,16 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/engine/vacuum, /area/station/engineering/atmos) -"uxR" = ( -/obj/structure/table, -/obj/item/grenade/chem_grenade/cleaner, -/obj/item/grenade/chem_grenade/cleaner, -/obj/item/grenade/chem_grenade/cleaner, -/obj/item/reagent_containers/spray/cleaner, -/obj/machinery/requests_console/directional/south{ - department = "Janitorial"; - name = "Janitorial Requests Console" +"uyi" = ( +/obj/item/chair/stool{ + pixel_y = 0; + pixel_x = -5 }, -/obj/effect/mapping_helpers/requests_console/assistance, -/obj/effect/turf_decal/tile/purple{ - dir = 8 +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/turf/open/floor/iron, -/area/station/service/janitor) +/turf/open/floor/plating, +/area/station/commons/storage/mining) "uyo" = ( /obj/machinery/camera/directional/north{ c_tag = "Courtroom" @@ -72247,6 +72504,12 @@ /obj/effect/decal/cleanable/glass, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) +"uBT" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/station/engineering/storage/tech) "uBX" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 8 @@ -72289,6 +72552,14 @@ }, /turf/open/floor/iron/white, /area/mine/laborcamp) +"uCn" = ( +/obj/structure/marker_beacon/burgundy{ + name = "landing marker" + }, +/obj/effect/mapping_helpers/no_atoms_ontop, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "uCo" = ( /obj/structure/flora/bush/flowers_br/style_random, /obj/item/shovel, @@ -72338,12 +72609,34 @@ /obj/structure/grille/broken, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"uDa" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/effect/landmark/start/captain, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/captain) "uDc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/pink, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"uDd" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/storage/mining) "uDi" = ( /obj/structure/closet/emcloset/anchored, /obj/machinery/light/small/directional/west, @@ -72417,12 +72710,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/iron/white, /area/station/medical/virology) -"uDI" = ( -/obj/structure/rack, -/obj/effect/spawner/random/techstorage/medical_all, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/large, -/area/station/engineering/storage/tech) "uDW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -72447,6 +72734,14 @@ /obj/effect/turf_decal/tile/blue/full, /turf/open/floor/iron/large, /area/station/medical/treatment_center) +"uEy" = ( +/obj/machinery/vending/coffee, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/meeting_room) "uEI" = ( /obj/structure/railing/corner{ dir = 4 @@ -72469,16 +72764,29 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/command/bridge) -"uES" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) "uFf" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, /turf/open/floor/plating, /area/station/security/processing) +"uFg" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Prison Gate"; + name = "Prison Blast Door" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/status_display/door_timer{ + id = "Cell 1"; + name = "Cell 1"; + pixel_x = -32 + }, +/turf/open/floor/iron/textured, +/area/station/security/brig) "uFh" = ( /turf/open/floor/plating, /area/station/construction) @@ -72588,16 +72896,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"uGN" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green{ - pixel_y = 14 - }, -/obj/item/book/manual/wiki/security_space_law{ - pixel_y = 5 - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/captain) "uGT" = ( /obj/machinery/light/directional/east, /obj/item/radio/intercom/directional/east, @@ -72617,11 +72915,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/prison/visit) -"uHx" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) "uHF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -72731,16 +73024,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"uIY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/sign/nanotrasen{ - pixel_y = 32 - }, -/obj/machinery/light/cold/directional/north, -/turf/open/floor/iron/dark/textured, -/area/station/engineering/storage/tech) "uJd" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/turf_decal/tile/brown/half/contrasted{ @@ -72775,12 +73058,6 @@ "uJt" = ( /turf/open/floor/carpet, /area/station/service/chapel) -"uJw" = ( -/obj/item/kirbyplants/photosynthetic, -/obj/effect/turf_decal/box/white, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/dark/smooth_large, -/area/station/engineering/storage/tech) "uJH" = ( /obj/structure/tank_holder/extinguisher, /obj/effect/turf_decal/tile/yellow/half/contrasted{ @@ -73004,12 +73281,6 @@ "uOb" = ( /turf/closed/wall/r_wall, /area/station/security/prison/toilet) -"uOe" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/station/engineering/storage/tech) "uOf" = ( /obj/machinery/door/airlock{ id_tag = "miningdorm_A"; @@ -73043,6 +73314,20 @@ /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) +"uOo" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/t_scanner, +/obj/item/multitool, +/obj/item/clothing/gloves/color/yellow, +/obj/machinery/newscaster/directional/east, +/obj/effect/turf_decal/bot, +/obj/machinery/light/cold/directional/east, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/storage/tech) "uOs" = ( /obj/structure/bed/dogbed, /obj/effect/decal/cleanable/blood/gibs/body, @@ -73066,6 +73351,17 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"uPh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light_switch/directional/north, +/obj/machinery/button/door/directional/north{ + id = "Mining_launch"; + name = "Mech Bay Door Control"; + pixel_y = 37 + }, +/turf/open/floor/iron/textured, +/area/mine/mechbay) "uPk" = ( /turf/closed/wall/r_wall, /area/station/security/range) @@ -73177,27 +73473,14 @@ dir = 4 }, /area/station/science/xenobiology) -"uQX" = ( -/obj/effect/turf_decal/siding/white/end{ - dir = 8 - }, -/obj/structure/table, -/obj/item/reagent_containers/cup/bowl{ - pixel_y = 3 - }, -/obj/item/reagent_containers/cup/bowl{ - pixel_x = 3; - pixel_y = 8 - }, -/obj/item/food/grown/eggplant{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/food/grown/mushroom/chanterelle{ - pixel_y = 3 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) +"uQT" = ( +/obj/structure/table/wood, +/obj/item/folder/blue, +/obj/item/stamp/head/captain, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) "uRi" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -73239,17 +73522,6 @@ dir = 4 }, /area/station/hallway/secondary/entry) -"uRy" = ( -/obj/effect/decal/remains/human, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/generic, -/obj/effect/decal/cleanable/plasma, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/commons/storage/mining) "uRL" = ( /obj/machinery/airalarm/directional/north, /obj/machinery/light/directional/north, @@ -73257,12 +73529,6 @@ dir = 10 }, /area/station/science/research) -"uRT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/mining) "uRV" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 5 @@ -73423,6 +73689,30 @@ }, /turf/closed/wall, /area/station/service/hydroponics) +"uVf" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/box/red, +/obj/machinery/airalarm/directional/east, +/obj/effect/mapping_helpers/airalarm/mixingchamber_access, +/obj/effect/mapping_helpers/airalarm/link{ + chamber_id = "ordnanceburn" + }, +/obj/effect/mapping_helpers/airalarm/tlv_no_checks, +/obj/machinery/airlock_controller/incinerator_ordmix{ + pixel_y = 27 + }, +/obj/machinery/button/ignition/incinerator/ordmix{ + pixel_x = -6; + pixel_y = 39 + }, +/obj/machinery/button/door/incinerator_vent_ordmix{ + pixel_x = 5; + pixel_y = 39 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "uVj" = ( /obj/effect/turf_decal/arrows/white, /obj/effect/turf_decal/stripes/line{ @@ -73641,25 +73931,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/service) -"uZG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/poddoor/preopen{ - dir = 4; - id = "bridge blast"; - name = "Bridge Blast Door" - }, -/obj/effect/turf_decal/delivery, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor{ - dir = 4 - }, -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/turf/open/floor/iron/dark/textured, -/area/station/command/bridge) "uZT" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -73788,6 +74059,9 @@ dir = 1 }, /area/station/medical/chemistry) +"vbc" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/unexplored/rivers/deep/shoreline) "vbd" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/arrows/white{ @@ -73880,6 +74154,14 @@ /obj/effect/mapping_helpers/airlock/access/any/engineering/external, /turf/open/floor/plating, /area/station/maintenance/department/chapel) +"vch" = ( +/obj/machinery/door/morgue{ + dir = 4; + name = "Relic Closet"; + req_access = list("chapel_office") + }, +/turf/open/floor/cult, +/area/station/service/chapel/office) "vcx" = ( /obj/machinery/newscaster/directional/east, /obj/structure/sink/directional/west, @@ -73996,25 +74278,6 @@ }, /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) -"veu" = ( -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/effect/turf_decal/siding/white{ - dir = 1 - }, -/obj/structure/cable, -/obj/structure/minecart_rail/railbreak{ - dir = 4 - }, -/obj/structure/closet/crate/miningcar{ - desc = "Used for quick transit of fresh produce to the kitchen. Just give it a shove."; - name = "delivery cart" - }, -/obj/item/storage/bag/plants, -/turf/open/floor/iron, -/area/station/service/hydroponics) "vey" = ( /turf/closed/wall, /area/station/command/heads_quarters/captain) @@ -74127,6 +74390,20 @@ "vfW" = ( /turf/open/floor/iron, /area/station/commons/fitness) +"vfZ" = ( +/obj/structure/ladder{ + name = "chemistry lab access" + }, +/obj/machinery/door/window/right/directional/east{ + name = "Morgue Access Hatch"; + req_access = list("medical") + }, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/iron/dark/textured_large, +/area/station/medical/morgue) "vgf" = ( /obj/structure/grille, /turf/open/floor/plating, @@ -74229,12 +74506,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/supermatter/room) -"viM" = ( -/turf/closed/indestructible/riveted{ - desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease"; - name = "hyper-reinforced wall" - }, -/area/station/science/ordnance/bomb/planet) "viQ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -74273,20 +74544,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"vjA" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Service - Kitchen" - }, -/obj/effect/turf_decal/siding/white{ - dir = 8 - }, -/obj/machinery/airalarm/directional/east, -/obj/structure/table, -/obj/machinery/processor{ - pixel_y = 6 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) "vjJ" = ( /obj/structure/table, /obj/machinery/light/directional/north, @@ -74328,10 +74585,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"vka" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/construction) "vkz" = ( /obj/machinery/suit_storage_unit/ce, /obj/effect/turf_decal/stripes/line{ @@ -74375,6 +74628,10 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/iron, /area/station/security/prison/mess) +"vkS" = ( +/obj/effect/spawner/random/engineering/tracking_beacon, +/turf/open/floor/plating/icemoon, +/area/station/science/ordnance/bomb/planet) "vkW" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -74387,6 +74644,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"vlE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/commons/fitness) "vlF" = ( /obj/structure/railing{ dir = 4 @@ -74576,29 +74840,18 @@ }, /turf/open/floor/iron/dark, /area/station/service/chapel) -"vnp" = ( -/obj/structure/rack, -/obj/item/lighter, -/obj/item/clothing/glasses/meson{ - pixel_y = 4 - }, -/obj/item/stock_parts/power_store/cell/high, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/computer_disk/engineering{ - pixel_x = 4; - pixel_y = 3 +"vnt" = ( +/obj/machinery/computer/station_alert/station_only{ + dir = 8 }, -/obj/item/computer_disk/engineering{ - pixel_x = 4; - pixel_y = 3 +/obj/machinery/button/door/directional/south{ + id = "atmos" }, -/obj/item/computer_disk/engineering{ - pixel_x = 4; - pixel_y = 3 +/obj/machinery/light_switch/directional/south{ + pixel_x = -10 }, -/obj/item/reagent_containers/pill/patch/aiuri, /turf/open/floor/iron/dark, -/area/station/command/heads_quarters/ce) +/area/station/engineering/atmos/storage/gas) "vnw" = ( /obj/machinery/camera/directional/south{ c_tag = "Fitness Room South" @@ -74679,12 +74932,6 @@ }, /turf/open/floor/iron, /area/station/commons/storage/tools) -"voE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/large, -/area/station/engineering/storage/tech) "voH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -74695,6 +74942,18 @@ "voK" = ( /turf/closed/wall/r_wall, /area/station/tcommsat/computer) +"voN" = ( +/obj/structure/table, +/obj/item/grown/log/tree, +/obj/item/grown/log/tree{ + pixel_x = 7; + pixel_y = 5 + }, +/obj/item/grown/log/tree{ + pixel_x = 7 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "voY" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -74872,15 +75131,20 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/primary/central) -"vse" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/station/commons/storage/mining) "vsk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) +"vsl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/engineering/storage/tech) "vsp" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/effect/turf_decal/stripes/red/line{ @@ -74963,6 +75227,29 @@ /obj/item/kirbyplants/random, /turf/open/floor/wood, /area/station/maintenance/aft/greater) +"vts" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/valve/on{ + dir = 4 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) +"vtu" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/coroner, +/obj/machinery/door/airlock/external{ + dir = 4; + name = "Graveyard Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/medical/morgue) "vtv" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; @@ -75052,14 +75339,6 @@ /obj/effect/turf_decal/trimline/yellow/filled/line, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"vvb" = ( -/obj/structure/table/wood, -/obj/item/folder/blue, -/obj/item/stamp/head/captain, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/command/heads_quarters/captain) "vvc" = ( /obj/structure/cable, /turf/open/floor/iron/smooth_half, @@ -75129,6 +75408,37 @@ /obj/structure/cable, /turf/open/floor/circuit, /area/station/science/robotics/mechbay) +"vvT" = ( +/obj/structure/table, +/obj/machinery/button/ticket_machine{ + pixel_x = -6; + pixel_y = -1; + req_access = list("hop") + }, +/obj/machinery/button/photobooth{ + pixel_x = 6; + pixel_y = -1; + req_access = list("hop") + }, +/obj/machinery/button/door/directional/south{ + id = "hop"; + name = "Privacy Shutters"; + pixel_x = -6; + req_access = list("hop") + }, +/obj/machinery/button/door/directional/south{ + id = "hopqueue"; + name = "Queue Shutters"; + pixel_x = 6; + req_access = list("hop") + }, +/obj/machinery/button/flasher{ + id = "hopflash"; + pixel_y = 9; + req_access = list("hop") + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "vvU" = ( /obj/item/beacon, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -75331,6 +75641,23 @@ /obj/effect/mapping_helpers/no_atoms_ontop, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) +"vyq" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Virology Hallway"; + network = list("ss13","medbay") + }, +/obj/machinery/door_buttons/access_button{ + idDoor = "virology_airlock_exterior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + pixel_x = 35; + req_access = list("virology") + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) "vyt" = ( /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) @@ -75368,16 +75695,22 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"vyW" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Medbay Stasis Center North"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) "vzb" = ( /obj/structure/rack, /obj/effect/spawner/random/clothing/costume, /obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"vzh" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/commons/storage/mining) "vzn" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/access/all/engineering/external, @@ -75438,10 +75771,6 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/service/kitchen) -"vzK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/engineering/storage/tech) "vzS" = ( /obj/effect/mapping_helpers/mail_sorting/science/experimentor_lab, /obj/structure/disposalpipe/sorting/mail{ @@ -75512,6 +75841,13 @@ /obj/effect/mapping_helpers/airlock/access/any/command/ai_upload, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) +"vAH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/light_construct/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/construction) "vAP" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/tile/blue/half/contrasted, @@ -75695,6 +76031,12 @@ }, /turf/open/floor/iron, /area/mine/laborcamp) +"vDO" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/miningdock) "vEc" = ( /obj/machinery/door/poddoor/incinerator_ordmix, /turf/open/floor/engine/vacuum, @@ -75715,6 +76057,18 @@ /obj/machinery/status_display/evac/directional/east, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"vEG" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external/glass{ + dir = 4; + name = "Supply Door Airlock"; + pixel_y = 0 + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/turf/open/floor/plating, +/area/station/cargo/storage) "vEJ" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -75947,13 +76301,6 @@ dir = 8 }, /area/station/medical/chemistry) -"vIG" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "vIH" = ( /obj/structure/closet{ name = "evidence closet 1" @@ -75961,6 +76308,18 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark/textured_edge, /area/station/security/evidence) +"vIQ" = ( +/obj/item/toy/plush/beeplushie{ + name = "multi-bee plushie"; + pixel_y = 4 + }, +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/commons/storage/mining) "vIZ" = ( /obj/machinery/duct, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -76001,6 +76360,9 @@ /obj/effect/mapping_helpers/mail_sorting/medbay/virology, /turf/open/floor/iron/white, /area/station/medical/virology) +"vJG" = ( +/turf/open/lava/plasma/ice_moon, +/area/icemoon/underground/unexplored/rivers/deep/shoreline) "vJJ" = ( /obj/structure/closet/secure_closet/bar, /obj/machinery/light/small/directional/north, @@ -76029,13 +76391,6 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/rd) -"vJZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron, -/area/station/commons/fitness) "vKk" = ( /obj/machinery/vending/security, /turf/open/floor/iron/smooth_edge, @@ -76104,14 +76459,16 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/smooth_half, /area/station/command/heads_quarters/rd) -"vLu" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 +"vLH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/central) +/obj/machinery/camera/directional/south{ + c_tag = "Service - Electrical Maintenace Lower" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/maintenance/starboard/lesser) "vLY" = ( /obj/structure/railing{ dir = 8 @@ -76234,6 +76591,14 @@ /obj/effect/spawner/random/maintenance/four, /turf/open/floor/wood, /area/station/maintenance/port/aft) +"vPk" = ( +/obj/structure/mop_bucket/janitorialcart, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron, +/area/station/service/janitor) "vPt" = ( /obj/structure/closet/secure_closet/freezer/meat/all_access, /turf/open/floor/iron/showroomfloor, @@ -76401,18 +76766,6 @@ "vSi" = ( /turf/closed/wall, /area/mine/eva) -"vSo" = ( -/obj/machinery/camera/preset/ordnance{ - dir = 4 - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/icemoon, -/area/station/science/ordnance/bomb/planet) "vSE" = ( /obj/machinery/door/window/right/directional/east{ name = "Bar Access" @@ -76600,13 +76953,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/grimy, /area/station/commons/lounge) -"vVp" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/light_construct/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/construction) "vVw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -76698,12 +77044,6 @@ /obj/structure/railing, /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) -"vWQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "vWU" = ( /obj/structure/table/glass, /obj/item/book/bible, @@ -76772,6 +77112,17 @@ /obj/item/toy/snowball, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"vXX" = ( +/obj/item/storage/box/lights/mixed, +/obj/item/storage/box/lights/mixed, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/janitor) "vYa" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/turf_decal/delivery, @@ -76909,15 +77260,6 @@ "wam" = ( /turf/open/openspace, /area/station/cargo/storage) -"wav" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/icemoon, -/area/station/science/ordnance/bomb/planet) "waz" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/smooth_large, @@ -77017,16 +77359,6 @@ dir = 8 }, /area/station/science/ordnance/office) -"wbV" = ( -/obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/tile/brown/half{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/half{ - dir = 1 - }, -/area/station/commons/storage/mining) "wbW" = ( /obj/effect/turf_decal/loading_area{ dir = 4 @@ -77135,6 +77467,18 @@ /obj/machinery/light/small/red/directional/north, /turf/open/floor/wood/large, /area/station/service/chapel) +"wej" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/light_switch/directional/west, +/obj/machinery/microwave{ + anchored_tabletop_offset = 0; + pixel_y = 5; + pixel_x = -1 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "wes" = ( /obj/effect/turf_decal/siding/wideplating_new/light, /obj/item/trash/bee, @@ -77393,6 +77737,20 @@ /obj/machinery/computer/security/telescreen/entertainment/directional/east, /turf/open/floor/engine/cult, /area/station/service/library) +"whK" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Public Mining"; + opacity = 0 + }, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/mining) "whP" = ( /obj/structure/table, /obj/effect/spawner/random/food_or_drink/donkpockets, @@ -77437,22 +77795,6 @@ /obj/structure/sign/departments/xenobio/directional/west, /turf/open/floor/iron/white, /area/station/science/research) -"wih" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/commons/storage/mining) -"win" = ( -/obj/structure/table, -/obj/item/stock_parts/subspace/analyzer, -/obj/item/stock_parts/subspace/analyzer, -/obj/item/stock_parts/subspace/analyzer, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "wiv" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/cable, @@ -77518,12 +77860,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"wjO" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/grille, -/turf/open/floor/plating, -/area/station/commons/storage/mining) "wjP" = ( /obj/structure/disposalpipe/segment, /obj/structure/rack, @@ -77624,23 +77960,11 @@ }, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"wla" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/carpet/royalblue, -/area/station/command/heads_quarters/captain) "wle" = ( -/obj/item/toy/plush/beeplushie{ - name = "multi-bee plushie"; - pixel_y = 4 - }, -/obj/structure/rack, +/obj/effect/landmark/generic_maintenance_landmark, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/commons/storage/mining) +/turf/open/floor/iron, +/area/station/construction) "wlr" = ( /obj/structure/table, /obj/item/stack/spacecash/c10, @@ -77766,6 +78090,21 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, /area/station/security/execution/education) +"wnz" = ( +/obj/structure/rack, +/obj/item/electronics/airalarm, +/obj/item/electronics/airalarm, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/electronics/apc, +/obj/item/electronics/apc, +/obj/item/electronics/firealarm, +/obj/item/electronics/firealarm, +/obj/item/electronics/firelock, +/obj/item/electronics/firelock, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/large, +/area/station/engineering/storage/tech) "wnB" = ( /obj/machinery/camera/directional/east{ c_tag = "Xenobiology Pens - Starboard Aft"; @@ -77832,15 +78171,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"woF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured_large, -/area/station/engineering/storage/tech) "woH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -77983,18 +78313,19 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"wrt" = ( -/obj/structure/table/glass, -/obj/item/book/manual/wiki/surgery{ - pixel_x = -4; - pixel_y = 3 +"wrk" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 }, -/obj/effect/spawner/surgery_tray/full, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 +/obj/machinery/door/airlock/command/glass{ + dir = 8; + name = "Bridge" }, -/turf/open/floor/iron/white, -/area/station/medical/surgery/aft) +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron, +/area/station/command/bridge) "wrw" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted{ dir = 4 @@ -78013,19 +78344,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/textured, /area/station/commons/storage/primary) -"wrD" = ( -/obj/machinery/door/poddoor/preopen{ - dir = 4; - id = "bridge blast"; - name = "Bridge Blast Door" - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/firedoor{ - dir = 4 - }, -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/turf/open/floor/iron/dark/textured, -/area/station/command/bridge) "wrE" = ( /obj/structure/table/reinforced, /obj/item/stack/sheet/glass/fifty{ @@ -78038,29 +78356,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) -"wrI" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/multitool, -/obj/item/clothing/glasses/meson, -/obj/machinery/requests_console/auto_name/directional/west, -/obj/effect/turf_decal/bot, -/obj/machinery/light/cold/directional/west, -/turf/open/floor/iron/dark/smooth_large, -/area/station/engineering/storage/tech) -"wrO" = ( -/obj/structure/rack, -/obj/effect/spawner/random/techstorage/command_all, -/obj/effect/turf_decal/tile/dark_blue/full, -/obj/structure/cable, -/obj/effect/turf_decal/siding/dark{ - dir = 1 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/engineering/storage/tech) "wrP" = ( /obj/machinery/computer/cargo, /obj/effect/turf_decal/tile/brown/half/contrasted{ @@ -78135,6 +78430,15 @@ /obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"wsP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/insectguts, +/obj/machinery/light/small/dim/directional/west, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/commons/storage/mining) "wsV" = ( /obj/effect/landmark/start/hangover, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -78173,6 +78477,16 @@ }, /turf/open/floor/iron/dark, /area/station/service/hydroponics/garden) +"wtM" = ( +/obj/machinery/door/airlock/external{ + dir = 4; + name = "External Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) "wtP" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -78337,24 +78651,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/entry) -"wwl" = ( -/obj/machinery/door/window/left/directional/west{ - name = "Deliveries"; - req_one_access = list("bar", "kitchen") - }, -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, -/obj/effect/turf_decal/siding/white{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/textured, -/area/station/service/kitchen/coldroom) "wwn" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/left/directional/west{ @@ -78390,6 +78686,10 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"wwE" = ( +/obj/structure/floodlight_frame, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "wwI" = ( /obj/structure/chair, /obj/effect/turf_decal/stripes/line{ @@ -78544,6 +78844,20 @@ }, /turf/open/floor/iron, /area/mine/laborcamp) +"wzv" = ( +/obj/machinery/atmospherics/components/tank/air{ + dir = 3; + initialize_directions = 3 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) +"wzC" = ( +/obj/machinery/holopad/secure, +/obj/effect/turf_decal/bot, +/obj/effect/landmark/event_spawn, +/obj/effect/spawner/random/engineering/tracking_beacon, +/turf/open/floor/iron/large, +/area/station/engineering/storage/tech) "wzH" = ( /obj/structure/minecart_rail{ dir = 4 @@ -78567,6 +78881,10 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/science/ordnance) +"wzY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/large, +/area/station/commons/storage/mining) "wAf" = ( /obj/machinery/requests_console/directional/north{ department = "Cargo Bay"; @@ -78587,6 +78905,15 @@ }, /turf/open/floor/iron/grimy, /area/station/service/chapel/office) +"wAA" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/storage/mining) "wAB" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -78823,6 +79150,14 @@ /obj/machinery/space_heater, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) +"wDB" = ( +/obj/structure/bed/dogbed/renault, +/mob/living/basic/pet/fox/renault, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain) "wDI" = ( /obj/effect/spawner/random/trash/moisture_trap, /obj/effect/mapping_helpers/broken_floor, @@ -78872,19 +79207,10 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/dark/textured_edge, /area/station/security/prison) -"wEr" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/status_display/ai/directional/north, -/turf/open/floor/carpet/royalblue, -/area/station/command/heads_quarters/captain) "wEu" = ( /obj/structure/sign/warning/directional/south, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"wEw" = ( -/turf/open/floor/iron, -/area/station/engineering/storage/tech) "wEG" = ( /obj/structure/extinguisher_cabinet/directional/south{ pixel_x = 4 @@ -78939,11 +79265,6 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"wFf" = ( -/obj/effect/spawner/random/structure/shipping_container, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "wFg" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/cable, @@ -78954,21 +79275,6 @@ /obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance/departmental, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"wFl" = ( -/obj/structure/table, -/obj/item/stock_parts/servo, -/obj/item/stock_parts/servo, -/obj/item/stock_parts/servo, -/obj/item/stock_parts/servo, -/obj/item/stock_parts/micro_laser/high, -/obj/item/stock_parts/micro_laser/high, -/obj/item/stock_parts/micro_laser/high, -/obj/item/stock_parts/micro_laser/high, -/obj/item/stock_parts/capacitor, -/obj/item/stock_parts/micro_laser, -/obj/structure/sign/warning/secure_area/directional/west, -/turf/open/floor/iron/dark, -/area/station/engineering/storage/tech) "wFt" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -79131,6 +79437,13 @@ }, /turf/open/floor/iron, /area/mine/laborcamp/security) +"wHX" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) "wIg" = ( /obj/machinery/mech_bay_recharge_port{ dir = 2 @@ -79206,26 +79519,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) -"wKb" = ( -/obj/machinery/door/airlock{ - dir = 4; - name = "Bar" - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/duct, -/obj/machinery/door/firedoor{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/all/service/bar, -/turf/open/floor/iron/dark/textured_half{ - dir = 1 - }, -/area/station/service/bar) "wKe" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -79256,15 +79549,6 @@ /obj/effect/turf_decal/tile/purple/fourcorners, /turf/open/floor/iron/dark/textured, /area/station/science/lab) -"wKj" = ( -/obj/structure/railing, -/obj/structure/table, -/obj/item/screwdriver{ - pixel_y = 3 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "wKu" = ( /obj/structure/disposalpipe/trunk/multiz/down{ dir = 4 @@ -79288,19 +79572,6 @@ }, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain) -"wKy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/railing/corner/end{ - dir = 8 - }, -/obj/structure/railing/corner/end/flip{ - dir = 4 - }, -/obj/machinery/holopad/secure, -/turf/open/floor/iron/dark/textured_large, -/area/station/engineering/storage/tech) "wKC" = ( /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) @@ -79311,6 +79582,40 @@ }, /turf/open/floor/iron, /area/station/command/bridge) +"wLc" = ( +/obj/structure/table, +/obj/machinery/button/flasher{ + id = "brigentry"; + pixel_x = -6; + pixel_y = -1 + }, +/obj/machinery/button/door{ + id = "innerbrig"; + name = "Brig Interior Doors Control"; + normaldoorcontrol = 1; + pixel_x = 6; + pixel_y = 9; + req_access = list("secuirty") + }, +/obj/machinery/button/door{ + id = "outerbrig"; + name = "Brig Exterior Doors Control"; + normaldoorcontrol = 1; + pixel_x = 6; + pixel_y = -1; + req_access = list("secuirty") + }, +/obj/machinery/button/door/directional/north{ + id = "briggate"; + name = "Front Gate Shutters"; + pixel_x = -6; + pixel_y = 9; + req_access = list("brig") + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/security/brig/entrance) "wLk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers, /obj/machinery/portable_atmospherics/canister/carbon_dioxide, @@ -79364,12 +79669,6 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/cmo) -"wLZ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/command/meeting_room) "wMc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -79505,12 +79804,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured, /area/station/security/processing) -"wOi" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/icemoon, -/area/station/science/ordnance/bomb/planet) "wOn" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -79761,10 +80054,6 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/glass/reinforced, /area/station/security/lockers) -"wRt" = ( -/obj/structure/cable, -/turf/open/floor/carpet/royalblue, -/area/station/command/heads_quarters/captain) "wRu" = ( /obj/machinery/portable_atmospherics/canister, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -79780,6 +80069,14 @@ }, /turf/open/floor/iron, /area/station/cargo/office) +"wRF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "wRG" = ( /obj/machinery/computer/operating, /obj/effect/turf_decal/tile/blue/full, @@ -79824,13 +80121,6 @@ /obj/effect/spawner/structure/window/hollow/reinforced/middle, /turf/open/floor/plating, /area/station/medical/chemistry) -"wRU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/construction) "wSd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -79855,9 +80145,6 @@ /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"wSn" = ( -/turf/open/floor/iron/smooth, -/area/station/commons/storage/mining) "wSo" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -80049,6 +80336,13 @@ /obj/structure/chair/stool/bar/directional/north, /turf/open/floor/eighties, /area/station/commons/lounge) +"wUJ" = ( +/obj/machinery/computer/atmos_alert/station_only, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/command/bridge) "wUL" = ( /obj/machinery/door/airlock/mining/glass{ name = "Cargo Warehouse" @@ -80125,6 +80419,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet, /area/station/service/library) +"wVr" = ( +/obj/structure/mineral_door/wood{ + dir = 4; + name = "Maintenance Bar" + }, +/turf/open/floor/wood, +/area/station/maintenance/port/aft) "wVu" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -80168,11 +80469,6 @@ /obj/effect/spawner/random/structure/tank_holder, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"wWj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/frame/machine/secured, -/turf/open/floor/iron, -/area/station/construction) "wWo" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -80186,25 +80482,6 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) -"wWB" = ( -/obj/machinery/light/small/dim/directional/west, -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/spawner/random/trash/grime, -/obj/effect/decal/cleanable/generic, -/obj/structure/sign/departments/maint/directional/west, -/turf/open/floor/iron/smooth, -/area/station/maintenance/port/lesser) -"wWF" = ( -/obj/structure/table/wood, -/obj/machinery/airalarm/directional/east, -/obj/item/storage/photo_album{ - pixel_y = -1 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/captain) "wWM" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ dir = 4 @@ -80245,10 +80522,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/medical/cryo) -"wXm" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/mining) "wXR" = ( /obj/structure/table, /obj/item/storage/medkit/regular{ @@ -80387,6 +80660,24 @@ /obj/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"wZW" = ( +/obj/effect/turf_decal/trimline/green/filled/corner, +/obj/effect/turf_decal/trimline/blue/filled/warning/corner, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/rack, +/obj/item/clothing/accessory/armband/hydro{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/clothing/accessory/armband/hydro, +/obj/item/toy/figure/botanist, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "xad" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle, /obj/structure/cable, @@ -80578,6 +80869,11 @@ initial_gas_mix = "ICEMOON_ATMOS" }, /area/icemoon/underground/explored/graveyard) +"xcg" = ( +/obj/item/fish_tank/lawyer, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/station/service/lawoffice) "xcp" = ( /obj/item/trash/pistachios, /turf/open/floor/plating, @@ -80608,14 +80904,13 @@ }, /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) -"xcP" = ( -/obj/structure/disposalpipe/segment{ +"xcS" = ( +/obj/machinery/portable_atmospherics/canister/water_vapor, +/obj/effect/turf_decal/tile/purple{ dir = 4 }, -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/tile/purple, /turf/open/floor/iron, -/area/station/hallway/primary/central) +/area/station/service/janitor) "xcW" = ( /obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ dir = 1 @@ -80639,6 +80934,12 @@ /obj/effect/mapping_helpers/airlock/access/any/command/ai_upload, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat_interior) +"xdb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/large, +/area/station/engineering/storage/tech) "xdh" = ( /obj/structure/railing{ dir = 4 @@ -80669,17 +80970,6 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/entry) -"xdJ" = ( -/obj/item/popsicle_stick{ - pixel_x = -9; - pixel_y = 1 - }, -/obj/item/popsicle_stick{ - pixel_x = -2; - pixel_y = 3 - }, -/turf/open/misc/asteroid/snow/coldroom, -/area/icemoon/underground/explored) "xdU" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1 @@ -80699,17 +80989,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/prison/rec) -"xed" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external/glass{ - dir = 4; - name = "Supply Door Airlock" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/turf/open/floor/plating, -/area/station/cargo/storage) "xeg" = ( /obj/effect/turf_decal/weather/snow/corner, /turf/open/misc/asteroid/snow/icemoon, @@ -80862,14 +81141,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"xfx" = ( -/obj/effect/spawner/random/trash/mess, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/commons/storage/mining) "xfB" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible, /turf/open/floor/iron, @@ -80945,34 +81216,6 @@ "xgy" = ( /turf/open/openspace, /area/station/service/hydroponics) -"xgz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/service/janitor) -"xgC" = ( -/obj/effect/turf_decal/trimline/green/filled/corner, -/obj/effect/turf_decal/trimline/blue/filled/warning/corner, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/rack, -/obj/item/clothing/accessory/armband/hydro{ - pixel_x = 2; - pixel_y = 4 - }, -/obj/item/clothing/accessory/armband/hydro, -/obj/item/toy/figure/botanist, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "xgF" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -81055,15 +81298,6 @@ "xhk" = ( /turf/open/floor/iron/dark, /area/station/commons/storage/primary) -"xhp" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/spawner/surgery_tray/full/morgue, -/obj/structure/table/reinforced, -/obj/machinery/requests_console/auto_name/directional/north, -/obj/effect/turf_decal/bot_white, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "xht" = ( /obj/machinery/door/window/right/directional/west{ name = "Shop Counter" @@ -81100,12 +81334,6 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/port) -"xhz" = ( -/obj/structure/closet/toolcloset, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/random/directional/north, -/turf/open/floor/iron, -/area/station/construction) "xhA" = ( /obj/structure/fence/door/opened, /obj/effect/turf_decal/weather/snow/corner{ @@ -81214,6 +81442,12 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/large, /area/station/medical/medbay/lobby) +"xjB" = ( +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "xjC" = ( /turf/open/floor/plating, /area/station/maintenance/department/cargo) @@ -81268,6 +81502,18 @@ /obj/structure/sign/poster/official/wtf_is_co2/directional/north, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"xkv" = ( +/obj/structure/sign/warning/cold_temp/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/mining) "xkI" = ( /obj/machinery/door/airlock/command{ name = "Conference Room" @@ -81393,6 +81639,13 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"xms" = ( +/obj/item/target/alien/anchored, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/icemoon, +/area/station/science/ordnance/bomb/planet) "xmx" = ( /obj/structure/sink/kitchen/directional/south, /obj/effect/decal/cleanable/dirt, @@ -81465,26 +81718,16 @@ }, /turf/open/floor/iron/white, /area/station/medical/pharmacy) -"xnn" = ( -/obj/structure/table, -/obj/effect/spawner/random/trash/food_packaging, -/obj/effect/spawner/random/trash/food_packaging, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/radio/intercom/directional/north, -/obj/item/newspaper, -/obj/machinery/camera/directional/north{ - c_tag = "Arrivals Lobby North" +"xns" = ( +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 }, -/turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) -"xnq" = ( -/obj/effect/spawner/random/structure/musician/piano/random_piano, -/obj/machinery/button/curtain{ - id = "cantena_curtains"; - pixel_x = -32 +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/iron/dark/corner{ + dir = 1 }, -/turf/open/floor/wood, -/area/station/commons/lounge) +/area/station/hallway/primary/central) "xnE" = ( /obj/machinery/duct, /obj/effect/turf_decal/tile/yellow{ @@ -81492,6 +81735,10 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos) +"xnG" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/station/maintenance/port/aft) "xnK" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -81535,10 +81782,6 @@ /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/atmos) -"xoz" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/maintenance/port/aft) "xpc" = ( /obj/effect/turf_decal/siding/yellow/corner, /obj/machinery/status_display/evac/directional/south, @@ -81602,6 +81845,26 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/greater) +"xqk" = ( +/obj/machinery/door/airlock{ + dir = 4; + name = "Bar" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/duct, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/service/bar) "xqt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -81716,16 +81979,6 @@ /obj/machinery/light/blacklight/directional/east, /turf/open/floor/wood, /area/station/service/library) -"xsn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/item/flashlight{ - pixel_x = -4; - pixel_y = 3 - }, -/turf/open/floor/iron, -/area/station/maintenance/starboard/fore) "xss" = ( /obj/machinery/light/directional/south, /obj/effect/turf_decal/tile/yellow/half/contrasted, @@ -81763,11 +82016,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/station/cargo/miningdock) -"xtx" = ( -/obj/effect/spawner/random/trash/mopbucket, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "xtG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -81926,15 +82174,16 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) -"xvw" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 +"xvs" = ( +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil{ + pixel_x = -3; + pixel_y = 3 }, -/turf/open/floor/plating/icemoon, -/area/station/science/ordnance/bomb/planet) +/obj/item/wirecutters, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) "xvy" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/stripes/line{ @@ -81949,12 +82198,6 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"xvG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/turf_decal/tile/brown, -/turf/open/floor/iron, -/area/station/commons/storage/mining) "xvI" = ( /obj/structure/railing/corner{ dir = 4 @@ -81968,24 +82211,16 @@ /obj/structure/sign/departments/botany/directional/north, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) -"xvS" = ( -/obj/machinery/computer/station_alert/station_only{ - dir = 8 - }, -/obj/machinery/button/door/directional/south{ - id = "atmos" - }, -/obj/machinery/light_switch/directional/south{ - pixel_x = -10 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage/gas) "xvU" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/sign/warning/electric_shock/directional/north, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"xvX" = ( +/obj/effect/spawner/random/maintenance, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "xvZ" = ( /obj/machinery/space_heater, /turf/open/floor/plating, @@ -82073,13 +82308,6 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/virology, /turf/open/floor/iron/dark, /area/station/medical/virology) -"xww" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating, -/area/station/commons/storage/mining) "xwx" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, @@ -82133,18 +82361,6 @@ dir = 8 }, /area/station/medical/chem_storage) -"xxr" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron/dark/side{ - dir = 8 - }, -/area/station/commons/storage/mining) "xxs" = ( /obj/effect/turf_decal/bot_white, /obj/structure/reagent_dispensers/plumbed, @@ -82159,6 +82375,11 @@ }, /turf/open/floor/iron/white, /area/station/maintenance/starboard/aft) +"xxz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) "xxB" = ( /obj/machinery/power/solar{ id = "portsolar"; @@ -82223,13 +82444,6 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) -"xyu" = ( -/obj/machinery/door/window/left/directional/west{ - name = "Hydroponics Equipment"; - req_access = list("hydroponics") - }, -/turf/open/floor/iron/half, -/area/station/service/hydroponics) "xyx" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -82278,6 +82492,17 @@ /obj/machinery/status_display/evac/directional/west, /turf/open/floor/iron/white, /area/station/science/ordnance) +"xyK" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/machinery/light/small/directional/east, +/obj/machinery/newscaster/directional/east, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/storage/mining) "xyO" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -82328,6 +82553,16 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"xzk" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/storage/wallet{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/item/newspaper, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "xzo" = ( /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -82344,6 +82579,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"xzM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk/multiz{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "xzO" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/maintenance/three, @@ -82534,6 +82779,10 @@ /obj/machinery/nuclearbomb/beer, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"xCL" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron, +/area/station/cargo/miningdock) "xCQ" = ( /obj/structure/table/glass, /obj/item/reagent_containers/cup/beaker/cryoxadone{ @@ -82733,12 +82982,35 @@ dir = 1 }, /area/station/service/hydroponics) +"xFb" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/structure/closet/wardrobe/miner, +/turf/open/floor/iron, +/area/station/cargo/miningdock) "xFf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /obj/machinery/light/directional/east, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"xFj" = ( +/obj/machinery/door/firedoor{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "xFm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -82781,21 +83053,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/storage) -"xGb" = ( -/obj/effect/decal/cleanable/garbage, -/obj/item/reagent_containers/spray/chemsprayer/party{ - pixel_x = 1 - }, -/obj/item/clothing/head/costume/festive{ - pixel_x = -5; - pixel_y = -3 - }, -/obj/effect/decal/cleanable/generic, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) -"xGh" = ( -/turf/open/genturf/blue, -/area/icemoon/underground/unexplored/rivers/deep) "xGp" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/left/directional/east{ @@ -82923,6 +83180,13 @@ /obj/machinery/recharge_station, /turf/open/floor/plating, /area/mine/eva/lower) +"xHO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/plastic{ + dir = 8 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "xId" = ( /obj/structure/rack, /obj/item/clothing/suit/hooded/wintercoat/eva{ @@ -83054,13 +83318,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"xJM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/construction) "xJT" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 8 @@ -83068,14 +83325,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"xJZ" = ( -/obj/machinery/door/morgue{ - dir = 4; - name = "Relic Closet"; - req_access = list("chapel_office") - }, -/turf/open/floor/cult, -/area/station/service/chapel/office) "xKb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/window/reinforced/spawner/directional/south, @@ -83156,19 +83405,6 @@ /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron/dark/textured_half, /area/station/security/office) -"xLm" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/machinery/mining_weather_monitor/directional/west, -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/iron/dark/side{ - dir = 8 - }, -/area/station/commons/storage/mining) "xLq" = ( /turf/open/floor/glass/reinforced, /area/station/science/ordnance/office) @@ -83199,16 +83435,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"xLL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/engineering/storage/tech) "xLS" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 9 @@ -83309,18 +83535,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/grimy, /area/station/service/theater) -"xNv" = ( -/obj/structure/sign/warning/cold_temp/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/mining) "xNC" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -83353,23 +83567,6 @@ }, /turf/open/floor/iron/dark, /area/mine/mechbay) -"xOc" = ( -/obj/machinery/light/cold/directional/west, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) -"xOf" = ( -/obj/structure/table, -/obj/machinery/light/small/dim/directional/west, -/obj/item/camera{ - pixel_x = -2; - pixel_y = 9 - }, -/obj/item/reagent_containers/cup/glass/waterbottle/empty{ - pixel_x = 4; - pixel_y = 5 - }, -/turf/open/floor/iron, -/area/station/maintenance/starboard/fore) "xOk" = ( /obj/structure/marker_beacon/burgundy, /obj/effect/mapping_helpers/no_atoms_ontop, @@ -83457,6 +83654,25 @@ /obj/structure/sign/warning/electric_shock/directional/east, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/aft) +"xQi" = ( +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/minecart_rail/railbreak{ + dir = 4 + }, +/obj/structure/closet/crate/miningcar{ + desc = "Used for quick transit of fresh produce to the kitchen. Just give it a shove."; + name = "delivery cart" + }, +/obj/item/storage/bag/plants, +/turf/open/floor/iron, +/area/station/service/hydroponics) "xQj" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -83506,6 +83722,12 @@ /obj/structure/railing, /turf/open/floor/iron, /area/mine/production) +"xQO" = ( +/obj/vehicle/sealed/mecha/ripley/cargo, +/obj/effect/decal/cleanable/wrapping, +/obj/machinery/light/small/directional/east, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/cargo/warehouse) "xQT" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, @@ -83515,6 +83737,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) +"xRo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/janitor) "xRv" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -83537,29 +83769,6 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"xRy" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/obj/machinery/door/firedoor{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/all/service/bar, -/obj/machinery/door/airlock{ - dir = 4; - name = "Bar" - }, -/turf/open/floor/iron/dark/textured_half{ - dir = 1 - }, -/area/station/service/bar) "xRI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -83623,6 +83832,12 @@ /obj/structure/sign/warning/electric_shock/directional/north, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"xSI" = ( +/obj/structure/chair/stool/directional/south, +/obj/machinery/light/small/dim/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "xSL" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -83697,24 +83912,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/office) -"xTY" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Prison Gate"; - name = "Prison Blast Door" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/status_display/door_timer{ - id = "Cell 1"; - name = "Cell 1"; - pixel_x = -32 - }, -/turf/open/floor/iron/textured, -/area/station/security/brig) "xUb" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -83777,12 +83974,6 @@ }, /turf/open/floor/engine/cult, /area/station/service/library) -"xUM" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/turf/open/floor/carpet/royalblue, -/area/station/command/heads_quarters/captain) "xUP" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -83896,15 +84087,9 @@ /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) "xVV" = ( -/obj/machinery/door/morgue{ - dir = 4; - name = "Confession Booth" - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/wood/large, -/area/station/service/chapel) +/obj/structure/sign/poster/official/walk/directional/west, +/turf/open/floor/iron, +/area/station/service/janitor) "xVZ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 @@ -83928,6 +84113,10 @@ /obj/effect/turf_decal/tile/blue/opposingcorners, /turf/open/floor/iron/dark, /area/station/service/hydroponics) +"xWm" = ( +/obj/effect/spawner/random/engineering/atmospherics_portable, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "xWo" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance/two, @@ -83962,6 +84151,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/circuit, /area/station/ai_monitored/command/nuke_storage) +"xWO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) "xWT" = ( /obj/structure/closet/crate/freezer/surplus_limbs, /obj/machinery/light_switch/directional/south, @@ -84088,6 +84281,16 @@ /obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, /turf/open/floor/iron/smooth, /area/mine/eva) +"xYU" = ( +/obj/structure/rack, +/obj/effect/spawner/random/techstorage/command_all, +/obj/effect/turf_decal/tile/dark_blue/full, +/obj/structure/cable, +/obj/effect/turf_decal/siding/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/storage/tech) "xZl" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -84099,10 +84302,6 @@ /obj/effect/mapping_helpers/no_atoms_ontop, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"xZv" = ( -/obj/machinery/status_display/ai/directional/east, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "xZy" = ( /obj/structure/stairs/east, /obj/effect/turf_decal/trimline/neutral/line, @@ -84114,11 +84313,6 @@ "xZA" = ( /turf/open/floor/iron/checker, /area/station/science/lab) -"xZR" = ( -/obj/machinery/light/directional/south, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "xZS" = ( /obj/effect/spawner/random/trash/moisture_trap, /obj/item/reagent_containers/cup/bucket, @@ -84148,14 +84342,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore) -"yae" = ( -/obj/effect/spawner/random/trash/bin, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/commons/storage/mining) "yan" = ( /obj/structure/sign/warning/electric_shock/directional/north, /obj/machinery/door/firedoor{ @@ -84314,13 +84500,6 @@ }, /turf/open/floor/carpet, /area/station/command/heads_quarters/hop) -"ybK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/large, -/area/station/commons/storage/mining) "ybN" = ( /obj/machinery/door/airlock/public/glass{ name = "Courtroom" @@ -84359,9 +84538,6 @@ dir = 1 }, /area/station/maintenance/department/cargo) -"yce" = ( -/turf/open/openspace/icemoon/keep_below, -/area/icemoon/underground/unexplored/rivers/deep/shoreline) "ych" = ( /obj/item/chair/wood/wings, /obj/effect/turf_decal/bot_red, @@ -84386,11 +84562,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/engineering/storage) -"ycG" = ( -/obj/machinery/space_heater, -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "ycO" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, @@ -84475,6 +84646,23 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/chapel) +"ydE" = ( +/obj/structure/table/glass, +/obj/machinery/vending/wallmed/directional/north, +/obj/item/book/manual/wiki/surgery{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/effect/spawner/surgery_tray/full, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Surgery A"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/surgery/fore) "ydI" = ( /turf/closed/wall/r_wall, /area/station/hallway/secondary/entry) @@ -84485,6 +84673,11 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"yef" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/obj/structure/sign/poster/contraband/random/directional/east, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "yeh" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -84496,15 +84689,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/cargo/miningdock) -"yei" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Public Mining Storage" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/navigate_destination, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured, -/area/station/commons/storage/mining) "yel" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -84541,11 +84725,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/wood, /area/station/service/library) -"yeU" = ( -/obj/item/chair, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "yfa" = ( /obj/structure/sink/directional/west, /obj/structure/cable, @@ -84782,14 +84961,6 @@ dir = 4 }, /area/station/hallway/secondary/entry) -"ykc" = ( -/obj/structure/table/wood, -/obj/item/wallframe/camera{ - pixel_x = 1; - pixel_y = -2 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "ykd" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -84864,12 +85035,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/storage) -"ylP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/maintenance/port/aft) "ylU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -104068,7 +104233,7 @@ thA iDt psb rxz -gFX +wDU wDU aNw qmt @@ -108412,7 +108577,7 @@ thA thA thA thA -dYo +vJG ghx ghx thA @@ -116638,7 +116803,7 @@ oSU oSU oSU oSU -xGh +aVL thA thA ghx @@ -120414,7 +120579,7 @@ njJ rCe njJ pnG -dRq +cWH njJ bsd lOP @@ -121185,7 +121350,7 @@ dqx rXg njJ uTo -rKd +cCG njJ rKs hLk @@ -121956,7 +122121,7 @@ kpH dqx njJ isc -ceM +mEb njJ bsd fBs @@ -165985,7 +166150,7 @@ gga eoy dHk eoy -wWB +pPY iLh thA thA @@ -171650,16 +171815,16 @@ fKv gjq gjq jpS -esY -rBZ -ugx -dsv -gJJ -kOA +qSl +kuC +spV +cwS +rpP +jpe oXo piV -tJT -jYU +wej +qUa kNW wOF pZD @@ -171906,15 +172071,15 @@ myZ fKv gjq gjq -sja -ter +aEM +xHO fPB piV -tPp -vWQ -pWT -mJk -fkn +aOE +liB +rCO +baV +krJ svy cLq wUL @@ -172164,16 +172329,16 @@ psb eJf eJf jpS -kAN +nys piV piV -szw -lff +fzg +kII piV -owP -nLw -fgA -gOJ +bWV +cUs +ljz +tlA kNW ksn mGJ @@ -172421,16 +172586,16 @@ ajz gjq gjq jpS -ijy +dPG fPB -kkz +xvX fPB piV fPB piV -byU +rRn clz -pwl +mml kNW lxT bgt @@ -172678,16 +172843,16 @@ psb eJf eJf jpS -qrL +xQO piV -dsv -oBF -ycG -szw -kuC -kzR -rlJ -gxH +cwS +yef +lrY +fzg +owl +ngn +gKd +kqV kNW kIU stZ @@ -172884,7 +173049,7 @@ gjq wUj qLB jpy -cgB +xcg ssY wUj gjq @@ -172943,15 +173108,15 @@ jpS jpS sxb jpS -iLO -aYj +szJ +nvy kNW rrV xGt lVk uUT uUT -jPy +uPh qZT uUT vgD @@ -173196,12 +173361,12 @@ iDt iDt iDt ijY -aEM +svm jlK jlK jpS -rlJ -rlJ +gKd +gKd rsY hdb avh @@ -173457,8 +173622,8 @@ iDt iDt iDt jpS -uaQ -uaQ +hAw +hAw rsY avi dTs @@ -174230,7 +174395,7 @@ iDt qau scw iDt -sDA +snL scw scw scw @@ -175450,7 +175615,7 @@ nKL hpF uHv nup -rVF +pCp dAZ eRp qKS @@ -176222,13 +176387,13 @@ uBs xaH erM nDp -xTY +uFg lgD nDp -tAe +mtS vms nDp -cSS +tlt vms iYU nZd @@ -176284,12 +176449,12 @@ iDt ijY iDt iDt -ppP +rOq iDt ppY -pRn +qBU iDt -geY +xjB iDt iDt thA @@ -176477,7 +176642,7 @@ xuA tuc pPK yiL -jxS +gwl rQZ bSk uQC @@ -176536,14 +176701,14 @@ hcZ iDt iDt iDt -rSi +bpr iDt iDt iDt iDt kta -rcB -hZZ +lPW +iPI kta kta kta @@ -176799,12 +176964,12 @@ iDt tEC tEC kta -nJh -nOw +uoj +nCn kta -uRy -wle -rUl +nRa +vIQ +uyi kta kta thA @@ -177053,16 +177218,16 @@ iDt scw iDt kta -bGh -bGh +khr +khr kta -btX -fxu -eYU -gGS -ebJ -hqe -eeJ +aXG +nIu +tKr +hCH +gCf +jSL +cOv kta thA thA @@ -177310,16 +177475,16 @@ kta kta kta kta -gjU -cYb +imP +oGl kta -kEE -hZZ +whK +iPI kta -kTV -ggJ -nIX -wXm +lBc +iUD +unK +tns kta thA thA @@ -177503,7 +177668,7 @@ agF tgP rGh iJE -lgE +qnU yiL cVV dhi @@ -177563,20 +177728,20 @@ iDt iDt iDt kta -eDu -nZs -rAG -ixK -lPP -lPP -xLm -mCm -xxr +sVR +teM +kVb +oTr +nWy +nWy +etp +qeW +hmy kta kta kta kta -oSD +qEU kta thA thA @@ -177820,21 +177985,21 @@ gjq iDt iDt kta -nZs -nZs -cbA -wih -pwE -lrj -lrj -uRT +teM +teM +qML +twr +qvb +tel +tel +jYB qQC -lNx -cCi +emv +eeR kta -oXM -wSn -mat +iUy +lym +nwO thA thA thA @@ -178078,20 +178243,20 @@ gjq iDt kta kta -wjO -dah -wih -tts -rLM -rLM -iAw -vzh -bGz -cCi +iiX +jIC +twr +wzY +jQy +jQy +nqx +pls +otA +eeR kta -lpe -wXm -mat +iIH +tns +nwO thA thA thA @@ -178335,19 +178500,19 @@ gjq gjq gjq gjq -bxc -wjO -ifU -dpg -tpf -sAY -iNu -uiM +eBh +iiX +kqt +tbt +wAA +xyK +uDd +kOd kta kta kta kta -tZC +pKD kta thA thA @@ -178593,18 +178758,18 @@ gjq gjq gjq gjq -bxc +eBh kta -bNY -bgO +rrP +kYP kta -cJB -hZZ +pYK +iPI kta -fiP -rem -xww -wSn +jLb +wsP +sTY +lym kta thA thA @@ -178839,12 +179004,12 @@ gjq gjq gjq mxK -nSY +aPA jqT -dOA +kBb jqT jqT -urU +qKs gjq gjq gjq @@ -178852,16 +179017,16 @@ gjq gjq gjq kta -bGh -bGh +khr +khr kta -ebJ -olo -bxO -tpx -olo -tpx -eeJ +gCf +dzO +cZJ +lpx +dzO +lpx +cOv kta thA thA @@ -179098,8 +179263,8 @@ mxK qhR jqT jqT -oVa -ujN +kPH +fIX jqT jqT fhL @@ -179112,12 +179277,12 @@ iDt scw iDt kta -xNv -tMJ +xkv +jKv kta -gGc -xfx -yae +aol +nxi +noT kta kta thA @@ -179350,15 +179515,15 @@ iDt iDt scw iDt -rSi +bpr rcY iDt scw -dCS -sbC -tbv -ioW -dCS +erO +gqI +dGu +pzl +erO gjq gjq gjq @@ -179369,8 +179534,8 @@ iDt iDt scw kta -rVZ -hZZ +arQ +iPI kta kta kta @@ -179612,10 +179777,10 @@ kLd iDt jqT jqT -uIY -wKy -wrO -dCS +iho +qNf +xYU +erO gjq gjq gjq @@ -179625,12 +179790,12 @@ gjq iDt iDt iDt -pWG +uCn iDt ppY -iAn +aQm iDt -eRX +tnY iDt iDt iDt @@ -179864,15 +180029,15 @@ iDt iDt iDt iDt -rSi +bpr rcY scw ebd -dCS -orN -woF -rKb -dCS +erO +kBe +vsl +jYL +erO gjq gjq gjq @@ -180122,12 +180287,12 @@ iDt iDt iDt iDt -jSZ +tfX xvp jqT jqT -uOe -cVZ +uBT +hDQ jqT jqT fhL @@ -180337,7 +180502,7 @@ ulz pNm cLp fdG -rnv +saX gjq gjq gjq @@ -180380,13 +180545,13 @@ iDt gjq gjq gjq -jSZ -nSY +tfX +aPA jqT -dOA +kBb jqT jqT -urU +qKs gjq gjq gjq @@ -180659,9 +180824,9 @@ iNo iNo iDt scw -dTH +cvE keA -hYf +qTD iDt xMq thA @@ -181909,7 +182074,7 @@ thA thA thA kLd -dqp +sWD iDt scw scw @@ -182197,7 +182362,7 @@ vmA thA thA thA -yce +mLf gjq mep nFN @@ -182423,7 +182588,7 @@ thA thA iDt kLd -bAe +qGt scw bqq uvA @@ -183451,8 +183616,8 @@ iDt iDt xMq exw -mAf -hHi +caA +mty urQ sQI bdr @@ -184223,7 +184388,7 @@ sBy sBy exw ghD -xyu +lKN fLu exw xKq @@ -185259,10 +185424,10 @@ tPT kiO iTr rds -veu +xQi exw xMq -ukr +mJz xMq scw iDt @@ -185270,9 +185435,9 @@ scw iDt iDt iDt -mnj +amL keA -fLR +qXm scw wRR lAc @@ -185514,7 +185679,7 @@ exw gbK shF qPV -xgC +wZW exw eXD exw @@ -185528,7 +185693,7 @@ scw btU xUf syW -fKq +sCz hVX xUf eXH @@ -186017,7 +186182,7 @@ qMT hfs bMk mxR -xnq +tHb kuq lom idI @@ -186299,7 +186464,7 @@ scw btU btU btU -rFt +aoP ako hjM hjM @@ -186536,7 +186701,7 @@ kuq dHi wgK jSa -oZQ +fZH iGQ gnJ amz @@ -186554,7 +186719,7 @@ ppY iDt btU btU -bRc +vfZ btU mSX dYr @@ -186793,7 +186958,7 @@ dnn lom phz cps -gie +fMC iGQ gnJ qFO @@ -187583,7 +187748,7 @@ gaA btU btU btU -iLU +idU btU btU ako @@ -187831,7 +187996,7 @@ hph jre adS wzH -hWy +dfR psb iUr exu @@ -188086,7 +188251,7 @@ xEV xZS jre jre -xdJ +oDb wzH awE psb @@ -188594,8 +188759,8 @@ isq jMr jre jre -nVJ -xOc +ilu +aoY eyP rtw rOx @@ -188850,9 +189015,9 @@ jre jre jre jre -lOA -ceQ -rRT +gfP +bpl +uiO yfs sTl sTl @@ -189101,15 +189266,15 @@ qZG vmW nNe tgj -pOU +mnA jre tVF kUo iKd -ees -mQk -rlx -mQk +iwT +lKi +voN +sVC fwB fwB fwB @@ -189121,9 +189286,9 @@ lTl uKc wcn btU -glO +vtu btU -osu +ale rrR tzR qfy @@ -189361,12 +189526,12 @@ qhb oXE jre sRz -tec +fmw vcD -jBB -mQk -jUb -mQk +jyj +qax +qms +efa mQk fwB nNg @@ -189610,7 +189775,7 @@ xMq xMq jre aMU -qpO +xzk oXE dYH rlB @@ -189618,15 +189783,15 @@ jMO oXE jre tAT -btq -alB -mQk -mQk -jvi -mQk +qjc +nRn +fJd +qax +kRZ +fnd mbM oje -bMO +gYq fwB dom fSB @@ -189635,7 +189800,7 @@ psb xcf jww btU -obY +jUs btU ewT akN @@ -189876,11 +190041,11 @@ iis jre dLA pnw -ipx -xZv -mQk -fja -prX +huO +hDA +hHo +aYO +vts eud kww qPE @@ -190128,7 +190293,7 @@ jVp qhi vmW nNe -ykc +hts hQv jre jre @@ -190136,8 +190301,8 @@ oqE jre jre jre -gWi -jre +dsO +gFx jre jre jre @@ -190205,7 +190370,7 @@ rbY ffe alM alM -sMi +wtM alM iDt thA @@ -190392,9 +190557,9 @@ nzU aWj wSs oXE -fOS -pWE -oXE +fRN +rID +taZ wSs tpc jre @@ -190649,7 +190814,7 @@ ljq jre weT jre -exQ +wRF jre dQN jre @@ -190663,12 +190828,12 @@ jre fuH fuH btU -xhp +bRe luR mlT lqZ jUB -ore +vyq aow kkF vLY @@ -190719,7 +190884,7 @@ alM aUT oxO alM -hAv +ouU alM alM alM @@ -190906,7 +191071,7 @@ vwD jre rYT biE -olR +hvv jre jsO jre @@ -191161,9 +191326,9 @@ jre jre uVr sHe -frF -oTx -fQe +amU +cwP +vLH jre vFg jre @@ -191418,9 +191583,9 @@ xMq jre oiC jre -lvF +xzM wFt -lvF +xzM jre htg djH @@ -191439,7 +191604,7 @@ thA thA thA xDb -gPK +lfA ukz gPR tFY @@ -191675,9 +191840,9 @@ xMq jre jre jre +bKz jre -jre -jre +bKz jre aZj aCo @@ -191696,11 +191861,11 @@ thA thA thA xDb -gQo +fBy tIu toG jUB -jaQ +aov anK nrC xDb @@ -191932,9 +192097,9 @@ iDt iDt xMq lvt +oZi lvt -xMq -xMq +oZi jre jre jre @@ -192187,13 +192352,13 @@ scw iDt iDt iDt -rcY +qau lvt +oZi lvt -xMq -thA -thA -thA +ctg +vbc +qHy thA thA thA @@ -192444,13 +192609,13 @@ scw scw iDt cCb -syw -pJm -pJm -pCG -iDt -thA -thA +gsd +xvp +hGf +kmN +sdZ +pKW +ayx thA thA thA @@ -192702,11 +192867,11 @@ iDt scw iDt iDt -iDt -iDt -iDt -iDt -thA +ixS +pJm +nvB +pJm +jSY thA thA thA @@ -197322,7 +197487,7 @@ mku tBs tBs tBs -xJZ +vch wrX aMA nbG @@ -198355,7 +198520,7 @@ tBs cMG etH oTA -kVr +lBN qOu xBt iih @@ -198644,9 +198809,9 @@ sDB sDB sDB nPo -jDT +rCs kwn -eHu +teQ uIf qsa pOL @@ -198901,9 +199066,9 @@ lvt lvt uwT uwT -eKt -dSn -qTg +bvw +oDw +gyO uIf xmM bWH @@ -199130,9 +199295,9 @@ wrX wrX wrX wrX -gSv +nfS wrX -xVV +eoS wrX wrX wrX @@ -200195,7 +200360,7 @@ sGT qNt dwj qNt -jyY +uVf sbd jaY rhY @@ -230478,7 +230643,7 @@ bpm xQs rqi iRo -xnn +lvW uTI cuc mVE @@ -232019,7 +232184,7 @@ mLd hBG pEs aFH -bOJ +jRI nza nza nza @@ -233589,11 +233754,11 @@ tKI mZf ooL maT -mLN -xed +nNZ +oSK maT -aKB -omQ +vEG +rEr maT sEB bln @@ -234103,11 +234268,11 @@ tKI cYo tEL maT -mLN -cwt +nNZ +jME kXr -fUV -omQ +hTk +rEr maT mZf kKU @@ -234889,7 +235054,7 @@ bln bln qjQ aOd -tmr +axg qjQ bln bln @@ -235145,7 +235310,7 @@ bln bln bln aOd -ohn +iAu rLo qjQ bln @@ -235660,7 +235825,7 @@ qjQ pvY esc qjQ -tmr +axg qjQ bln bln @@ -235916,8 +236081,8 @@ ajw tAS hoD hoD -cYP -bcn +vDO +lgH qjQ bln bln @@ -236174,7 +236339,7 @@ qjQ eGw ewI pPl -hzi +xCL qjQ bln bln @@ -236433,7 +236598,7 @@ qcE aFz hoD qjQ -mTd +utC bln ptf qOl @@ -236688,7 +236853,7 @@ qjQ jAq qxb nrm -bSm +iQr qjQ oot oot @@ -236951,7 +237116,7 @@ bln bln pRj jzk -azq +kYF jOJ qzM pRj @@ -237464,7 +237629,7 @@ qjQ bln bln pRj -tLa +wVr drs pRj pRj @@ -237726,7 +237891,7 @@ tut qai qoK pXv -rke +sgh pXv pXv pXv @@ -238445,7 +238610,7 @@ sDl sDl sDl hDU -biG +dAQ fVU iYe hDU @@ -238487,7 +238652,7 @@ vQj fvx hxE hxE -rjj +xFb aOd bln bln @@ -239007,7 +239172,7 @@ bln bln bln pRj -jdS +ili pRj pRj jQC @@ -239264,8 +239429,8 @@ mQb bln bln pRj -jmg -rCM +axr +mUh pRj jQC ptf @@ -239511,9 +239676,9 @@ thK dnT pRj kCn -cgz +baB pRj -hwh +xSI tXb pRj bln @@ -239521,8 +239686,8 @@ bln uer mQb pRj -jmg -xtx +axr +sma pRj wMU ptf @@ -239745,7 +239910,7 @@ gst sbY xAy xAy -aQp +tge ozH bZg gst @@ -239771,7 +239936,7 @@ kCn daS bKp bPz -jmg +axr pRj bln mQb @@ -239779,7 +239944,7 @@ mQb bln pRj daS -eBZ +tZM pRj wMU ptf @@ -240028,7 +240193,7 @@ mgo daS pRj iaT -eRm +twF pRj bln bln @@ -240248,9 +240413,9 @@ biY biY biY biY -nLV -poo -eDD +ede +iKj +bPp bXm lnc lnc @@ -240287,12 +240452,12 @@ pRj pRj pRj pRj -ovg -ovg -ovg -ovg +bON +bON +bON +bON pRj -aRc +wwE kkD daS dWZ @@ -240536,21 +240701,21 @@ vYA hzV rGl vTo -jmQ +oVu mye ptd ptd obj obj obj -dKl +tXE obj obj obj obj -dKl +tXE obj -tZA +bGl obj uoB mNY @@ -240793,21 +240958,21 @@ iwz uag iwz nQO -thm +nua pRj pRj -ktY +kFR daS -fQM -ltX -jmg -wFf -jUT -jmg -wFf +tZb +rLc +axr +utU +teF +axr +utU daS daS -fQM +tZb daS fhW mNY @@ -241050,22 +241215,22 @@ wXW cYj bep ylU -gaK -vLu +lAB +uvC pRj -bbJ +dHu daS daS -tvr -jmg +nOY +axr daS bPz daS -jmg -jmg +axr +axr daS -jmg -jmg +axr +axr fhW mNY anz @@ -241308,21 +241473,21 @@ jII rLl ylU dnq -dBi +uaY pRj jQC daS -jmg -rDP +axr +fXq daS daS -cab +tbi daS daS -jmg -jmg -jmg -jmg +axr +axr +axr +axr fhW mNY krU @@ -241565,22 +241730,22 @@ jII okb ylU dnq -ntk +dyB pRj jQC pXv -lbT -ayp -fIQ -aDs -jmg -dNQ -hSC -hmC -gTQ -eTs -eTs -jno +jUV +sGz +miL +pZS +axr +qCa +aph +oIy +aAM +nON +nON +iQb mNY juS aQR @@ -241824,19 +241989,19 @@ cRF dnq pRj pRj -kBb +dOa pRj pRj pRj pRj -eyE -rCp -hnH +hSm +qLA +jui pRj -cYr -cZX -vIG -oPh +pyR +fWC +lmB +lGw daS mNY ctI @@ -242018,7 +242183,7 @@ jDM brx rai amn -jZl +hzG wZD iDq bln @@ -242055,7 +242220,7 @@ mQb bNy qWZ oVR -cAH +apo oVR dxK xVq @@ -242080,20 +242245,20 @@ dnq ylU pua pRj -con +xWm jQC -bee -ktY -con +ukS +kFR +xWm pRj pRj pRj pRj pRj -alF +tRa fhW -yeU -wKj +rCZ +uow daS mNY gFI @@ -242311,9 +242476,9 @@ pAZ stJ fsm qWZ -mDJ -thj -mHm +lvA +gKU +aoW dxK fbw hue @@ -242331,7 +242496,7 @@ ool jRC cgC jaq -jBp +vvT cpm dnq ylU @@ -242340,15 +242505,15 @@ pRj pRj pRj pRj -lcS +jnm pRj pRj -kFy -cnV +gTf +sPI uFh vym vym -ulA +sdd vym pRj oKv @@ -242569,7 +242734,7 @@ jDB qWZ qWZ qWZ -sfs +wrk qWZ dxK cct @@ -242594,17 +242759,17 @@ ooV bwD qdI pRj -ryF -jsI -tCd -ylP -xoz +fHv +phk +isK +kXL +xnG pRj -iXX -hDX -vka -jHk -vVp +swO +pHr +qxn +tFK +vAH smg dlR pRj @@ -242851,19 +243016,19 @@ dVF ylU bep pRj -adb -msQ -qns -jdt -xoz +uuy +mIc +juM +frc +xnG pRj kta kta vym vym -oAg -wRU -kNm +pUx +bFf +gAJ pRj daS mNY @@ -243112,14 +243277,14 @@ pRj pRj pRj pRj -dBI +kmR pRj -lWn +cCP kta -qeE +fcR uFh bts -xJM +pwi oVt pRj swS @@ -243343,13 +243508,13 @@ xRw nYv qVp xKJ -qZu -oII -jmH -cEc -wLZ -sqk -bAr +dvA +lCI +age +olG +bEC +uEy +iLm dxK dxK cpm @@ -243361,21 +243526,21 @@ cpm cpm cpm cpm -mcj +dJd iuv dnq -vse +nlv uMN -liT -cNK -ffR -nAR -baE -wbV +nsM +fZf +qpU +cEr +iXT +aHV kta -iJY +gDm oKY -wWj +kCI iXk hHD pRj @@ -243621,18 +243786,18 @@ pAZ dnq iuv dnq -vse +nlv uMN uMN -pzm -ybK -nAR -bbA -lAj +msP +hPQ +cEr +aQO +fFv kta bbo vja -gTU +wle bbo bOk pRj @@ -243850,7 +244015,7 @@ rLl eJe utR tmQ -kcw +wUJ ppK wna lCg @@ -243877,15 +244042,15 @@ paM paM dnq vrX -xZR +nBl kta -cdo -clg -sHj -iwU -gwg -pnZ -ipj +aHR +cPi +gCl +jpH +mkn +qnw +sEn kta khu bbo @@ -244087,7 +244252,7 @@ sDl psN riB dkY -gkR +wLc hzY bRn fng @@ -244107,7 +244272,7 @@ ljx nxW utR tmQ -cly +qXF dMX gER nOH @@ -244122,31 +244287,31 @@ ybv ybv paM paM -bdY -oFk -sBj -soc -wrI -kll -oeS -wFl -hxG +orG +gtP +grc +xvs +pgp +adf +tQg +mdc +rWc paM -aTK +nTe iuv dnq kta -ckd -nWh -klT -tts -xvG -jou -bbA +ihh +ryh +rXY +wzY +mIH +bqi +aQO kta -xhz +drw bbo -owi +gwx erA qll pRj @@ -244377,27 +244542,27 @@ bdK dzi ybv ybv -oEJ -quT -pPX -aKH -ukf -ukf -ukf -ukf -ukf -ojz -mGv +kxT +mVi +dgQ +rTM +fwf +fwf +fwf +fwf +fwf +qHP +eYs hcL -tUT +isx iuv dnq kta kta kta -yei -vse -qvG +kYS +nlv +kmC kta kta kta @@ -244421,7 +244586,7 @@ xtQ hIH kCn mNY -usX +hFJ tMD ehJ fMt @@ -244634,34 +244799,34 @@ rOC dhL ybv ybv -dMG -fGm -fGm -nWm -ggY -uDI -voE -lgf -dVy -uHx -ukf +aqd +umu +umu +fyK +dPq +qqT +xdb +gVq +wnz +loT +fwf hcL -tUT +isx nlT krv hyc fdy fdy -tjU +pPh cLN -uES +xxz fdy -qvs +pvg nQW vsz fdy fdy -tYQ +wHX nbi qzu cLN @@ -244891,19 +245056,19 @@ mNJ lVc ybv ybv -myz -fGm -fGm -nWm -nOn -nOn -oyG -nOn -nOn -wEw -dSL -rYM -lIi +tIy +umu +umu +fyK +oIr +oIr +wzC +oIr +oIr +sZU +obc +bRM +jbj gMM jba mKC @@ -244935,7 +245100,7 @@ xss pRj fFy mNY -kLL +bTq xUP gRt rpF @@ -245136,7 +245301,7 @@ oBs utR tmQ axf -laS +kzD nsj lhv sDV @@ -245148,26 +245313,26 @@ oqz rSN ybv ybv -dMG -fGm -fGm -nWm -fUA -ijJ -eET -jlT -nNz -vzK -cQJ +aqd +umu +umu +fyK +dCR +lGG +apt +rcA +nrB +xWO +dHs hcL -tUT +isx fuM vXh hyc rWn mJa rWn -eoC +mHa vmk rUY rWn @@ -245405,21 +245570,21 @@ cHO oYu ybv ybv -mJy -xLL -khm -pxE -cQJ -cQJ -cQJ -cQJ -cQJ -rAq -dfm +jkK +kaW +bHj +ery +dHs +dHs +dHs +dHs +dHs +qlQ +ncu hcL -tUT +isx iuv -usF +ipa xVK xVK xVK @@ -245448,10 +245613,10 @@ hOc bID qnC vkz -mUK +aom pcg deD -aOo +unG qnC isX eBI @@ -245664,23 +245829,23 @@ ybv ybv paM paM -rGQ -aZe -lJf -iSI -bhu -gTZ -uJw -cye -win +tcn +bMC +dUP +unH +uOo +bMt +oOt +mln +igb paM -nnV +xns iuv -sWF +qrb xVK -kil -cUK -qmR +pks +xVV +cKo cvS gDp kRP @@ -245935,9 +246100,9 @@ dnq iuv yas xVK -lhR +jbh eUW -uxR +bmu cvS gDp kRP @@ -245961,7 +246126,7 @@ dcC jGB akz sCA -vnp +mta ojv bAT eri @@ -246192,9 +246357,9 @@ dnq iuv vXh xVK -pYG +qbn fiO -jML +arg cvS gDp kRP @@ -246427,10 +246592,10 @@ wKI iFs qVp lpM -meN -fNY -gTz -eAT +aJE +hho +cNK +lKw lpM lpM lpM @@ -246445,13 +246610,13 @@ mhQ mhQ mhQ mhQ -qjj +rhw iuv -xcP +ozW xVK -gSP +vXX cNm -isY +vPk cvS gDp kRP @@ -246689,22 +246854,22 @@ mvc mvc rAW gYz -pVB -upp -ddf +mVw +kKG +jda lpM rEo euf jzn mhQ -oJi +kDa erZ wVu fZg mhQ pzb iuv -svC +prh qFX lke laM @@ -246945,9 +247110,9 @@ rCD uEm uEm mvc -vvb -nMV -wla +uQT +uDa +cPV mvc lzb anu @@ -246961,11 +247126,11 @@ lRf mhQ dnq iuv -grQ +iFm xVK -xgz +xRo owv -oMW +qXU uwO rSx kRP @@ -247195,16 +247360,16 @@ luG qWZ qWZ qWZ -jvb +qKn qWZ lpM -wEr -xUM -xUM -wla +ejT +iEV +iEV +cPV hCV -gWg -gWg +jeC +jeC mvc lpM oGQ @@ -247218,11 +247383,11 @@ xex mhQ cBk kdA -cSX +xFj xVK -jVz +xcS tyK -jgr +eMf cvS gDp iMA @@ -247451,15 +247616,15 @@ pAZ wtj eJK qWZ -rNt -uZG -wrD +kGe +lWd +dOF lpM -pmY -uqm -uqm -bhZ -uGN +djh +sgZ +sgZ +pZN +kwu dmG uPB xLF @@ -247486,8 +247651,8 @@ qEm kRP fiT kQf -lht -xvS +hDh +vnt keP qTa ctr @@ -247514,7 +247679,7 @@ xrg dxn aPD aPD -rlo +rHx fKf pst bWQ @@ -247709,13 +247874,13 @@ eAu hFr qWZ oVR -dBP +lfo oVR lpM -rmT -cvp -cvp -wRt +oii +auU +auU +fgq heX qjx heX @@ -248226,14 +248391,14 @@ hZf rYE xUg lpM -fPW -tUk -bgd -hlM -fRF -wWF -teY -aAj +rdf +khU +wDB +gjQ +ipU +rCh +pny +jEg dGU wdg bVv @@ -248503,7 +248668,7 @@ mhQ mhQ rLl jtE -lUr +ggr cvS cvS bRH @@ -248761,7 +248926,7 @@ vBh vBh uuq vlf -eDV +hcO cvS iGa caZ @@ -249275,7 +249440,7 @@ xdW dnq dnq dnq -fGL +tmr cvS sxu kwX @@ -249766,7 +249931,7 @@ eik cby otW jLc -jBg +lvb xWk sTH lso @@ -250519,7 +250684,7 @@ cGB cGB gsI tLL -vJZ +vlE kKL kKL kKL @@ -250537,7 +250702,7 @@ ryJ xgy faW dHf -mVH +rWI cOy sTH lso @@ -251042,7 +251207,7 @@ bYC isC rxY fzK -xRy +iIm fzK jRA wXb @@ -251543,7 +251708,7 @@ skl gaC vfW vfW -jBY +qEB vfW lvk crv @@ -251797,7 +251962,7 @@ ygS oGr pDA skl -ufw +ePq uRo uRo uRo @@ -251810,7 +251975,7 @@ lli uar gAt kKL -sio +jcs fzK mbm dTa @@ -252614,7 +252779,7 @@ juw nji tkf ikz -sTk +vyW tHr pBA pBA @@ -253093,7 +253258,7 @@ knl knl dGO uar -xGb +sVW kKL dBN kOx @@ -253611,7 +253776,7 @@ oqY kKL kKL kKL -sLI +ndv uXd iiE oIj @@ -253703,7 +253868,7 @@ tWy dZX swF swF -paD +qFu gzz uCg mfD @@ -253711,7 +253876,7 @@ mfD skX ojW ife -sUv +rKK pbs pbs pbs @@ -254126,7 +254291,7 @@ tml kKL kKL uFE -wKb +xqk cpY cpY hhO @@ -254404,7 +254569,7 @@ icA joa dqO nKa -dHo +qYx qWe agK lwQ @@ -254706,7 +254871,7 @@ pBI sCm xFf kdC -jio +kRw fUW jeR pMN @@ -254889,7 +255054,7 @@ hfd syC gmW cvH -xOf +kbL kKL soE neE @@ -254901,7 +255066,7 @@ aUt vnA ooG oUp -uQX +syI xbn hJo vaL @@ -254962,7 +255127,7 @@ npD npD npD npD -bFT +mdI npD npD npD @@ -255161,11 +255326,11 @@ tYt nRW gtw aoM -nAh +niO gtw wAJ aBP -krV +kNf lso cbs nGA @@ -255221,7 +255386,7 @@ dFA sZF gTi emT -qZW +wzv oCE gcT gcT @@ -255478,7 +255643,7 @@ iye sZF xkr gTi -tSh +cip oCE lSu mQb @@ -255666,16 +255831,16 @@ kKL rsf kKL kKL -wwl +tSF kKL kKL cpY twn nBt -htZ +jJQ rlE mBL -vjA +hZm uDv aFh cpY @@ -255917,7 +256082,7 @@ lRZ iLn niE bMF -xsn +pJi ovz kKL sQS @@ -256447,7 +256612,7 @@ kKL tvZ kKL pdB -clU +oBD lqM aYk kKL @@ -256960,7 +257125,7 @@ enH kKL tvZ kKL -pCV +lne rrg atI fpA @@ -256989,11 +257154,11 @@ oRu ccR uKj dDw -imT +ydE qgu tYA vds -wrt +uhG liz txH mFE @@ -257007,7 +257172,7 @@ jYy sZF jPi fed -jJy +nGv hQK eZu pGG @@ -261098,7 +261263,7 @@ ujP htO sqn jbU -qfg +gEy dUe ank baX @@ -261358,7 +261523,7 @@ jbU anP cRK uMK -maI +rep oMT ppz jbU @@ -262886,7 +263051,7 @@ faq ofi snI bZQ -rDY +gSq ojF rQW ftN @@ -264418,9 +264583,9 @@ vHI vHI dFt dFt -eia -qQR -dgK +fdj +lah +asU qPL elw elw @@ -264690,7 +264855,7 @@ gGx jxc aFt oPP -iTJ +eje mEJ kCz vJS @@ -265204,7 +265369,7 @@ tgB kKv fhb vAP -bsN +qER sca gpj oQn @@ -267257,7 +267422,7 @@ ooL ooL ooL ooL -nXb +omh buU omh skW @@ -267514,7 +267679,7 @@ bln bln lSu lSu -nXb +omh omh omh xTy @@ -273953,9 +274118,9 @@ bln bln bln bln -mhP -ufM -mhP +jxw +jEU +jxw bln bln wNO @@ -274209,11 +274374,11 @@ bln bln bln bln -qMg -mhP -nYF -mhP -qMg +aZw +jxw +erR +jxw +aZw bln bln wNO @@ -274465,13 +274630,13 @@ bln bln bln bln -mhP -mhP -dRU -ufM -qqh -mhP -mhP +jxw +jxw +doy +jEU +fkS +jxw +jxw bln bln wNO @@ -274721,15 +274886,15 @@ wNO wNO bln bln -oaD -oaD -nMU -kcy -kcy -kcy -nxo -oaD -oaD +rkW +rkW +onk +rTz +rTz +rTz +oZk +rkW +rkW bln wNO wNO @@ -274978,15 +275143,15 @@ wNO wNO bln bln -mhP -qtl -wOi -kcy -hGu -kcy -lfZ -aYt -mhP +jxw +kZL +eEQ +rTz +vkS +rTz +kNE +fRP +jxw bln wNO wNO @@ -275235,15 +275400,15 @@ wNO wNO bln bln -oaD -oaD -ihM -kcy -kcy -kcy -xvw -oaD -oaD +rkW +rkW +kDX +rTz +rTz +rTz +aTx +rkW +rkW bln wNO wNO @@ -275493,13 +275658,13 @@ wNO wNO bln bln -mhP -mhP -vSo -fRr -wav -mhP -mhP +jxw +jxw +gAa +xms +qEq +jxw +jxw bln bln wNO @@ -275751,11 +275916,11 @@ wNO wNO bln bln -qMg -mhP -viM -mhP -qMg +aZw +jxw +lZt +jxw +aZw bln bln wNO @@ -276009,9 +276174,9 @@ wNO wNO bln bln -mhP -oaD -mhP +jxw +rkW +jxw bln bln wNO diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 5458a2499e73c..8636f32245bbd 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -2028,6 +2028,19 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central) +"aLF" = ( +/obj/machinery/disposal/bin, +/obj/machinery/firealarm/directional/south, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple/half/contrasted, +/obj/machinery/camera/directional/south{ + network = list("ss13","rd"); + c_tag = "Science Lobby" + }, +/turf/open/floor/iron/white, +/area/station/science/lobby) "aLW" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -2155,19 +2168,6 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/dark, /area/station/command/bridge) -"aNN" = ( -/obj/machinery/airalarm/directional/south, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "aNQ" = ( /obj/structure/table, /obj/item/stack/medical/gauze, @@ -3977,13 +3977,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"btl" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) "btn" = ( /obj/effect/decal/cleanable/dirt, /obj/item/storage/box/drinkingglasses, @@ -4991,13 +4984,6 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/plating/airless, /area/space/nearstation) -"bLV" = ( -/obj/machinery/computer/atmos_alert/station_only, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/command/bridge) "bMa" = ( /obj/structure/disposaloutlet{ dir = 4; @@ -7069,6 +7055,20 @@ dir = 4 }, /area/station/science/lobby) +"cyR" = ( +/obj/machinery/airalarm/directional/south, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/mapping_helpers/airalarm/tlv_kitchen, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "cyS" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -7574,12 +7574,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"cKk" = ( -/obj/machinery/status_display/ai/directional/north, -/obj/machinery/computer/station_alert/station_only, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/ce) "cKm" = ( /obj/structure/training_machine, /turf/open/floor/engine, @@ -9743,10 +9737,6 @@ /obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/iron/cafeteria, /area/station/security/prison) -"dAS" = ( -/mob/living/basic/goose/vomit, -/turf/open/floor/wood, -/area/station/maintenance/port/aft) "dBb" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/structure/window/reinforced/spawner/directional/north, @@ -10030,6 +10020,11 @@ "dHc" = ( /turf/closed/wall, /area/station/hallway/primary/port) +"dHg" = ( +/obj/machinery/computer/atmos_alert/station_only, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/engineering/main) "dHi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -10448,16 +10443,6 @@ /obj/effect/turf_decal/siding/purple, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) -"dOB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/turf_decal/tile/purple/half/contrasted{ - dir = 1 - }, -/obj/machinery/destructive_scanner, -/turf/open/floor/iron/white, -/area/station/science/lobby) "dON" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11083,6 +11068,13 @@ }, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"dYK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/commons/lounge) "dYT" = ( /obj/machinery/rnd/destructive_analyzer, /obj/effect/turf_decal/siding{ @@ -13665,6 +13657,16 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/engine, /area/station/science/xenobiology) +"eSy" = ( +/obj/machinery/computer/station_alert/station_only{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/break_room) "eSC" = ( /obj/structure/window/spawner/directional/west, /obj/effect/turf_decal/siding/wood{ @@ -14351,21 +14353,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"ffX" = ( -/obj/machinery/door/window/left/directional/west{ - name = "Disposals Chute" - }, -/obj/machinery/disposal/delivery_chute{ - dir = 8; - name = "disposals chute"; - pixel_x = 5 - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/command/teleporter) "fgl" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -14374,6 +14361,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"fgn" = ( +/mob/living/basic/goose/vomit, +/turf/open/floor/wood, +/area/station/maintenance/port/aft) "fgu" = ( /obj/machinery/light/directional/south, /obj/effect/spawner/random/vending/colavend, @@ -14445,6 +14436,18 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"fhn" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil/slippery, +/obj/effect/decal/cleanable/blood/gibs/down, +/mob/living/simple_animal/bot/mulebot{ + name = "Leaping Rabbit" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "fhp" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -15036,12 +15039,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/security/prison/safe) -"fpk" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/commons/lounge) "fpn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -16033,6 +16030,16 @@ /obj/machinery/atmospherics/pipe/layer_manifold/cyan/visible, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"fLr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 1 + }, +/obj/machinery/destructive_scanner, +/turf/open/floor/iron/white, +/area/station/science/lobby) "fLz" = ( /turf/open/floor/iron/freezer, /area/station/commons/toilet/restrooms) @@ -18761,6 +18768,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"gMG" = ( +/obj/machinery/status_display/evac/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Engineering - Power Monitoring" + }, +/obj/machinery/computer/station_alert/station_only, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/engineering/main) "gMQ" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19239,22 +19255,6 @@ }, /turf/open/floor/catwalk_floor, /area/station/cargo/storage) -"gWC" = ( -/obj/machinery/computer/station_alert/station_only{ - dir = 4 - }, -/obj/structure/plaque/static_plaque/atmos{ - pixel_x = -32 - }, -/obj/machinery/newscaster/directional/south, -/obj/machinery/camera/directional/west{ - c_tag = "Atmospherics - Desk" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/iron/checker, -/area/station/engineering/atmos/storage/gas) "gWH" = ( /obj/effect/spawner/random/maintenance, /obj/structure/disposalpipe/segment, @@ -19463,6 +19463,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/main) +"hab" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "hav" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/cable, @@ -22777,18 +22784,6 @@ }, /turf/open/floor/carpet, /area/station/command/heads_quarters/hop) -"iiF" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/oil/slippery, -/obj/effect/decal/cleanable/blood/gibs/down, -/mob/living/simple_animal/bot/mulebot{ - name = "Leaping Rabbit" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "iiL" = ( /obj/machinery/air_sensor/mix_tank, /turf/open/floor/engine/vacuum, @@ -23065,13 +23060,6 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"inj" = ( -/obj/machinery/computer/station_alert/station_only, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/command/bridge) "inw" = ( /obj/machinery/disposal/bin{ desc = "A pneumatic waste disposal unit. This one leads into space!"; @@ -26997,16 +26985,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/service/hydroponics/garden) -"jCb" = ( -/obj/machinery/computer/station_alert/station_only{ - dir = 4 - }, -/obj/structure/cable, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/break_room) "jCj" = ( /obj/item/toy/basketball, /turf/open/floor/plating, @@ -27235,6 +27213,16 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/treatment_center) +"jGN" = ( +/obj/machinery/computer/station_alert/station_only{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/obj/machinery/computer/security/telescreen/minisat/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/satellite) "jGO" = ( /obj/machinery/hydroponics/soil, /obj/item/cultivator, @@ -27778,6 +27766,15 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/white, /area/station/medical/virology) +"jPw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/commons/lounge) "jPE" = ( /obj/structure/sign/map/left{ desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; @@ -28063,6 +28060,19 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) +"jUs" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) "jUu" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -29767,6 +29777,21 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"kAp" = ( +/obj/machinery/door/window/left/directional/west{ + name = "Disposals Chute" + }, +/obj/machinery/disposal/delivery_chute{ + dir = 8; + name = "disposals chute"; + pixel_x = 5 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/command/teleporter) "kAF" = ( /obj/machinery/duct, /turf/open/floor/iron/freezer, @@ -30352,13 +30377,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"kKU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/commons/lounge) "kKZ" = ( /obj/effect/spawner/structure/window, /obj/structure/cable, @@ -31292,18 +31310,6 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"laT" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, -/obj/machinery/door/airlock{ - name = "Kitchen Cold Room" - }, -/obj/machinery/duct, -/obj/structure/disposalpipe/segment, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen/coldroom) "lbh" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 @@ -32840,15 +32846,6 @@ /obj/structure/curtain, /turf/open/floor/iron/freezer, /area/station/commons/fitness/recreation) -"lLA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood, -/area/station/commons/lounge) "lLB" = ( /obj/structure/table/glass, /obj/item/wrench, @@ -33134,6 +33131,16 @@ /obj/structure/window/spawner/directional/south, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) +"lPy" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/structure/crate, +/obj/machinery/light/dim/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/greater) "lPz" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/cable, @@ -33498,6 +33505,15 @@ /obj/item/stamp/law, /turf/open/floor/wood, /area/station/service/lawoffice) +"lWm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/commons/lounge) "lWq" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -33838,16 +33854,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"mcV" = ( -/obj/machinery/computer/station_alert/station_only{ - dir = 1 - }, -/obj/machinery/light/directional/south, -/obj/machinery/computer/security/telescreen/minisat/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/storage/satellite) "mcW" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 @@ -36402,6 +36408,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/ai_monitored/command/storage/eva) +"mXj" = ( +/obj/machinery/computer/station_alert/station_only, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) "mXk" = ( /obj/structure/closet/crate/hydroponics, /obj/effect/spawner/random/maintenance, @@ -39721,19 +39734,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"odf" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/lobby) "odh" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 @@ -40670,6 +40670,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/visible, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) +"owv" = ( +/obj/machinery/computer/atmos_alert/station_only, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) "oww" = ( /obj/machinery/firealarm/directional/east, /obj/structure/chair/office/light, @@ -40770,19 +40777,6 @@ }, /turf/open/floor/wood/large, /area/station/command/heads_quarters/qm) -"oyd" = ( -/obj/structure/sign/directions/security{ - dir = 1; - pixel_y = 8 - }, -/obj/structure/sign/directions/engineering{ - dir = 4 - }, -/obj/structure/sign/directions/command{ - pixel_y = -8 - }, -/turf/closed/wall, -/area/station/commons/storage/tools) "oyj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, @@ -44177,6 +44171,12 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) +"pIM" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/commons/lounge) "pIU" = ( /obj/structure/closet/secure_closet/medical1, /obj/effect/turf_decal/tile/green/half/contrasted{ @@ -44358,6 +44358,22 @@ }, /turf/open/floor/iron, /area/station/security/warden) +"pMH" = ( +/obj/machinery/computer/station_alert/station_only{ + dir = 4 + }, +/obj/structure/plaque/static_plaque/atmos{ + pixel_x = -32 + }, +/obj/machinery/newscaster/directional/south, +/obj/machinery/camera/directional/west{ + c_tag = "Atmospherics - Desk" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/iron/checker, +/area/station/engineering/atmos/storage/gas) "pMS" = ( /obj/structure/disposaloutlet, /obj/structure/disposalpipe/trunk{ @@ -46939,6 +46955,12 @@ }, /turf/open/floor/iron/grimy, /area/station/security/detectives_office) +"qJd" = ( +/obj/machinery/status_display/ai/directional/north, +/obj/machinery/computer/station_alert/station_only, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) "qJi" = ( /obj/machinery/door/poddoor/shutters{ dir = 4; @@ -47359,6 +47381,18 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"qPq" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, +/obj/machinery/duct, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/machinery/door/airlock/freezer{ + name = "Freezer" + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen/coldroom) "qPs" = ( /obj/structure/lattice/catwalk, /obj/structure/marker_beacon/indigo, @@ -50287,15 +50321,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"rOu" = ( -/obj/machinery/status_display/evac/directional/north, -/obj/machinery/camera/directional/north{ - c_tag = "Engineering - Power Monitoring" - }, -/obj/machinery/computer/station_alert/station_only, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/main) "rOz" = ( /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, @@ -56220,6 +56245,22 @@ "tSw" = ( /turf/closed/wall, /area/station/maintenance/aft/greater) +"tSD" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding/purple{ + dir = 9 + }, +/obj/item/toy/figure/geneticist, +/obj/item/radio/intercom/directional/west, +/obj/item/storage/pill_bottle/mutadone{ + pixel_x = -9 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/flesh_shears{ + pixel_x = 15 + }, +/turf/open/floor/iron/dark, +/area/station/science/genetics) "tSP" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58875,20 +58916,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"uMz" = ( -/obj/machinery/computer/atmos_alert/station_only{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/sign/poster/official/safety_internals/directional/south, -/obj/machinery/light/directional/south, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/iron/dark/corner, -/area/station/engineering/atmos/storage/gas) "uMR" = ( /obj/machinery/holopad, /turf/open/floor/iron/white/side{ @@ -59643,6 +59670,19 @@ /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron, /area/station/security/prison/work) +"uZj" = ( +/obj/structure/sign/directions/security{ + dir = 1; + pixel_y = 8 + }, +/obj/structure/sign/directions/engineering{ + dir = 4 + }, +/obj/structure/sign/directions/command{ + pixel_y = -8 + }, +/turf/closed/wall, +/area/station/commons/storage/tools) "uZo" = ( /obj/machinery/light/small/directional/north, /obj/structure/sign/warning/secure_area/directional/north, @@ -60046,16 +60086,6 @@ "vhv" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmospherics_engine) -"vhw" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/spawner/random/structure/crate, -/obj/machinery/light/dim/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/starboard/greater) "vhB" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -60593,6 +60623,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) +"vqj" = ( +/obj/machinery/computer/atmos_alert/station_only{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/sign/poster/official/safety_internals/directional/south, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/iron/dark/corner, +/area/station/engineering/atmos/storage/gas) "vqk" = ( /obj/structure/cable, /obj/machinery/door/firedoor, @@ -64021,11 +64065,6 @@ /obj/structure/window/spawner/directional/east, /turf/open/floor/iron/dark, /area/station/commons/fitness/recreation) -"wwf" = ( -/obj/machinery/computer/atmos_alert/station_only, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/main) "wwj" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -64274,19 +64313,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/prison) -"wBq" = ( -/obj/structure/table, -/obj/effect/turf_decal/siding/purple{ - dir = 9 - }, -/obj/item/toy/figure/geneticist, -/obj/item/radio/intercom/directional/west, -/obj/item/storage/pill_bottle/mutadone{ - pixel_x = -9 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/science/genetics) "wBs" = ( /obj/machinery/vending/cigarette, /turf/open/floor/wood, @@ -67374,19 +67400,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) -"xGP" = ( -/obj/machinery/disposal/bin, -/obj/machinery/firealarm/directional/south, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple/half/contrasted, -/obj/machinery/camera/directional/south{ - network = list("ss13","rd"); - c_tag = "Science Lobby" - }, -/turf/open/floor/iron/white, -/area/station/science/lobby) "xGT" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall, @@ -68115,15 +68128,6 @@ }, /turf/open/floor/engine/vacuum, /area/station/engineering/atmos) -"xWq" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/turf/open/floor/wood, -/area/station/commons/lounge) "xWr" = ( /obj/effect/turf_decal/trimline/red/filled/corner, /obj/machinery/light/directional/east, @@ -82564,7 +82568,7 @@ bLm cXW uxS uxS -dAS +fgn ehv ehn bIO @@ -87641,7 +87645,7 @@ xgB hJO duG omV -iiF +fhn cuh jBp cLj @@ -89723,7 +89727,7 @@ bNN rod sgZ gav -btl +hab uyP ejD rUd @@ -90490,7 +90494,7 @@ kQP rcR hIu liX -odf +jUs nDG oor oor @@ -94625,7 +94629,7 @@ aks hux bbT ilq -ffX +kAp jnI ghK cky @@ -96150,7 +96154,7 @@ uoe tKN aaf dsQ -inj +mXj dUj gGy cwX @@ -96664,7 +96668,7 @@ qBC tKN aaf dsQ -bLV +owv dUj gGy dMY @@ -97234,7 +97238,7 @@ oIg cId rQl oIg -wBq +tSD bEC lsV aXW @@ -98494,7 +98498,7 @@ ghk cGG fak jUh -xGP +aLF cZK sGm ola @@ -98748,7 +98752,7 @@ hPM tHR udN qCj -dOB +fLr rtN nuS vGz @@ -101803,7 +101807,7 @@ qXB dZm dZm dZm -oyd +uZj ghl xZW uOX @@ -102067,7 +102071,7 @@ twN lkc hhN pBi -fpk +pIM xEJ yjc crf @@ -103093,7 +103097,7 @@ wAA fRS tLx bvJ -kKU +dYK iPT gae uFf @@ -103607,7 +103611,7 @@ baM fRS twN qFo -lLA +lWm gvm vLM wSs @@ -103864,7 +103868,7 @@ vFB kFp aeb bvJ -xWq +jPw kdN wSs jGA @@ -105933,7 +105937,7 @@ jzT ivy ebK sLp -laT +qPq mSS ebY hiM @@ -106189,7 +106193,7 @@ sEx gIm sbM qKD -aNN +cyR huG rzk leP @@ -107482,7 +107486,7 @@ bxO nGo aBM unL -vhw +lPy vRk aJn fhA @@ -108217,7 +108221,7 @@ tfg ssI mBw uXd -wwf +dHg gLK qul acs @@ -108474,12 +108478,12 @@ bYp gXu hSi uXd -rOu +gMG dWG uGm acs uXd -cKk +qJd nLz fEL rSi @@ -108756,7 +108760,7 @@ cVj uKz fnT dss -gWC +pMH fWA fWA fWA @@ -109776,7 +109780,7 @@ mGX kfp jxM jvu -jCb +eSy juJ cZL ely @@ -110298,7 +110302,7 @@ tYF jPH wfC jIz -uMz +vqj peM xld dkC @@ -125195,7 +125199,7 @@ ldP xgE uFw tXz -mcV +jGN gfU gfU gfU diff --git a/_maps/map_files/NebulaStation/NebulaStation.dmm b/_maps/map_files/NebulaStation/NebulaStation.dmm index a386fe33b1a97..921d522c634d6 100644 --- a/_maps/map_files/NebulaStation/NebulaStation.dmm +++ b/_maps/map_files/NebulaStation/NebulaStation.dmm @@ -9598,6 +9598,9 @@ dir = 4 }, /obj/machinery/duct, +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold{ + dir = 1 + }, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) "byG" = ( @@ -12914,6 +12917,9 @@ dir = 4 }, /obj/machinery/duct, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 8 + }, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) "bVR" = ( @@ -13265,10 +13271,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/service/kitchen) -"bYy" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/station/maintenance/fore/greater) "bYA" = ( /obj/effect/turf_decal/siding/wideplating_new/dark{ dir = 8 @@ -25169,9 +25171,6 @@ /turf/open/floor/iron/dark, /area/station/service/chapel) "dMb" = ( -/obj/machinery/door/airlock{ - name = "Kitchen Cold Room" - }, /obj/effect/mapping_helpers/airlock/access/all/service/kitchen, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -25184,6 +25183,9 @@ dir = 4 }, /obj/machinery/duct, +/obj/machinery/door/airlock/freezer{ + name = "Freezer" + }, /turf/open/floor/iron/dark, /area/station/service/kitchen/coldroom) "dMg" = ( @@ -33526,6 +33528,7 @@ /obj/effect/turf_decal/trimline/brown/corner{ dir = 4 }, +/obj/effect/mapping_helpers/airalarm/tlv_kitchen, /turf/open/floor/iron/white/small, /area/station/service/kitchen) "eXC" = ( @@ -41346,8 +41349,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, /obj/machinery/duct, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) "ggh" = ( @@ -57574,12 +57579,14 @@ /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/access/all/service/kitchen, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/machinery/duct, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/station/maintenance/port/fore) "iAX" = ( @@ -69075,14 +69082,14 @@ /turf/open/floor/iron/dark/textured_large, /area/station/cargo/lobby) "kla" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 - }, /obj/effect/turf_decal/weather/snow/corner, /obj/effect/turf_decal/weather/snow, /obj/effect/turf_decal/weather/snow/corner{ dir = 1 }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) "kle" = ( @@ -105408,6 +105415,9 @@ dir = 4 }, /obj/machinery/duct, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 + }, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) "pCo" = ( @@ -108939,6 +108949,10 @@ }, /turf/open/floor/iron/dark/textured, /area/station/commons/fitness/recreation/lasertag) +"qfe" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/station/maintenance/fore/greater) "qfk" = ( /obj/effect/turf_decal/siding{ dir = 10 @@ -141009,9 +141023,12 @@ "uXN" = ( /obj/structure/table/reinforced/rglass, /obj/item/storage/box/monkeycubes{ - pixel_y = 0; + pixel_y = 10; pixel_x = 0 }, +/obj/item/flesh_shears{ + pixel_y = -5 + }, /turf/open/floor/iron/dark/textured, /area/station/science/genetics) "uXR" = ( @@ -141776,6 +141793,9 @@ /obj/structure/railing{ dir = 8 }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) "vcM" = ( @@ -264684,7 +264704,7 @@ oDZ aHU rNJ eIp -bYy +qfe cDg vOl dAJ @@ -266232,7 +266252,7 @@ bzt jkE nLg cij -bYy +qfe loK kCi nKp @@ -266489,7 +266509,7 @@ giL pPi qIG jDn -ybp +qfe pKk wtb iWl @@ -266746,7 +266766,7 @@ tNK wNx nJU vBf -bYy +qfe rqn wik jyw diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm index a245764783726..fb5deb9e15e91 100644 --- a/_maps/map_files/debug/runtimestation.dmm +++ b/_maps/map_files/debug/runtimestation.dmm @@ -2283,6 +2283,10 @@ /obj/item/disk/tech_disk/debug, /turf/open/floor/iron, /area/station/science) +"OZ" = ( +/obj/item/storage/bag/sheetsnatcher/debug, +/turf/open/floor/iron, +/area/station/science) "Pc" = ( /obj/effect/turf_decal/plaque{ icon_state = "L13" @@ -6441,7 +6445,7 @@ Pv Xp ah NZ -bD +OZ XC co bA diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index 2bffe131bdc09..080a7cb81b2b4 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -1313,25 +1313,6 @@ /obj/item/stack/ore/glass, /turf/open/floor/plating/airless, /area/station/asteroid) -"aeo" = ( -/turf/open/misc/asteroid/snow/coldroom, -/area/station/service/kitchen/coldroom) -"aeq" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/weather/snow/corner, -/obj/effect/turf_decal/weather/snow, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/kitchen_coldroom, -/area/station/service/kitchen/coldroom) -"aer" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, -/obj/effect/turf_decal/weather/snow, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/kitchen_coldroom, -/area/station/service/kitchen/coldroom) "aes" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -1392,11 +1373,6 @@ }, /turf/open/floor/iron/grimy, /area/station/service/chapel/office) -"aeF" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/turf/open/misc/asteroid/snow/coldroom, -/area/station/service/kitchen/coldroom) "aeG" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -1434,16 +1410,6 @@ /obj/structure/railing, /turf/open/floor/plating/airless, /area/station/asteroid) -"aeN" = ( -/obj/machinery/door/airlock{ - name = "Kitchen Access" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor, -/area/station/service/kitchen/coldroom) "aeO" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/railing/corner{ @@ -2926,14 +2892,6 @@ /obj/effect/turf_decal/trimline/neutral/filled/line, /turf/open/floor/iron/dark, /area/station/commons/fitness/recreation/entertainment) -"apl" = ( -/obj/effect/turf_decal/weather/snow, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/obj/structure/kitchenspike, -/turf/open/floor/iron/kitchen_coldroom, -/area/station/service/kitchen/coldroom) "apr" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 6 @@ -3290,6 +3248,16 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"aub" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/floor/iron/kitchen_coldroom, +/area/station/service/kitchen/coldroom) "auc" = ( /obj/effect/turf_decal/siding/thinplating/corner, /obj/structure/cable, @@ -6131,6 +6099,16 @@ "aYA" = ( /turf/open/floor/iron, /area/station/hallway/primary/tram/right) +"aYC" = ( +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/freezer{ + name = "Freezer" + }, +/turf/open/floor/catwalk_floor, +/area/station/service/kitchen/coldroom) "aYF" = ( /turf/closed/wall, /area/station/engineering/main) @@ -6513,15 +6491,6 @@ }, /turf/open/floor/iron/white, /area/station/security/medical) -"bje" = ( -/obj/effect/spawner/random/structure{ - name = "random snowman spawner"; - loot = list(/obj/structure/statue/snow/snowman); - spawn_loot_chance = 10 - }, -/obj/machinery/light_switch/directional/south, -/turf/open/misc/asteroid/snow/coldroom, -/area/station/service/kitchen/coldroom) "bjK" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 10 @@ -6935,11 +6904,6 @@ /obj/effect/mapping_helpers/airlock/locked, /turf/open/floor/catwalk_floor, /area/station/maintenance/tram/right) -"btg" = ( -/obj/effect/mapping_helpers/airalarm/tlv_cold_room, -/obj/machinery/airalarm/directional/south, -/turf/open/misc/asteroid/snow/coldroom, -/area/station/service/kitchen/coldroom) "btC" = ( /obj/structure/closet/wardrobe/green, /obj/effect/landmark/start/hangover/closet, @@ -7475,6 +7439,19 @@ /obj/effect/turf_decal/tile/dark_green/fourcorners, /turf/open/floor/iron/white, /area/station/science/genetics) +"bDL" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/effect/spawner/random/structure{ + name = "random snowman spawner"; + loot = list(/obj/structure/statue/snow/snowman); + spawn_loot_chance = 10 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/turf/open/misc/asteroid/snow/coldroom, +/area/station/service/kitchen/coldroom) "bEo" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 9 @@ -7720,6 +7697,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/office) +"bHP" = ( +/obj/machinery/computer/station_alert/station_only{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/structure/sign/poster/official/build/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/engine_smes) "bIf" = ( /obj/effect/turf_decal/trimline/purple/filled/corner, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7772,13 +7759,6 @@ }, /turf/open/floor/iron/dark, /area/station/service/chapel/office) -"bIN" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/cafeteria, -/area/station/science/breakroom) "bJb" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 1 @@ -8930,17 +8910,6 @@ }, /turf/open/floor/engine/cult, /area/station/service/library) -"cay" = ( -/mob/living/basic/goat/pete, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, -/obj/effect/turf_decal/weather/snow, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron/kitchen_coldroom, -/area/station/service/kitchen/coldroom) "caN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/neutral/filled/line, @@ -10159,17 +10128,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/tram/left) -"cxh" = ( -/obj/machinery/computer/atmos_alert/station_only{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/obj/machinery/newscaster/directional/east, -/obj/structure/sign/clock/directional/north, -/turf/open/floor/iron/dark, -/area/station/engineering/engine_smes) "cxr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10562,12 +10520,6 @@ }, /turf/open/floor/iron/grimy, /area/station/service/chapel/office) -"cDD" = ( -/obj/effect/turf_decal/weather/snow, -/obj/effect/turf_decal/weather/snow/corner, -/obj/machinery/icecream_vat, -/turf/open/floor/iron/kitchen_coldroom, -/area/station/service/kitchen/coldroom) "cDK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -11388,14 +11340,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/office) -"cQY" = ( -/obj/structure/closet/secure_closet/freezer/meat, -/obj/effect/turf_decal/weather/snow, -/obj/machinery/camera/directional/north{ - c_tag = "Civilian - Kitchen Freezer" - }, -/turf/open/floor/iron/kitchen_coldroom, -/area/station/service/kitchen/coldroom) "cRf" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -11637,14 +11581,6 @@ /obj/structure/cable, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai) -"cVs" = ( -/obj/effect/turf_decal/weather/snow, -/obj/machinery/gibber, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/iron/kitchen_coldroom, -/area/station/service/kitchen/coldroom) "cVw" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -13502,6 +13438,26 @@ "dEv" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/security/armory) +"dEH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/external{ + name = "External Access"; + frequency = 1449; + id_tag = "middleleft_upper_eva_internal"; + autoclose = 0 + }, +/obj/machinery/door_buttons/access_button{ + name = "External Access Button"; + pixel_y = -24; + idSelf = "middleleft_upper_eva_airlock_control"; + idDoor = "middleleft_upper_eva_internal" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/catwalk_floor, +/area/station/hallway/primary/tram/center) "dEM" = ( /obj/structure/disposalpipe/junction/flip{ dir = 8 @@ -14497,6 +14453,14 @@ "dUT" = ( /turf/closed/wall, /area/station/science/lower) +"dUZ" = ( +/obj/structure/ladder, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/coldroom, +/area/station/service/kitchen/coldroom) "dVj" = ( /obj/structure/table/glass, /obj/machinery/reagentgrinder, @@ -14598,6 +14562,18 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) +"dXg" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/obj/effect/turf_decal/weather/snow, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/floor/iron/kitchen_coldroom, +/area/station/service/kitchen/coldroom) "dXm" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 9 @@ -16055,12 +16031,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"eAA" = ( -/obj/machinery/computer/station_alert/station_only{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat/foyer) "eAE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ @@ -16977,6 +16947,13 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/courtroom) +"eTK" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/effect/turf_decal/bot_white, +/obj/machinery/airalarm/directional/north, +/obj/effect/mapping_helpers/airalarm/tlv_kitchen, +/turf/open/floor/iron/white/side, +/area/station/service/kitchen) "eTQ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -17352,6 +17329,18 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/checkpoint/escape) +"far" = ( +/obj/machinery/computer/atmos_alert/station_only{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/command/bridge) "faN" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 @@ -17568,13 +17557,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"fgH" = ( -/obj/effect/turf_decal/weather/snow, -/obj/effect/turf_decal/weather/snow/corner, -/obj/item/radio/intercom/directional/north, -/obj/machinery/food_cart, -/turf/open/floor/iron/kitchen_coldroom, -/area/station/service/kitchen/coldroom) "fhc" = ( /obj/machinery/camera/directional/west{ c_tag = "Hallway - Central Tram Platform North" @@ -17809,6 +17791,15 @@ /obj/structure/grille, /turf/closed/wall/r_wall, /area/station/engineering/atmos) +"fjT" = ( +/obj/effect/turf_decal/weather/snow, +/obj/effect/turf_decal/weather/snow/corner, +/obj/machinery/icecream_vat, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/floor/iron/kitchen_coldroom, +/area/station/service/kitchen/coldroom) "fke" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 @@ -18254,6 +18245,13 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/science/ordnance/storage) +"fss" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) "fst" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/grunge{ @@ -21112,11 +21110,6 @@ }, /turf/open/floor/iron/white, /area/station/science/research) -"gvC" = ( -/obj/structure/closet/secure_closet/freezer/meat, -/obj/effect/turf_decal/weather/snow, -/turf/open/floor/iron/kitchen_coldroom, -/area/station/service/kitchen/coldroom) "gvI" = ( /turf/closed/wall, /area/station/security/prison) @@ -21813,21 +21806,6 @@ /obj/machinery/light/directional/east, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"gIS" = ( -/obj/machinery/computer/station_alert/station_only{ - dir = 8 - }, -/obj/machinery/requests_console/directional/east{ - name = "Atmospherics Requests Console"; - department = "Atmospherics" - }, -/obj/machinery/camera/emp_proof{ - dir = 6; - network = list("ss13","engineering"); - c_tag = "Engineering - Atmospherics Front Desk" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "gJs" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/turf_decal/tile/bar/opposingcorners, @@ -22575,6 +22553,20 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"gXI" = ( +/mob/living/basic/goat/pete, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/obj/effect/turf_decal/weather/snow, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/turf/open/floor/iron/kitchen_coldroom, +/area/station/service/kitchen/coldroom) "gYd" = ( /obj/machinery/rnd/production/techfab/department/security, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -24424,6 +24416,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security/prison/safe) +"hLW" = ( +/obj/effect/turf_decal/weather/snow, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/floor/iron/kitchen_coldroom, +/area/station/service/kitchen/coldroom) "hMg" = ( /obj/structure/table, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -25388,6 +25388,14 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/engineering/atmos) +"idn" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/obj/effect/turf_decal/weather/snow, +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold{ + dir = 1 + }, +/turf/open/floor/iron/kitchen_coldroom, +/area/station/service/kitchen/coldroom) "idz" = ( /obj/effect/turf_decal/trimline/green/corner, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -27078,6 +27086,16 @@ }, /turf/open/floor/wood, /area/station/service/bar/backroom) +"iLL" = ( +/obj/effect/turf_decal/weather/snow, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom{ + dir = 4 + }, +/turf/open/floor/iron/kitchen_coldroom, +/area/station/service/kitchen/coldroom) "iLP" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/turf_decal/stripes/asteroid/box, @@ -27769,6 +27787,12 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) +"iXM" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/misc/asteroid/snow/coldroom, +/area/station/service/kitchen/coldroom) "iXQ" = ( /obj/structure/disposalpipe/segment{ dir = 8 @@ -28889,6 +28913,24 @@ }, /turf/open/floor/iron/white, /area/station/science/research) +"jpW" = ( +/obj/machinery/door/airlock/research{ + name = "Ordnance Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance_storage, +/obj/machinery/door/firedoor/heavy, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science/ordnance/office) "jqs" = ( /obj/effect/turf_decal/trimline/yellow/warning{ dir = 8 @@ -29410,6 +29452,16 @@ "jyH" = ( /turf/closed/wall, /area/station/medical/pharmacy) +"jyK" = ( +/obj/effect/turf_decal/weather/snow, +/obj/effect/turf_decal/weather/snow/corner, +/obj/item/radio/intercom/directional/north, +/obj/machinery/food_cart, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/floor/iron/kitchen_coldroom, +/area/station/service/kitchen/coldroom) "jyQ" = ( /obj/structure/table/wood, /obj/item/folder/red, @@ -31502,6 +31554,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/miningdock) +"kis" = ( +/obj/machinery/computer/atmos_alert/station_only{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/machinery/newscaster/directional/east, +/obj/structure/sign/clock/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/engine_smes) "kix" = ( /obj/structure/cable, /obj/structure/extinguisher_cabinet/directional/north, @@ -32802,6 +32865,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/commons/dorms) +"kFZ" = ( +/obj/effect/mapping_helpers/airalarm/tlv_cold_room, +/obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/misc/asteroid/snow/coldroom, +/area/station/service/kitchen/coldroom) "kGa" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -33172,26 +33241,6 @@ /obj/effect/mapping_helpers/airlock/access/all/service/lawyer, /turf/open/floor/wood, /area/station/service/lawoffice) -"kKC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/external{ - name = "External Access"; - frequency = 1449; - id_tag = "middleleft_upper_eva_internal"; - autoclose = 0 - }, -/obj/machinery/door_buttons/access_button{ - name = "External Access Button"; - pixel_y = -24; - idSelf = "middleleft_upper_eva_airlock_control"; - idDoor = "middleleft_upper_eva_internal" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/catwalk_floor, -/area/station/hallway/primary/tram/center) "kKV" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2, /turf/open/floor/iron/dark, @@ -33820,6 +33869,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor, /area/station/maintenance/tram/left) +"kVf" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/cafeteria, +/area/station/science/breakroom) "kVl" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/neutral/filled/corner{ @@ -34440,6 +34496,12 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron, /area/station/maintenance/tram/left) +"lhr" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 1 + }, +/turf/open/misc/asteroid/snow/coldroom, +/area/station/service/kitchen/coldroom) "lhI" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 @@ -36846,13 +36908,6 @@ }, /turf/open/floor/catwalk_floor, /area/station/hallway/primary/tram/right) -"lVh" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/secondary/command) "lVi" = ( /turf/closed/wall, /area/station/maintenance/department/science) @@ -38102,6 +38157,18 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/hallway) +"mrG" = ( +/obj/effect/turf_decal/trimline/dark_green/filled/line{ + dir = 9 + }, +/obj/structure/table/glass, +/obj/machinery/requests_console/directional/west{ + name = "Genetics Requests Console"; + department = "Genetics" + }, +/obj/item/flesh_shears, +/turf/open/floor/iron/white, +/area/station/science/genetics) "mrS" = ( /obj/structure/chair{ dir = 8 @@ -41676,24 +41743,6 @@ /obj/structure/sign/poster/official/random/directional/south, /turf/open/floor/iron, /area/station/commons/fitness) -"nIj" = ( -/obj/machinery/door/airlock/research{ - name = "Ordnance Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance_storage, -/obj/machinery/door/firedoor/heavy, -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/white, -/area/station/science/ordnance/office) "nIr" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 @@ -43812,13 +43861,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/miningdock) -"owl" = ( -/obj/effect/turf_decal/weather/snow, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/iron/kitchen_coldroom, -/area/station/service/kitchen/coldroom) "owm" = ( /obj/effect/spawner/random/structure/tank_holder, /turf/open/floor/iron/dark, @@ -46911,6 +46953,17 @@ /obj/structure/fish_mount/bar/directional/north, /turf/open/floor/wood/large, /area/station/service/theater) +"pEn" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/obj/effect/turf_decal/weather/snow, +/obj/machinery/camera/directional/north{ + c_tag = "Civilian - Kitchen Freezer" + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/floor/iron/kitchen_coldroom, +/area/station/service/kitchen/coldroom) "pEx" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -48226,6 +48279,14 @@ /obj/structure/sign/clock/directional/west, /turf/open/floor/iron, /area/station/security/courtroom) +"qcw" = ( +/obj/machinery/computer/station_alert/station_only{ + dir = 1 + }, +/obj/item/radio/intercom/directional/south, +/obj/structure/sign/calendar/directional/east, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) "qcG" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/iron/smooth, @@ -48557,16 +48618,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/tram/left) -"qhY" = ( -/obj/machinery/computer/station_alert/station_only{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/obj/structure/sign/poster/official/build/directional/east, -/turf/open/floor/iron/dark, -/area/station/engineering/engine_smes) "qib" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -52962,17 +53013,6 @@ }, /turf/open/floor/engine/hull, /area/station/solars/port) -"rLz" = ( -/obj/machinery/computer/atmos_alert/station_only{ - dir = 8 - }, -/obj/machinery/button/door/directional/east{ - name = "Atmospherics Lockdown"; - id = "atmos"; - req_access = list("atmospherics") - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "rLB" = ( /obj/machinery/power/smes{ charge = 5e+06 @@ -57378,6 +57418,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/service) +"tlX" = ( +/obj/effect/turf_decal/weather/snow, +/obj/machinery/vending/wardrobe/chef_wardrobe, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/floor/iron/kitchen_coldroom, +/area/station/service/kitchen/coldroom) "tlY" = ( /obj/effect/turf_decal/siding/thinplating/dark/corner{ dir = 1 @@ -57401,6 +57449,11 @@ /obj/effect/turf_decal/tile/purple/fourcorners, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"tms" = ( +/obj/structure/cable, +/obj/machinery/power/smes/full, +/turf/open/floor/circuit/telecomms/mainframe, +/area/station/tcommsat/server) "tmz" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -58134,6 +58187,17 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/medical/pharmacy) +"tzH" = ( +/obj/effect/turf_decal/weather/snow, +/obj/machinery/gibber, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/turf/open/floor/iron/kitchen_coldroom, +/area/station/service/kitchen/coldroom) "tzL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/yellow/filled/corner{ @@ -58658,14 +58722,6 @@ }, /turf/open/floor/plating/elevatorshaft, /area/station/maintenance/tram/mid) -"tII" = ( -/obj/machinery/computer/station_alert/station_only{ - dir = 1 - }, -/obj/item/radio/intercom/directional/south, -/obj/structure/sign/calendar/directional/east, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/ce) "tIT" = ( /obj/structure/table/wood, /obj/structure/mirror/directional/south, @@ -60244,6 +60300,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) +"ukE" = ( +/obj/machinery/computer/station_alert/station_only{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/command/bridge) "ukS" = ( /obj/structure/table/reinforced, /obj/item/surgical_drapes, @@ -60380,11 +60446,6 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/hop) -"ump" = ( -/obj/structure/cable, -/obj/machinery/power/smes/full, -/turf/open/floor/circuit/telecomms/mainframe, -/area/station/tcommsat/server) "umu" = ( /obj/machinery/rnd/server/master, /turf/open/floor/circuit/telecomms/server, @@ -61271,16 +61332,6 @@ /obj/effect/turf_decal/trimline/red/filled/corner, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"uAL" = ( -/obj/machinery/computer/station_alert/station_only{ - dir = 1 - }, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/command/bridge) "uAN" = ( /obj/machinery/door/airlock/mining{ name = "Drone Bay" @@ -61556,12 +61607,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet, /area/station/cargo/miningdock) -"uEB" = ( -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/effect/turf_decal/bot_white, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/white/side, -/area/station/service/kitchen) "uEE" = ( /obj/effect/turf_decal/siding/thinplating{ dir = 1 @@ -63663,17 +63708,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/tram/mid) -"vpp" = ( -/obj/effect/turf_decal/trimline/dark_green/filled/line{ - dir = 9 - }, -/obj/structure/table/glass, -/obj/machinery/requests_console/directional/west{ - name = "Genetics Requests Console"; - department = "Genetics" - }, -/turf/open/floor/iron/white, -/area/station/science/genetics) "vpt" = ( /obj/structure/railing{ dir = 9 @@ -64302,18 +64336,6 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"vzy" = ( -/obj/machinery/computer/atmos_alert/station_only{ - dir = 4 - }, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark/side{ - dir = 8 - }, -/area/station/command/bridge) "vzY" = ( /obj/machinery/duct, /obj/effect/decal/cleanable/dirt, @@ -64442,6 +64464,13 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"vCg" = ( +/obj/machinery/light_switch/directional/south, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 + }, +/turf/open/misc/asteroid/snow/coldroom, +/area/station/service/kitchen/coldroom) "vCh" = ( /obj/machinery/light/cold/directional/south, /turf/open/openspace, @@ -64943,12 +64972,6 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"vLB" = ( -/obj/structure/reagent_dispensers/cooking_oil, -/obj/effect/turf_decal/weather/snow, -/obj/machinery/light/cold/directional/north, -/turf/open/floor/iron/kitchen_coldroom, -/area/station/service/kitchen/coldroom) "vLL" = ( /obj/effect/turf_decal/trimline/brown/filled/corner, /obj/effect/turf_decal/trimline/brown/filled/corner{ @@ -67659,6 +67682,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/checker, /area/station/commons/lounge) +"wLx" = ( +/obj/machinery/computer/station_alert/station_only{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat/foyer) "wLP" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -67786,6 +67815,21 @@ /obj/effect/turf_decal/stripes/white/full, /turf/open/floor/iron/white/side, /area/station/science/lobby) +"wNY" = ( +/obj/machinery/computer/station_alert/station_only{ + dir = 8 + }, +/obj/machinery/requests_console/directional/east{ + name = "Atmospherics Requests Console"; + department = "Atmospherics" + }, +/obj/machinery/camera/emp_proof{ + dir = 6; + network = list("ss13","engineering"); + c_tag = "Engineering - Atmospherics Front Desk" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wOb" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 9 @@ -67885,11 +67929,6 @@ "wQm" = ( /turf/open/floor/iron, /area/station/engineering/atmos) -"wQr" = ( -/obj/effect/turf_decal/weather/snow, -/obj/machinery/vending/wardrobe/chef_wardrobe, -/turf/open/floor/iron/kitchen_coldroom, -/area/station/service/kitchen/coldroom) "wQN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -68557,6 +68596,17 @@ /obj/structure/cable, /turf/open/floor/iron/freezer, /area/station/commons/toilet) +"xfx" = ( +/obj/machinery/computer/atmos_alert/station_only{ + dir = 8 + }, +/obj/machinery/button/door/directional/east{ + name = "Atmospherics Lockdown"; + id = "atmos"; + req_access = list("atmospherics") + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "xfH" = ( /turf/open/floor/glass, /area/station/commons/lounge) @@ -69765,11 +69815,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/storage/tools) -"xCR" = ( -/obj/structure/ladder, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/misc/asteroid/snow/coldroom, -/area/station/service/kitchen/coldroom) "xDJ" = ( /obj/machinery/light/cold/directional/south, /turf/open/floor/iron/freezer, @@ -71006,6 +71051,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/virology) +"ycS" = ( +/obj/effect/turf_decal/weather/snow, +/obj/machinery/light/cold/directional/north, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/structure/reagent_dispensers/cooking_oil, +/turf/open/floor/iron/kitchen_coldroom, +/area/station/service/kitchen/coldroom) "ycV" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line, @@ -98472,7 +98526,7 @@ sMr uGX drH ney -ump +tms etf vNH aaa @@ -101280,9 +101334,9 @@ gUE vfR vfR pkp -cxh +kis cFh -qhY +bHP pLH uGy xjn @@ -102777,7 +102831,7 @@ omn nUP mXo wOx -apl +iLL iRL snQ iRL @@ -103032,9 +103086,9 @@ feC voF sST nUP -fgH -aeo -btg +jyK +lhr +kFZ iRL snQ iRL @@ -103289,9 +103343,9 @@ qMf dyC kUg nUP -gvC -cay -bje +idn +gXI +vCg iRL snQ iRL @@ -103546,9 +103600,9 @@ feC vuC bud nUP -vLB -aeq -xCR +ycS +aub +dUZ iRL dpN lgi @@ -103803,10 +103857,10 @@ qMf mCR vcs nUP -cQY -aer +pEn +dXg vYg -aeN +aYC snQ iRL dNp @@ -103864,7 +103918,7 @@ bAK jsW vTc qzf -tII +qcw sHH bXp qHs @@ -104060,9 +104114,9 @@ feC voF jFC nUP -cDD -aeo -aeF +fjT +iXM +bDL iRL quF iRL @@ -104317,9 +104371,9 @@ iVG bmp xMl nUP -wQr -owl -cVs +tlX +hLW +tzH iRL quF iRL @@ -106670,8 +106724,8 @@ vNu eAN ake twr -gIS -rLz +wNY +xfx xaT shQ hZr @@ -118510,7 +118564,7 @@ iON bGE aXN nVm -bIN +kVf huW dka qVr @@ -119791,7 +119845,7 @@ gzw qPX nGi fwC -nIj +jpW rBE nri dUT @@ -120867,7 +120921,7 @@ jFM aPV xvl diy -eAA +wLx sEV xvl xhB @@ -153678,9 +153732,9 @@ yar dDm uoO uoO -lVh -lVh -lVh +fss +fss +fss nYr rEq bSS @@ -155992,7 +156046,7 @@ asY pUG fnu osw -vzy +far yjf czX vrN @@ -156250,7 +156304,7 @@ qvK obW uvu aCC -uAL +ukE hhc esf lPY @@ -166020,7 +166074,7 @@ eSz eSz eSz izU -kKC +dEH izU izU eSz @@ -168566,7 +168620,7 @@ aaa aaa eSx eSx -uEB +eTK sdK bZo omc @@ -185056,7 +185110,7 @@ hmd bHb sed dpB -vpp +mrG gel tIh hRa diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm index 308627fda2fe1..6624b332346c7 100644 --- a/_maps/map_files/wawastation/wawastation.dmm +++ b/_maps/map_files/wawastation/wawastation.dmm @@ -187,6 +187,34 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/supermatter/room) +"adg" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/table/wood/fancy/orange, +/obj/item/stamp{ + pixel_x = 7; + pixel_y = 9 + }, +/obj/item/stamp/denied{ + pixel_x = 7; + pixel_y = 4 + }, +/obj/item/stamp/head/qm{ + pixel_x = 7; + pixel_y = -2 + }, +/obj/item/clipboard{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/machinery/firealarm/directional/east, +/obj/item/computer_disk/quartermaster{ + pixel_x = -6; + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "adK" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -283,6 +311,23 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/freezer, /area/station/security/prison/shower) +"aeI" = ( +/obj/machinery/door/window/brigdoor/left/directional/west{ + name = "Security Post Desk"; + req_access = list("security") + }, +/obj/structure/table/reinforced, +/obj/structure/desk_bell{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "medsecprivacy"; + name = "Privacy Shutter" + }, +/turf/open/floor/iron/white, +/area/station/security/checkpoint/medical) "aeJ" = ( /obj/structure/table/reinforced, /obj/item/phone, @@ -299,15 +344,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central) -"afh" = ( -/obj/machinery/door/airlock/maintenance_hatch, -/obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, -/obj/machinery/door/poddoor/shutters{ - id = "boutique"; - name = "Countertheft Shutters" - }, -/turf/open/floor/wood/parquet, -/area/station/cargo/boutique) "afp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -502,17 +538,6 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"ain" = ( -/obj/structure/reagent_dispensers/watertank/high, -/obj/item/reagent_containers/cup/watering_can, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "aip" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/plating, @@ -558,6 +583,19 @@ }, /turf/open/floor/iron/textured_large, /area/station/medical/treatment_center) +"ajs" = ( +/obj/machinery/door/poddoor/shutters/window{ + dir = 1; + id = "ordauxgarage" + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/turf_decal/sand/plating, +/obj/effect/turf_decal/stripes/asteroid/line, +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/science/ordnance) "aju" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -582,6 +620,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood, /area/station/commons/lounge) +"ajL" = ( +/obj/machinery/door/airlock{ + id_tag = "u5"; + name = "Unit 5" + }, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet/restrooms) "ajQ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -733,6 +778,18 @@ }, /turf/open/floor/wood, /area/station/service/theater) +"amn" = ( +/obj/machinery/disposal/bin, +/obj/machinery/button/door/directional/east{ + id = "geneshut"; + name = "Genetics Shutters" + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/white/textured, +/area/station/science/genetics) "amJ" = ( /obj/machinery/iv_drip, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -777,6 +834,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/ai_monitored/turret_protected/ai_upload_foyer) +"anf" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old{ + icon_state = "gib3-old" + }, +/mob/living/basic/mimic/crate, +/turf/open/floor/iron/white, +/area/station/maintenance/aft/upper) "anu" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/junction, /turf/closed/wall/r_wall, @@ -976,6 +1042,18 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) +"aqw" = ( +/obj/structure/table/wood/fancy/orange, +/obj/effect/spawner/random/contraband/qm_rocket{ + pixel_x = -7 + }, +/obj/item/storage/fancy/cigarettes/cigars/cohiba{ + pixel_x = 12; + pixel_y = 7 + }, +/obj/item/lighter, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "aqM" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -993,13 +1071,6 @@ /obj/item/storage/toolbox/emergency, /turf/open/floor/catwalk_floor/iron_dark, /area/station/ai_monitored/turret_protected/aisat/foyer) -"aqV" = ( -/obj/machinery/atmospherics/components/unary/bluespace_sender{ - dir = 4; - initialize_directions = 4 - }, -/turf/open/floor/iron/textured, -/area/station/engineering/atmos) "arl" = ( /obj/machinery/atmospherics/pipe/multiz/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2, @@ -1131,6 +1202,18 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) +"auo" = ( +/obj/structure/table, +/obj/item/cultivator, +/obj/item/hatchet, +/obj/item/paper/guides/jobs/hydroponics, +/obj/effect/spawner/random/entertainment/coin{ + spawn_loot_count = 2; + spawn_random_offset = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron/textured_large, +/area/station/service/hydroponics/garden) "auB" = ( /turf/open/floor/engine, /area/station/medical/chemistry) @@ -1159,6 +1242,39 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/prison) +"ava" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/button/door{ + id = "secentrylock2"; + name = "Security Exit Lock"; + normaldoorcontrol = 1; + pixel_x = -7; + req_access = list("security"); + specialfunctions = 4 + }, +/obj/machinery/button/door{ + id = "secentrylock"; + name = "Security Entrance Lock"; + normaldoorcontrol = 1; + pixel_x = -7; + pixel_y = 7; + req_access = list("security"); + specialfunctions = 4 + }, +/obj/machinery/button/flasher{ + id = "secentry"; + pixel_x = 2 + }, +/obj/machinery/button/door{ + id = "secentrylock"; + name = "Security Entrance Doors"; + normaldoorcontrol = 1; + pixel_x = 2; + pixel_y = 7 + }, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "avu" = ( /obj/effect/turf_decal/siding/white/corner{ dir = 8 @@ -1514,11 +1630,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/service/hydroponics) -"aAg" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "aAk" = ( /obj/machinery/holopad, /obj/effect/turf_decal/box, @@ -1701,6 +1812,19 @@ /obj/structure/window/spawner/directional/south, /turf/open/floor/wood/parquet, /area/station/service/library) +"aEj" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + dir = 8; + id = "xbprotect3"; + name = "Security Shutters" + }, +/obj/effect/turf_decal/caution/stand_clear{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/textured_large, +/area/station/science/xenobiology) "aEr" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt/dust, @@ -2005,11 +2129,20 @@ /obj/effect/mapping_helpers/mail_sorting/security/hos_office, /turf/open/floor/iron/white, /area/station/security/medical) -"aJv" = ( -/obj/structure/reagent_dispensers/cooking_oil, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) +"aJz" = ( +/obj/structure/railing, +/obj/structure/table, +/obj/item/plate, +/obj/item/food/spaghetti/mac_n_cheese{ + pixel_y = 3 + }, +/obj/item/flashlight/flare/candle{ + icon_state = "candle1_lit"; + pixel_x = 12; + start_on = 1 + }, +/turf/open/floor/plating, +/area/station/engineering/main) "aJA" = ( /obj/machinery/door/window/brigdoor/right/directional/east{ req_access = list("xenobiology") @@ -2061,6 +2194,13 @@ /obj/effect/mapping_helpers/airlock/access/all/command/minisat, /turf/open/floor/catwalk_floor/iron_dark, /area/station/ai_monitored/turret_protected/aisat/uppersouth) +"aKj" = ( +/obj/machinery/computer/station_alert/station_only{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/turf/open/floor/iron, +/area/station/command/heads_quarters/ce) "aKl" = ( /obj/structure/chair, /obj/machinery/airalarm/directional/north, @@ -2084,6 +2224,22 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"aKJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sign/directions/engineering/directional/east{ + pixel_y = -8 + }, +/obj/structure/sign/directions/security/directional/east{ + dir = 1; + pixel_y = 8 + }, +/obj/structure/sign/directions/supply/directional/east{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "aKP" = ( /obj/structure/cable, /turf/open/floor/iron/half, @@ -2094,6 +2250,32 @@ /obj/structure/rack, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"aKU" = ( +/obj/effect/landmark/start/ai/secondary, +/obj/machinery/door/window/brigdoor/left/directional/north{ + name = "Tertiary AI Core Access"; + pixel_y = 3; + req_access = list("ai_upload") + }, +/obj/item/radio/intercom/directional/south{ + freerange = 1; + listening = 0; + name = "Common Channel"; + pixel_x = -27 + }, +/obj/item/radio/intercom/directional/south{ + freerange = 1; + frequency = 1447; + listening = 0; + name = "Private Channel"; + pixel_x = 27 + }, +/obj/machinery/flasher/directional/east{ + id = "AI"; + pixel_y = 8 + }, +/turf/open/floor/circuit/green, +/area/station/ai_monitored/turret_protected/ai) "aLe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -2124,44 +2306,6 @@ }, /turf/open/floor/glass, /area/station/command/meeting_room) -"aLM" = ( -/obj/structure/table/reinforced/rglass, -/obj/machinery/button/door{ - id = "secentrylock2"; - name = "Security Exit Lock"; - normaldoorcontrol = 1; - pixel_x = -4; - pixel_y = -1; - req_access = list("security"); - specialfunctions = 4 - }, -/obj/machinery/button/door{ - id = "secentrylock"; - name = "Security Entrance Lock"; - normaldoorcontrol = 1; - pixel_x = -4; - pixel_y = 6; - req_access = list("security"); - specialfunctions = 4 - }, -/obj/machinery/button/flasher{ - id = "secentry"; - name = "entrance flasher button"; - pixel_x = 5; - pixel_y = -1 - }, -/obj/machinery/button/door{ - id = "secentrylock"; - name = "Security Entrance Doors"; - normaldoorcontrol = 1; - pixel_x = 5; - pixel_y = 6 - }, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/textured, -/area/station/security/warden) "aLN" = ( /turf/open/floor/plating, /area/station/hallway/secondary/entry) @@ -2254,6 +2398,25 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/research) +"aNH" = ( +/obj/machinery/door/airlock/security/glass{ + id_tag = "secentrylock2"; + name = "Security Entry" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "brig-entrance" + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/scanner_gate/preset_guns, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "aNR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -2569,15 +2732,6 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/textured, /area/station/science/lobby) -"aTZ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "boutique"; - name = "Countertheft Shutters" - }, -/turf/open/floor/plating, -/area/station/cargo/boutique) "aUf" = ( /turf/closed/wall/r_wall/rust, /area/station/medical/chemistry/minisat) @@ -2613,51 +2767,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, /area/station/commons/locker) -"aUF" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/bot, -/obj/item/bodypart/arm/right/robot{ - pixel_x = 3 - }, -/obj/item/bodypart/arm/left/robot{ - pixel_x = -3 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/firealarm/directional/west, -/obj/item/assembly/flash/handheld{ - pixel_x = 6; - pixel_y = 13 - }, -/obj/item/assembly/flash/handheld{ - pixel_x = 6; - pixel_y = 13 - }, -/obj/item/assembly/flash/handheld{ - pixel_x = 6; - pixel_y = 13 - }, -/obj/item/assembly/flash/handheld{ - pixel_x = 6; - pixel_y = 13 - }, -/obj/item/assembly/flash/handheld{ - pixel_x = 6; - pixel_y = 13 - }, -/obj/machinery/ecto_sniffer{ - pixel_x = -6; - pixel_y = 6 - }, -/obj/item/circuitboard/mecha/ripley/main{ - pixel_x = -9; - pixel_y = -10 - }, -/obj/item/circuitboard/mecha/ripley/peripherals{ - pixel_x = -4; - pixel_y = -7 - }, -/turf/open/floor/iron/dark/textured, -/area/station/science/robotics/lab) "aUM" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -2832,6 +2941,14 @@ }, /turf/open/floor/iron/white, /area/station/science/research) +"aZt" = ( +/obj/structure/transport/linear/public{ + base_icon_state = "catwalk"; + icon = 'icons/obj/smooth_structures/catwalk.dmi'; + icon_state = "catwalk-6" + }, +/turf/open/floor/plating/elevatorshaft, +/area/station/cargo/storage) "aZK" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -2861,6 +2978,18 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/textured, /area/station/construction/mining/aux_base) +"ban" = ( +/obj/machinery/vending/hydroseeds{ + slogan_delay = 700 + }, +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "bay" = ( /obj/effect/spawner/random/vending/colavend, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -3230,15 +3359,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/misc/asteroid, /area/station/asteroid) -"bhd" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, -/obj/structure/window/spawner/directional/north, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/station/maintenance/disposal) "bhk" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -3335,14 +3455,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"biK" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id = "chemsat" - }, -/turf/open/floor/plating, -/area/station/medical/chemistry/minisat) "biS" = ( /turf/closed/wall/r_wall/rust, /area/station/ai_monitored/turret_protected/ai_upload) @@ -3380,6 +3492,13 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical) +"bjp" = ( +/obj/machinery/door/window/left/directional/south{ + name = "Research Testing Chamber"; + req_access = list("science") + }, +/turf/open/floor/engine, +/area/station/science/explab) "bjv" = ( /obj/machinery/photocopier, /obj/machinery/light_switch/directional/east, @@ -3429,6 +3548,15 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/catwalk_floor/iron_dark, /area/station/command/corporate_dock) +"blz" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/structure/window/spawner/directional/north, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/disposal) "blE" = ( /obj/vehicle/sealed/mecha/ripley/paddy/preset, /obj/effect/turf_decal/stripes/line{ @@ -3438,22 +3566,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/recharge_floor, /area/station/security/mechbay) -"blL" = ( -/obj/machinery/light/dim/directional/west, -/obj/structure/table/wood, -/obj/item/toy/figure/qm{ - pixel_x = 5; - pixel_y = 3 - }, -/obj/item/reagent_containers/cup/beaker/jar{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/item/coffee_cartridge/fancy{ - pixel_y = 18 - }, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) "blM" = ( /obj/machinery/atmospherics/pipe/multiz/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2, @@ -3521,19 +3633,6 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/carpet, /area/station/service/theater) -"bmW" = ( -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/obj/structure/table, -/obj/item/hand_tele, -/obj/effect/spawner/random/engineering/tracking_beacon, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/obj/item/radio{ - broadcasting = 1; - pixel_x = -8 - }, -/turf/open/floor/iron/dark, -/area/station/command/teleporter) "bnb" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/binary/valve{ @@ -3607,6 +3706,16 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"boQ" = ( +/obj/machinery/power/solar_control{ + dir = 4; + id = "foreport"; + name = "Port Bow Solar Control" + }, +/obj/structure/cable, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/solars/port/fore) "boT" = ( /obj/machinery/atmospherics/components/unary/thermomachine, /obj/effect/turf_decal/delivery, @@ -3726,6 +3835,15 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/cargo/storage) +"brP" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor/auto{ + dir = 8; + id = "bridgedeliver" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/command/bridge) "brQ" = ( /obj/effect/turf_decal/trimline/blue/arrow_ccw{ dir = 8 @@ -3964,17 +4082,6 @@ dir = 1 }, /area/station/science/xenobiology) -"bvZ" = ( -/obj/docking_port/stationary{ - dir = 2; - dwidth = 2; - height = 13; - name = "port bay 2"; - shuttle_id = "ferry_home"; - width = 5 - }, -/turf/open/floor/engine, -/area/station/command/corporate_dock) "bwf" = ( /obj/effect/turf_decal/siding/purple{ dir = 1 @@ -4068,10 +4175,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/command/bridge) -"byb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "byf" = ( /obj/structure/closet/emcloset/anchored, /turf/open/floor/plating, @@ -4086,18 +4189,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/security/prison/mess) -"byl" = ( -/obj/structure/table/wood, -/obj/item/flashlight/flare/candle{ - icon_state = "candle1_lit"; - start_on = 1 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/carpet, -/area/station/service/chapel) "byB" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/spawner/random/maintenance, @@ -4114,6 +4205,16 @@ }, /turf/open/floor/plating, /area/station/science/xenobiology) +"byT" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/right/directional/north, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/brigdoor/left/directional/south{ + name = "Warden Requisition Desk"; + req_access = list("armory") + }, +/turf/open/floor/iron/dark, +/area/station/security/warden) "bzj" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/light/small/broken/directional/north, @@ -4261,6 +4362,18 @@ /obj/item/coin/iron, /turf/open/floor/iron/dark, /area/station/security/lockers) +"bBb" = ( +/obj/machinery/door/window/left/directional/east{ + name = "Library Desk Door"; + req_access = list("library") + }, +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/library) "bBm" = ( /obj/structure/cable, /obj/structure/lattice, @@ -4303,6 +4416,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/commons/fitness/recreation) +"bCg" = ( +/obj/structure/reagent_dispensers/plumbed/storage{ + dir = 8; + reagent_id = /datum/reagent/clf3 + }, +/obj/structure/sign/warning/fire/directional/south, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, +/area/station/asteroid) "bCm" = ( /obj/structure/girder/displaced, /turf/open/misc/asteroid, @@ -4391,6 +4513,30 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/chemistry/minisat) +"bDX" = ( +/obj/structure/rack, +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/south, +/obj/machinery/door/window/right/directional/west{ + name = "Jetpack Storage"; + req_access = list("eva") + }, +/obj/machinery/door/window/left/directional/east{ + name = "Jetpack Storage"; + req_access = list("eva") + }, +/obj/item/tank/jetpack/carbondioxide{ + pixel_y = 2 + }, +/obj/item/tank/jetpack/carbondioxide{ + pixel_y = -2 + }, +/obj/item/tank/jetpack/carbondioxide{ + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) "bEd" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line{ @@ -4587,6 +4733,17 @@ /obj/machinery/air_sensor/air_tank, /turf/open/floor/engine/air, /area/station/engineering/atmos) +"bHb" = ( +/obj/machinery/door/window/left/directional/east{ + name = "Hydroponics Desk"; + req_access = list("hydroponics") + }, +/obj/structure/table/reinforced, +/obj/item/paper, +/obj/item/pen, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/iron, +/area/station/service/hydroponics) "bHc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -4706,25 +4863,6 @@ "bJX" = ( /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) -"bKd" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/table/reinforced, -/obj/machinery/door/window/left/directional/west{ - name = "Baked Goods"; - req_one_access = list("service","maint_tunnels") - }, -/obj/item/food/muffin/berry{ - pixel_y = 8 - }, -/obj/item/food/poppypretzel, -/obj/item/food/cherrycupcake{ - pixel_y = 19 - }, -/obj/effect/turf_decal/siding/red{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/fore) "bKK" = ( /obj/machinery/light/directional/north, /obj/effect/turf_decal/tile/neutral{ @@ -4733,6 +4871,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) +"bKL" = ( +/obj/item/flashlight/glowstick/cyan{ + pixel_y = 7; + start_on = 1 + }, +/turf/open/misc/asteroid, +/area/station/asteroid) "bKQ" = ( /obj/structure/cable, /turf/open/floor/iron/dark/textured_large, @@ -4784,6 +4929,17 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/asteroid) +"bMm" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + location = "Medical" + }, +/obj/machinery/door/window/left/directional/north{ + name = "MuleBot Access"; + req_access = list("shipping") + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) "bMx" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 9 @@ -4976,25 +5132,6 @@ }, /turf/open/floor/iron/dark/textured_large, /area/station/science/xenobiology) -"bPU" = ( -/obj/structure/cable, -/obj/item/radio/intercom/directional/north, -/obj/machinery/button/door/directional/south{ - id = "xenobio7"; - name = "pen 7 blast doors control"; - pixel_x = -6 - }, -/obj/machinery/button/door/directional/south{ - id = "xenobio8"; - name = "pen 8 blast doors control"; - pixel_x = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark/textured_edge{ - dir = 8 - }, -/area/station/science/xenobiology) "bPY" = ( /obj/structure/table/reinforced/rglass, /obj/effect/landmark/event_spawn, @@ -5125,6 +5262,18 @@ }, /turf/open/floor/plating, /area/station/service/chapel) +"bTt" = ( +/obj/structure/cable, +/obj/structure/plasticflaps/opaque, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/window/right/directional/south{ + name = "MuleBot Access"; + req_access = list("shipping") + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/department/engine) "bTB" = ( /obj/machinery/mineral/stacking_machine{ input_dir = 8; @@ -5272,6 +5421,23 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"bVA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sign/directions/evac/directional/east{ + dir = 8 + }, +/obj/structure/sign/directions/science/directional/east{ + dir = 1; + pixel_y = -8 + }, +/obj/structure/sign/directions/medical/directional/east{ + dir = 8; + pixel_y = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "bVY" = ( /obj/machinery/holopad{ pixel_x = 1 @@ -5324,16 +5490,6 @@ }, /turf/open/openspace, /area/station/engineering/supermatter/room) -"bWB" = ( -/obj/machinery/shower/directional/north{ - has_water_reclaimer = 0; - name = "smoking hot shower"; - reagent_capacity = 100; - reagent_id = /datum/reagent/clf3 - }, -/obj/effect/turf_decal/sand/plating, -/turf/open/floor/plating, -/area/station/asteroid) "bWI" = ( /obj/structure/broken_flooring/singular, /obj/effect/decal/cleanable/dirt/dust, @@ -5678,6 +5834,21 @@ /obj/machinery/duct, /turf/open/floor/plating, /area/station/science/cytology) +"cdo" = ( +/obj/machinery/elevator_control_panel/directional/south{ + linked_elevator_id = "aisat"; + pixel_x = 8; + pixel_y = -34 + }, +/obj/machinery/lift_indicator/directional/south{ + linked_elevator_id = "aisat"; + pixel_x = -6; + pixel_y = -40 + }, +/obj/machinery/light/small/dim/directional/north, +/obj/structure/cable/layer3, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) "cdI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5967,6 +6138,14 @@ /obj/effect/turf_decal/trimline/dark_blue/end, /turf/open/floor/iron/textured, /area/station/engineering/atmos) +"ciR" = ( +/obj/structure/transport/linear/public{ + base_icon_state = "catwalk"; + icon = 'icons/obj/smooth_structures/catwalk.dmi'; + icon_state = "catwalk-8" + }, +/turf/open/openspace, +/area/station/ai_monitored/turret_protected/aisat_interior) "ciV" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -5987,18 +6166,6 @@ /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"cjv" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Fuel Pipe to Incinerator" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/maintenance/disposal/incinerator) "cjV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /obj/effect/turf_decal/delivery, @@ -6168,6 +6335,16 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"cnT" = ( +/obj/machinery/newscaster/directional/north, +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/service/hydroponics) "cnZ" = ( /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/dark/side{ @@ -6261,11 +6438,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/foyer) -"cqF" = ( -/obj/machinery/light/small/directional/north, -/obj/effect/spawner/random/trash/mopbucket, -/turf/open/misc/asteroid, -/area/station/maintenance/central/greater) "cqH" = ( /obj/structure/transit_tube, /obj/structure/lattice, @@ -6528,19 +6700,6 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_dark, /area/station/security/prison/safe) -"cuV" = ( -/obj/machinery/computer/crew{ - dir = 8 - }, -/obj/item/toy/figure/md{ - pixel_x = 5; - pixel_y = 7 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/medical/exam_room) "cvn" = ( /obj/structure/closet/emcloset, /obj/machinery/light/small/dim/directional/east, @@ -6614,15 +6773,6 @@ /obj/structure/rack, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"cwF" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "psychshutter"; - name = "Privacy Shutters" - }, -/turf/open/floor/plating, -/area/station/medical/psychology) "cxg" = ( /turf/open/misc/asteroid/airless, /area/space/nearstation) @@ -6642,6 +6792,23 @@ }, /turf/open/floor/grass, /area/station/service/hydroponics/garden) +"cxH" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + dir = 8; + id = "xbprotect3"; + name = "Security Shutters" + }, +/obj/machinery/button/door/directional/north{ + id = "xbprotect3"; + name = "shutter control" + }, +/obj/effect/turf_decal/caution/stand_clear{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/textured_large, +/area/station/science/xenobiology) "cxN" = ( /obj/machinery/camera/directional/west{ c_tag = "Atmospherics Tank - Mixing" @@ -6692,6 +6859,15 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"czC" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/button/door/directional/east{ + id = "ordauxgarage"; + name = "shutter control" + }, +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/station/science/ordnance) "czD" = ( /obj/item/stack/tile/iron/white, /obj/effect/decal/cleanable/dirt/dust, @@ -6703,14 +6879,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/medical/chemistry/minisat) -"czK" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/chair/office{ - dir = 1; - name = "grimy chair" - }, -/turf/open/floor/iron, -/area/station/maintenance/department/medical/central) "czO" = ( /obj/effect/turf_decal/siding/white{ dir = 1 @@ -6747,6 +6915,17 @@ /obj/effect/landmark/start/botanist, /turf/open/floor/iron, /area/station/service/hydroponics) +"cAq" = ( +/obj/structure/cable, +/obj/machinery/button/door/directional/east{ + id = "xbprotect"; + name = "shutter control" + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "cAr" = ( /obj/structure/cable, /obj/machinery/button/door/directional/north{ @@ -6862,6 +7041,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/small, /area/station/engineering/transit_tube) +"cCr" = ( +/obj/machinery/light/directional/north, +/obj/structure/table, +/obj/item/pen{ + pixel_x = 9; + pixel_y = 4 + }, +/obj/item/hand_labeler{ + pixel_x = -13; + pixel_y = 10 + }, +/turf/open/floor/glass/reinforced, +/area/station/science/xenobiology) "cCv" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/siding/white{ @@ -6871,24 +7063,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/herringbone, /area/station/commons/fitness/recreation) -"cCw" = ( -/obj/structure/toilet{ - dir = 1 - }, -/obj/effect/landmark/start/hangover, -/obj/effect/spawner/random/trash/graffiti{ - pixel_y = -32; - spawn_loot_chance = 50 - }, -/obj/machinery/light/small/dim/directional/east, -/obj/machinery/button/door/directional/west{ - id = "u3"; - name = "privacy bolt control"; - normaldoorcontrol = 1; - specialfunctions = 4 - }, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet/restrooms) "cCI" = ( /obj/structure/reagent_dispensers/watertank, /obj/item/extinguisher, @@ -6971,23 +7145,6 @@ /obj/effect/turf_decal/stripes, /turf/open/floor/engine, /area/station/engineering/atmospherics_engine) -"cEo" = ( -/obj/item/stock_parts/power_store/cell/bluespace{ - pixel_x = -5; - pixel_y = -8; - rigged = 1 - }, -/turf/open/misc/asteroid, -/area/station/asteroid) -"cEp" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, -/obj/structure/window/spawner/directional/north, -/obj/item/mod/construction/broken_core, -/turf/open/floor/plating, -/area/station/maintenance/disposal) "cEr" = ( /obj/structure/chair/sofa/bench/right{ dir = 1 @@ -7272,11 +7429,6 @@ "cKc" = ( /turf/closed/wall, /area/station/maintenance/aft/upper) -"cKf" = ( -/obj/structure/rack, -/obj/effect/spawner/random/contraband/narcotics, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "cKn" = ( /turf/closed/wall, /area/station/security/prison/garden) @@ -7355,13 +7507,6 @@ /obj/effect/turf_decal/stripes/end, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"cME" = ( -/obj/structure/chair{ - dir = 8; - name = "Judge" - }, -/turf/open/floor/wood/tile, -/area/station/security/courtroom) "cMI" = ( /obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; @@ -7421,18 +7566,6 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) -"cNd" = ( -/obj/machinery/atmospherics/components/binary/passive_gate{ - on = 1; - target_pressure = 600 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/iron/dark/corner{ - dir = 1 - }, -/area/station/engineering/atmos/pumproom) "cNh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/smooth_corner{ @@ -8078,14 +8211,6 @@ /obj/structure/cable/layer1, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"cXL" = ( -/obj/machinery/duct, -/obj/structure/cable, -/obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "cXP" = ( /obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ @@ -8124,29 +8249,6 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/white, /area/station/hallway/secondary/entry) -"cYE" = ( -/obj/item/reagent_containers/cup/bottle/silicon{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/structure/rack, -/obj/item/reagent_containers/cup/bottle/sugar{ - pixel_x = 6 - }, -/obj/item/reagent_containers/cup/bottle/silver{ - pixel_x = -6; - pixel_y = 6 - }, -/obj/item/reagent_containers/cup/bottle/sacid{ - pixel_y = 6 - }, -/obj/item/reagent_containers/cup/bottle/water, -/obj/item/reagent_containers/cup/bottle/sulfur{ - pixel_x = -6 - }, -/obj/machinery/light/very_dim/directional/north, -/turf/open/floor/iron/dark/textured_edge, -/area/station/medical/pharmacy) "cYG" = ( /obj/structure/bed{ dir = 4 @@ -8157,12 +8259,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/carpet/red, /area/station/security/warden) -"cYH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/mob/living/basic/goat/pete, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "cYP" = ( /obj/effect/landmark/event_spawn, /obj/structure/cable, @@ -8176,6 +8272,20 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/security/warden) +"cZb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Teleport Access" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/obj/effect/landmark/navigate_destination, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/any/command/teleporter, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/command/teleporter) "cZf" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/layer_manifold/dark/visible{ @@ -8434,17 +8544,6 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"ddX" = ( -/obj/item/flashlight/flare/candle{ - icon_state = "candle1_lit"; - pixel_y = 12; - start_on = 1 - }, -/obj/structure/broken_flooring/side/directional/west, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "ddZ" = ( /obj/machinery/door/window/right/directional/south{ name = "Research Test Chamber"; @@ -8543,6 +8642,14 @@ }, /turf/open/floor/iron/white, /area/station/security/prison/mess) +"dgy" = ( +/obj/structure/plasticflaps/opaque, +/obj/machinery/door/window/right/directional/south{ + name = "Medical Deliveries"; + req_access = list("medical") + }, +/turf/open/floor/plating, +/area/station/medical/storage) "dgS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -8744,24 +8851,6 @@ /obj/item/dice/d2, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"djs" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/directions/supply/directional/south{ - dir = 8 - }, -/obj/structure/sign/directions/engineering/directional/south{ - dir = 4; - pixel_y = -40 - }, -/obj/structure/sign/directions/security/directional/south{ - dir = 8; - pixel_y = -24 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "djU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /obj/effect/turf_decal/stripes{ @@ -8794,6 +8883,44 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/science/lobby) +"dkq" = ( +/obj/structure/table/reinforced/rglass, +/obj/machinery/button/door{ + id = "secentrylock2"; + name = "Security Exit Lock"; + normaldoorcontrol = 1; + pixel_x = -4; + pixel_y = -1; + req_access = list("security"); + specialfunctions = 4 + }, +/obj/machinery/button/door{ + id = "secentrylock"; + name = "Security Entrance Lock"; + normaldoorcontrol = 1; + pixel_x = -4; + pixel_y = 6; + req_access = list("security"); + specialfunctions = 4 + }, +/obj/machinery/button/flasher{ + id = "secentry"; + name = "entrance flasher button"; + pixel_x = 5; + pixel_y = -1 + }, +/obj/machinery/button/door{ + id = "secentrylock"; + name = "Security Entrance Doors"; + normaldoorcontrol = 1; + pixel_x = 5; + pixel_y = 6 + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/textured, +/area/station/security/warden) "dkr" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, /obj/machinery/light/directional/north, @@ -9176,23 +9303,6 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w, /turf/open/space/basic, /area/space/nearstation) -"dqP" = ( -/obj/machinery/door/window/brigdoor/left/directional/west{ - name = "Security Post Desk"; - req_access = list("security") - }, -/obj/structure/table/reinforced, -/obj/structure/desk_bell{ - pixel_x = -3; - pixel_y = 2 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "medsecprivacy"; - name = "Privacy Shutter" - }, -/turf/open/floor/iron/white, -/area/station/security/checkpoint/medical) "dqW" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/turf_decal/stripes/asteroid/line{ @@ -9208,6 +9318,18 @@ "drj" = ( /turf/closed/wall/rock, /area/station/engineering/supermatter/room) +"drl" = ( +/obj/structure/chair/sofa/corp/right{ + desc = "Looks like someone threw it out. Covered in donut crumbs."; + dir = 1; + name = "couch" + }, +/obj/structure/sign/poster/contraband/blood_geometer/directional/east, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red/anticorner/contrasted, +/turf/open/floor/iron/half, +/area/station/security/breakroom) "dro" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 @@ -9215,6 +9337,14 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/cargo/storage) +"drs" = ( +/obj/structure/reagent_dispensers/cooking_oil, +/obj/machinery/camera/autoname/directional/south, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "drz" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/disposal/bin, @@ -9254,29 +9384,6 @@ dir = 8 }, /area/station/science/robotics/lab) -"drT" = ( -/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ - id_tag = "ordmix_airlock_interior"; - name = "Burn Chamber Interior Airlock" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/obj/machinery/airlock_controller/incinerator_ordmix{ - pixel_y = -26 - }, -/obj/machinery/button/ignition/incinerator/ordmix{ - pixel_x = -6; - pixel_y = 24 - }, -/obj/machinery/button/door/incinerator_vent_ordmix{ - pixel_x = 8; - pixel_y = 24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "drZ" = ( /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 4 @@ -9453,40 +9560,25 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, /area/station/asteroid) +"dvz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sign/directions/medical/directional/east{ + dir = 8; + pixel_y = 8 + }, +/obj/structure/sign/directions/evac/directional/east{ + pixel_y = -8 + }, +/obj/structure/sign/directions/engineering/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "dvC" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/grille, /turf/open/floor/plating/airless, /area/station/asteroid) -"dvK" = ( -/obj/effect/landmark/start/ai, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/item/radio/intercom/directional/west{ - freerange = 1; - listening = 0; - name = "Common Channel"; - pixel_y = -8 - }, -/obj/item/radio/intercom/directional/west{ - freerange = 1; - frequency = 1447; - listening = 0; - pixel_y = 6 - }, -/obj/machinery/button/door/directional/south{ - id = "AI Core shutters"; - name = "AI Core Shutters Control"; - pixel_x = -24; - req_access = list("ai_upload") - }, -/obj/machinery/camera/directional/north{ - c_tag = "AI Chamber - Core"; - network = list("aicore") - }, -/obj/structure/cable, -/obj/effect/mapping_helpers/apc/cell_5k, -/turf/open/floor/circuit/green/telecomms/mainframe, -/area/station/ai_monitored/turret_protected/ai) "dvO" = ( /obj/structure/grille, /obj/effect/decal/cleanable/dirt/dust, @@ -9537,18 +9629,15 @@ /obj/effect/spawner/random/structure/chair_flipped, /turf/open/openspace, /area/station/science/genetics) -"dxq" = ( -/obj/machinery/vending/hydroseeds{ - slogan_delay = 700 - }, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing{ +"dxi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/mob/living/basic/goat/pete, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 }, -/turf/open/floor/iron, -/area/station/service/hydroponics) +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "dxx" = ( /obj/structure/extinguisher_cabinet/directional/south, /obj/item/kirbyplants/potty, @@ -9605,6 +9694,29 @@ }, /turf/open/floor/iron, /area/station/commons/locker) +"dyS" = ( +/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ + id_tag = "ordmix_airlock_interior"; + name = "Burn Chamber Interior Airlock" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/machinery/airlock_controller/incinerator_ordmix{ + pixel_y = -26 + }, +/obj/machinery/button/ignition/incinerator/ordmix{ + pixel_x = -6; + pixel_y = 24 + }, +/obj/machinery/button/door/incinerator_vent_ordmix{ + pixel_x = 8; + pixel_y = 24 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "dyV" = ( /obj/structure/railing{ dir = 1 @@ -9656,6 +9768,16 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/white, /area/station/medical/surgery/theatre) +"dzr" = ( +/obj/machinery/conveyor{ + id = "garbage" + }, +/obj/machinery/door/window/left/directional/east{ + name = "Danger: Conveyor Access"; + req_access = list("maint_tunnels") + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal) "dzu" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/green/filled/line{ @@ -9744,6 +9866,54 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/engineering/main) +"dAo" = ( +/obj/structure/table, +/obj/item/electronics/airalarm{ + pixel_x = -5; + pixel_y = -5 + }, +/obj/item/electronics/airalarm{ + pixel_x = -5; + pixel_y = -5 + }, +/obj/item/electronics/airalarm{ + pixel_x = -5; + pixel_y = -5 + }, +/obj/item/electronics/firealarm{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/item/electronics/firealarm{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/item/electronics/firealarm{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/item/storage/toolbox/electrical{ + pixel_x = -5; + pixel_y = 12 + }, +/obj/item/multitool{ + pixel_x = 11; + pixel_y = 10 + }, +/obj/item/multitool{ + pixel_x = 11; + pixel_y = 10 + }, +/obj/item/multitool{ + pixel_x = 11; + pixel_y = 10 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/large, +/area/station/engineering/atmos) "dAq" = ( /obj/machinery/door/airlock/security/glass{ name = "Permabrig" @@ -9802,21 +9972,30 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/science/xenobiology) -"dBl" = ( -/obj/structure/plasticflaps, -/obj/machinery/conveyor/auto{ - dir = 8; - id = "bridgedeliver" - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/command/bridge) "dBn" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/dark_blue/half/contrasted, /obj/machinery/incident_display/bridge/directional/south, /turf/open/floor/iron, /area/station/command/bridge) +"dBp" = ( +/obj/machinery/button/door/directional/west{ + id = "atmos"; + name = "Atmospherics Lockdown"; + req_access = list("atmospherics") + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/vending/wardrobe/atmos_wardrobe, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/engineering/atmos/upper) "dBu" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -9847,6 +10026,21 @@ /obj/item/book/manual/wiki/security_space_law, /turf/open/floor/iron, /area/station/security/courtroom) +"dBU" = ( +/obj/machinery/chem_master/condimaster{ + desc = "Used to separate out liquids - useful for purifying botanical extracts. Also dispenses condiments."; + name = "SapMaster XP" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/iron, +/area/station/service/hydroponics) "dBX" = ( /obj/structure/railing, /obj/machinery/camera/autoname/directional/west, @@ -9856,10 +10050,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/engineering/main) -"dCh" = ( -/obj/machinery/gibber, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "dCi" = ( /obj/structure/table/reinforced/rglass, /obj/item/storage/backpack/duffelbag/sec, @@ -9941,6 +10131,16 @@ }, /turf/open/floor/iron, /area/station/engineering/main) +"dDb" = ( +/obj/item/radio/intercom/directional/north, +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/service/hydroponics) "dDc" = ( /obj/structure/cable/multilayer/connected, /turf/open/floor/iron, @@ -10070,6 +10270,34 @@ }, /turf/open/floor/carpet/orange, /area/station/service/theater) +"dGs" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ + dir = 4 + }, +/obj/item/hand_labeler{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/item/storage/pill_bottle/epinephrine{ + pixel_x = -9; + pixel_y = 1 + }, +/obj/item/stack/sheet/mineral/plasma{ + pixel_x = 3; + pixel_y = 14 + }, +/obj/item/hand_labeler_refill{ + pixel_x = 10; + pixel_y = -2 + }, +/turf/open/floor/iron/white/smooth_edge{ + dir = 4 + }, +/area/station/medical/pharmacy) "dGt" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -10136,14 +10364,6 @@ }, /turf/open/floor/iron, /area/station/science/robotics/mechbay) -"dHJ" = ( -/obj/structure/transport/linear/public{ - base_icon_state = "catwalk"; - icon = 'icons/obj/smooth_structures/catwalk.dmi'; - icon_state = "catwalk-74" - }, -/turf/open/floor/plating/elevatorshaft, -/area/station/cargo/storage) "dHL" = ( /obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible, /obj/effect/turf_decal/tile/yellow{ @@ -10353,6 +10573,13 @@ "dLR" = ( /turf/closed/wall/r_wall, /area/station/cargo/storage) +"dLW" = ( +/obj/machinery/computer/atmos_alert/station_only{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos/upper) "dLY" = ( /obj/structure/broken_flooring/singular/directional/east, /turf/open/space/openspace, @@ -10449,18 +10676,7 @@ /obj/effect/spawner/random/entertainment/coin, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) -"dOv" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/structure/chair/sofa/bench, -/obj/effect/spawner/random/trash/cigbutt{ - spawn_random_offset = 4; - spawn_scatter_radius = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) -"dOx" = ( +"dOg" = ( /obj/structure/table, /obj/item/petri_dish{ pixel_x = -5; @@ -10472,6 +10688,17 @@ }, /turf/open/floor/iron/dark/small, /area/station/science/cytology) +"dOv" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/chair/sofa/bench, +/obj/effect/spawner/random/trash/cigbutt{ + spawn_random_offset = 4; + spawn_scatter_radius = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "dOC" = ( /obj/effect/turf_decal/siding/purple/corner, /obj/effect/turf_decal/stripes/corner{ @@ -11099,6 +11326,51 @@ /obj/effect/spawner/random/clothing/twentyfive_percent_cyborg_mask, /turf/open/floor/plating, /area/station/maintenance/aft/upper) +"dZd" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/bot, +/obj/item/bodypart/arm/right/robot{ + pixel_x = 3 + }, +/obj/item/bodypart/arm/left/robot{ + pixel_x = -3 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/firealarm/directional/west, +/obj/item/assembly/flash/handheld{ + pixel_x = 6; + pixel_y = 13 + }, +/obj/item/assembly/flash/handheld{ + pixel_x = 6; + pixel_y = 13 + }, +/obj/item/assembly/flash/handheld{ + pixel_x = 6; + pixel_y = 13 + }, +/obj/item/assembly/flash/handheld{ + pixel_x = 6; + pixel_y = 13 + }, +/obj/item/assembly/flash/handheld{ + pixel_x = 6; + pixel_y = 13 + }, +/obj/machinery/ecto_sniffer{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/circuitboard/mecha/ripley/main{ + pixel_x = -9; + pixel_y = -10 + }, +/obj/item/circuitboard/mecha/ripley/peripherals{ + pixel_x = -4; + pixel_y = -7 + }, +/turf/open/floor/iron/dark/textured, +/area/station/science/robotics/lab) "dZy" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/command/storage/satellite) @@ -11324,29 +11596,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"edv" = ( -/obj/machinery/computer/order_console/cook, -/turf/open/floor/iron, -/area/station/hallway/secondary/service) -"edC" = ( -/obj/machinery/status_display/door_timer{ - id = "Cell 1"; - name = "Cell 1"; - pixel_x = -32; - pixel_y = -32 - }, -/obj/machinery/status_display/door_timer{ - id = "Cell 4"; - name = "Cell 4"; - pixel_x = 32; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron, -/area/station/security/brig) "edH" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 8 @@ -11464,6 +11713,15 @@ }, /turf/open/floor/iron/dark, /area/station/security/courtroom) +"egt" = ( +/obj/structure/barricade/wooden, +/obj/effect/decal/cleanable/dirt, +/obj/item/flashlight/glowstick/blue{ + light_range = 2; + start_on = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "egv" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -11671,6 +11929,40 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/dark, /area/station/security/checkpoint/engineering) +"ejH" = ( +/obj/machinery/shower/directional/north{ + has_water_reclaimer = 0; + name = "smoking hot shower"; + reagent_capacity = 100; + reagent_id = /datum/reagent/clf3 + }, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, +/area/station/asteroid) +"ejP" = ( +/obj/structure/table, +/obj/item/storage/box/monkeycubes{ + pixel_x = 4 + }, +/obj/item/storage/box/monkeycubes{ + pixel_x = 6; + pixel_y = 9 + }, +/obj/item/storage/pill_bottle/mutadone{ + pixel_x = -9 + }, +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/siding/purple/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/item/flesh_shears{ + pixel_y = 10; + pixel_x = -5 + }, +/turf/open/floor/iron/white/textured, +/area/station/science/genetics) "ejS" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/window/reinforced/spawner/directional/north, @@ -11895,11 +12187,25 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/engineering/main) +"eoQ" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Air to Distro Staging" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) "eph" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, /turf/open/floor/plating, /area/station/security/prison/safe) +"epi" = ( +/obj/machinery/conveyor/auto{ + dir = 1; + id = "bridgedeliver" + }, +/turf/open/floor/plating/airless, +/area/station/maintenance/department/science) "epl" = ( /obj/machinery/door/airlock/medical{ name = "Medical Breakroom and Paramedic Dispatch" @@ -12040,20 +12346,6 @@ /obj/structure/cable, /turf/open/floor/wood/tile, /area/station/service/chapel) -"erL" = ( -/obj/machinery/button/curtain{ - id = "theater_curtains"; - name = "curtain control"; - pixel_x = 32; - req_access = list("theatre") - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood/parquet, -/area/station/service/theater) "erR" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -12131,6 +12423,24 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"esX" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 0; + pixel_y = 7 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 0; + pixel_y = 4 + }, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/cell_charger, +/obj/item/borg/upgrade/rename{ + pixel_x = 4; + pixel_y = 18 + }, +/turf/open/floor/iron/dark/textured, +/area/station/science/robotics/lab) "etg" = ( /obj/machinery/shower/directional/north, /obj/effect/turf_decal/tile/green/anticorner/contrasted{ @@ -12223,6 +12533,15 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, /area/station/commons/locker) +"euR" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/glass/coffee, +/obj/item/reagent_containers/cup/glass/coffee/no_lid{ + pixel_x = 12; + pixel_y = 6 + }, +/turf/open/floor/carpet, +/area/station/command/corporate_showroom) "euX" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod Four"; @@ -12233,14 +12552,21 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"evp" = ( -/obj/structure/transport/linear/public{ - base_icon_state = "catwalk"; - icon = 'icons/obj/smooth_structures/catwalk.dmi'; - icon_state = "catwalk-137" +"evg" = ( +/obj/machinery/modular_computer/preset/id{ + dir = 1 }, -/turf/open/floor/plating/elevatorshaft, -/area/station/cargo/storage) +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 6 + }, +/obj/machinery/keycard_auth/wall_mounted/directional/east, +/obj/machinery/button/door/directional/east{ + id = "cmoprivacy"; + name = "privacy shutter control"; + pixel_y = 12 + }, +/turf/open/floor/holofloor/dark, +/area/station/command/heads_quarters/cmo) "evr" = ( /obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ @@ -12406,6 +12732,34 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/security/prison/work) +"eyN" = ( +/obj/structure/table, +/obj/item/grenade/chem_grenade/smart_metal_foam{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/grenade/chem_grenade/smart_metal_foam{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/grenade/chem_grenade/smart_metal_foam{ + pixel_x = 8 + }, +/obj/item/grenade/chem_grenade/smart_metal_foam{ + pixel_y = 4 + }, +/obj/machinery/status_display/evac/directional/west, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/radio/off{ + pixel_x = -5; + pixel_y = -9 + }, +/obj/item/multitool{ + pixel_x = 5; + pixel_y = -12 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) "ezg" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -12608,6 +12962,16 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) +"eCb" = ( +/obj/machinery/vending/hydronutrients, +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "eCd" = ( /obj/effect/turf_decal/siding/white{ dir = 6 @@ -12710,14 +13074,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"eDl" = ( -/obj/structure/transport/linear/public{ - base_icon_state = "catwalk"; - icon = 'icons/obj/smooth_structures/catwalk.dmi'; - icon_state = "catwalk-8" - }, -/turf/open/openspace, -/area/station/ai_monitored/turret_protected/aisat_interior) "eDq" = ( /obj/effect/turf_decal/tile/brown/half/contrasted, /obj/structure/table, @@ -12907,6 +13263,25 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) +"eGz" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/structure/sign/directions/security/directional/north{ + pixel_y = 40 + }, +/obj/structure/sign/directions/medical/directional/north{ + dir = 2 + }, +/obj/structure/sign/directions/evac/directional/north{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/wood, +/area/station/service/cafeteria) "eGJ" = ( /obj/effect/turf_decal/siding/green, /obj/structure/cable, @@ -12937,12 +13312,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"eHx" = ( -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/any/science/general, -/obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/port/lesser) +"eHh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "eHA" = ( /obj/structure/railing/corner{ dir = 1 @@ -13012,6 +13390,27 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"eJr" = ( +/obj/item/flashlight/flare/candle{ + icon_state = "candle1_lit"; + pixel_y = 12; + start_on = 1 + }, +/obj/structure/broken_flooring/side/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/department/science) +"eJB" = ( +/obj/structure/reagent_dispensers/watertank/high, +/obj/item/reagent_containers/cup/watering_can, +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "eJE" = ( /obj/machinery/camera/autoname/directional/south, /turf/open/floor/carpet/executive, @@ -13304,20 +13703,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"eRk" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, -/obj/effect/spawner/random/trash/garbage{ - spawn_loot_count = 3 - }, -/obj/machinery/door/window/left/directional/north{ - name = "Danger: Conveyor Access"; - req_access = list("maint_tunnels") - }, -/turf/open/floor/plating, -/area/station/maintenance/disposal) "eRq" = ( /obj/structure/plasticflaps/opaque, /obj/machinery/door/window/left/directional/north{ @@ -13365,6 +13750,16 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/white, /area/station/medical/chemistry/minisat) +"eSE" = ( +/obj/structure/chair/sofa/corp/left{ + desc = "Looks like someone threw it out. Covered in donut crumbs."; + dir = 1; + name = "couch" + }, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/tile/red/half/contrasted, +/turf/open/floor/iron/half, +/area/station/security/breakroom) "eSH" = ( /obj/structure/table/glass, /obj/effect/turf_decal/tile/green/half/contrasted, @@ -13434,23 +13829,6 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) -"eUd" = ( -/obj/machinery/computer/pod/old/mass_driver_controller/trash{ - pixel_x = -32; - pixel_y = 6; - range = 5 - }, -/obj/structure/cable, -/obj/machinery/button/door/directional/west{ - id = "Disposal Exit"; - name = "Disposal Vent Control"; - pixel_x = -32; - pixel_y = -6; - req_access = list("maint_tunnels") - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/disposal) "eUj" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/portable_atmospherics/canister, @@ -13477,6 +13855,23 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/plating, /area/station/maintenance/solars/port) +"eVv" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/button/door/directional/north{ + id = "triage"; + name = "triage button"; + normaldoorcontrol = 1; + pixel_x = -26 + }, +/obj/machinery/button/ticket_machine{ + pixel_x = -26; + pixel_y = 36 + }, +/turf/open/floor/iron/white, +/area/station/medical/exam_room) "eVA" = ( /turf/open/floor/iron, /area/station/command/heads_quarters/ce) @@ -13506,23 +13901,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/science/lobby) -"eWd" = ( -/obj/machinery/button/door/directional/east{ - id = "Cabin7"; - name = "Cabin Bolt Control"; - normaldoorcontrol = 1; - specialfunctions = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood/tile, -/area/station/commons/dorms) "eWB" = ( /obj/machinery/computer/prisoner/management{ dir = 4 @@ -13572,14 +13950,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) -"eXI" = ( -/obj/structure/transport/linear/public{ - base_icon_state = "catwalk"; - icon = 'icons/obj/smooth_structures/catwalk.dmi'; - icon_state = "catwalk-6" - }, -/turf/open/floor/plating/elevatorshaft, -/area/station/cargo/storage) "eXM" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -13784,25 +14154,6 @@ "faK" = ( /turf/open/floor/glass/reinforced, /area/station/ai_monitored/turret_protected/ai_upload_foyer) -"faL" = ( -/obj/structure/ladder, -/obj/structure/window/reinforced/spawner/directional/east{ - pixel_x = 3 - }, -/obj/machinery/door/window/brigdoor/left/directional/south{ - name = "Monkey Pen"; - pixel_y = -3; - req_one_access = list("genetics") - }, -/obj/machinery/camera/autoname/directional/west{ - network = list("ss13","rd") - }, -/obj/effect/turf_decal/siding/purple/corner, -/obj/structure/sign/poster/random/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/white/textured, -/area/station/science/genetics) "faP" = ( /obj/effect/turf_decal/siding/wood, /obj/machinery/holopad, @@ -13875,14 +14226,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"fda" = ( -/obj/machinery/light/small/dim/directional/south, -/obj/structure/chair/office{ - dir = 4; - name = "grimy chair" - }, -/turf/open/floor/plating, -/area/station/maintenance/department/medical) "fde" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -14112,6 +14455,15 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/supermatter/room) +"fhL" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/storage/fancy/cigarettes{ + name = "\proper marlboro"; + rigged_omen = 1 + }, +/turf/open/floor/plating, +/area/station/commons/storage/art) "fhN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/maintenance, @@ -14262,6 +14614,16 @@ /obj/effect/spawner/random/trash/box, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"fle" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/sign/warning/no_smoking/directional/north, +/turf/open/floor/iron, +/area/station/service/hydroponics) "flm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -14385,6 +14747,14 @@ }, /turf/open/space/basic, /area/space/nearstation) +"fnO" = ( +/obj/structure/transport/linear/public{ + base_icon_state = "catwalk"; + icon = 'icons/obj/smooth_structures/catwalk.dmi'; + icon_state = "catwalk-13" + }, +/turf/open/openspace, +/area/station/ai_monitored/turret_protected/aisat_interior) "fnU" = ( /obj/machinery/door/airlock/virology/glass{ name = "Virology Lab" @@ -14579,6 +14949,14 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) +"frt" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + id = "geneshut" + }, +/turf/open/floor/plating, +/area/station/science/genetics) "fry" = ( /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai_upload) @@ -14882,28 +15260,6 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, /area/station/asteroid) -"fvQ" = ( -/obj/machinery/light_switch/directional/east, -/obj/structure/table, -/obj/machinery/light/small/directional/east, -/obj/item/reagent_containers/cup/beaker/large{ - pixel_x = 6; - pixel_y = 14 - }, -/obj/item/reagent_containers/cup/beaker{ - pixel_x = 10; - pixel_y = 7 - }, -/obj/item/book/manual/wiki/cytology{ - pixel_x = -3; - pixel_y = 2 - }, -/obj/item/biopsy_tool{ - pixel_x = -14; - pixel_y = 4 - }, -/turf/open/floor/iron/dark/small, -/area/station/science/cytology) "fvW" = ( /obj/structure/cable, /obj/machinery/light/directional/south, @@ -14917,41 +15273,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos) -"fwx" = ( -/obj/structure/table, -/obj/effect/turf_decal/bot, -/obj/machinery/camera/directional/west{ - c_tag = "Science Ordnance Test Lab"; - network = list("ss13","rd") - }, -/obj/item/assembly/prox_sensor{ - pixel_y = 2 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = 9; - pixel_y = -2 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -4; - pixel_y = 1 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = 8; - pixel_y = 9 - }, -/obj/machinery/requests_console/directional/west{ - department = "Ordnance Test Range"; - name = "Test Range Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/information, -/obj/effect/mapping_helpers/requests_console/assistance, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/binoculars{ - pixel_x = -5; - pixel_y = -10 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/testlab) "fwz" = ( /obj/effect/turf_decal/plaque{ icon_state = "L14" @@ -15034,6 +15355,14 @@ "fxF" = ( /turf/open/openspace, /area/station/command/heads_quarters/qm) +"fxG" = ( +/obj/structure/transport/linear/public{ + base_icon_state = "catwalk"; + icon = 'icons/obj/smooth_structures/catwalk.dmi'; + icon_state = "catwalk-137" + }, +/turf/open/floor/plating/elevatorshaft, +/area/station/cargo/storage) "fye" = ( /obj/structure/rack, /obj/item/storage/box/flashes{ @@ -15102,15 +15431,6 @@ dir = 4 }, /area/station/science/xenobiology) -"fzb" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - dir = 8; - id = "xbprotect"; - name = "Security Shutters" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/science/xenobiology) "fze" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -15205,6 +15525,14 @@ /obj/effect/turf_decal/tile/yellow, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"fzZ" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "r2p" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/medical/patients_rooms/room_b) "fAg" = ( /obj/machinery/door/airlock/maintenance_hatch, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, @@ -15678,6 +16006,14 @@ }, /turf/open/floor/engine/air, /area/station/engineering/atmos) +"fHk" = ( +/obj/structure/transport/linear/public{ + base_icon_state = "catwalk"; + icon = 'icons/obj/smooth_structures/catwalk.dmi'; + icon_state = "catwalk-74" + }, +/turf/open/floor/plating/elevatorshaft, +/area/station/cargo/storage) "fHJ" = ( /obj/effect/turf_decal/siding/white{ dir = 6 @@ -15878,39 +16214,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"fLY" = ( -/obj/machinery/computer/atmos_alert/station_only{ - dir = 4 - }, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/iron, -/area/station/engineering/atmos/upper) -"fMc" = ( -/obj/structure/table, -/obj/item/storage/box/prisoner{ - pixel_x = -6; - pixel_y = 8 - }, -/obj/item/storage/box/prisoner{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/storage/box/hug{ - pixel_x = 8; - pixel_y = 8 - }, -/obj/item/storage/box/bodybags{ - pixel_x = 8; - pixel_y = 4 - }, -/obj/item/radio/intercom/prison/directional/south, -/obj/item/razor{ - pixel_x = -8; - pixel_y = 3 - }, -/obj/item/paper/fluff/genpop_instructions, -/turf/open/floor/iron/dark/textured, -/area/station/security/execution/transfer) "fMz" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/item/pai_card, @@ -15937,6 +16240,14 @@ dir = 1 }, /area/station/engineering/atmos) +"fMT" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "r1p" + }, +/turf/open/floor/plating, +/area/station/medical/patients_rooms/room_a) "fMW" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -15974,6 +16285,25 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"fNp" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/table/reinforced, +/obj/machinery/door/window/left/directional/west{ + name = "Baked Goods"; + req_one_access = list("service","maint_tunnels") + }, +/obj/item/food/muffin/berry{ + pixel_y = 8 + }, +/obj/item/food/poppypretzel, +/obj/item/food/cherrycupcake{ + pixel_y = 19 + }, +/obj/effect/turf_decal/siding/red{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/fore) "fNv" = ( /obj/structure/cable, /obj/machinery/door/airlock/maintenance/external, @@ -16197,14 +16527,27 @@ /obj/effect/mapping_helpers/airalarm/tlv_no_checks, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"fQL" = ( -/obj/structure/transport/linear/public{ - base_icon_state = "catwalk"; - icon = 'icons/obj/smooth_structures/catwalk.dmi'; - icon_state = "catwalk-21" +"fQG" = ( +/obj/machinery/door/airlock/virology/glass{ + id_tag = "virology_airlock_exterior"; + name = "Virology Lab" }, -/turf/open/floor/plating/elevatorshaft, -/area/station/cargo/storage) +/obj/effect/mapping_helpers/airlock/access/all/medical/virology, +/obj/structure/cable, +/obj/effect/turf_decal/tile/green/fourcorners, +/obj/machinery/door_buttons/access_button{ + dir = 1; + idDoor = "virology_airlock_exterior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + pixel_y = -24; + req_access = list("virology") + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) "fQO" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -16219,13 +16562,19 @@ /obj/machinery/door/window/right/directional/east, /turf/open/floor/grass, /area/station/service/hydroponics/garden) -"fRx" = ( -/obj/machinery/door/window/left/directional/south{ - name = "Research Testing Chamber"; - req_access = list("science") +"fRw" = ( +/obj/machinery/computer/crew{ + dir = 8 }, -/turf/open/floor/engine, -/area/station/science/explab) +/obj/item/toy/figure/md{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/exam_room) "fRB" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -16267,6 +16616,18 @@ /obj/item/stack/spacecash/c100, /turf/open/floor/fakebasalt, /area/station/maintenance/department/medical) +"fSq" = ( +/obj/machinery/door/poddoor/shutters{ + id = "secwarehouse"; + name = "Secure Warehouse Shutters" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/tracks, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/warehouse/upper) "fSB" = ( /obj/machinery/door/airlock/security{ name = "Cargo Security Post" @@ -16806,6 +17167,14 @@ "gcy" = ( /turf/closed/wall, /area/station/medical/virology) +"gcA" = ( +/obj/machinery/door/poddoor/shutters/window{ + id = "incstorage"; + name = "Incinerator Storage Shutters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "gcD" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/robot_debris/limb, @@ -16834,16 +17203,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"gcY" = ( -/obj/structure/table/wood/fancy/orange, -/obj/machinery/coffeemaker/impressa{ - desc = "An industry-grade Impressa Modello 5 Coffeemaker of the Piccionaia Home Appliances premium coffeemakers product line. Makes coffee from fresh dried whole beans. Guess this is where all the cargo tax goes."; - pixel_x = 6; - pixel_y = 6 - }, -/obj/structure/cable, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) "gcZ" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/tile/neutral/full, @@ -16864,17 +17223,6 @@ /obj/machinery/duct, /turf/open/floor/iron/dark, /area/station/medical/treatment_center) -"gdr" = ( -/obj/machinery/gateway/centerstation{ - bound_height = 96; - bound_width = 64; - bound_x = 0; - bound_y = -32; - dir = 8 - }, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/iron/dark, -/area/station/command/gateway) "gdA" = ( /obj/structure/chair/sofa/bench/right, /turf/open/floor/iron/white, @@ -16903,18 +17251,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"ged" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - dir = 8; - id = "xbprotect"; - name = "Security Shutters" +"geh" = ( +/obj/machinery/door/window/brigdoor/right/directional/north{ + name = "Justice Chamber"; + req_access = list("armory") }, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/machinery/firealarm/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) +/obj/machinery/conveyor_switch/oneway{ + id = "execution"; + pixel_x = 10 + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) "gei" = ( /obj/machinery/disposal/bin, /obj/effect/turf_decal/bot_red, @@ -17006,10 +17356,6 @@ /obj/structure/water_source/puddle, /turf/open/floor/grass, /area/station/service/hydroponics/garden) -"ggq" = ( -/obj/machinery/computer/station_alert/station_only, -/turf/open/floor/iron, -/area/station/engineering/atmos/upper) "ggu" = ( /obj/machinery/door/airlock/public/glass{ name = "Library" @@ -17341,6 +17687,15 @@ /obj/machinery/digital_clock/directional/north, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"gmd" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "chapel_shutters_parlour"; + name = "Chapel Shutters" + }, +/turf/open/floor/plating, +/area/station/service/chapel/funeral) "gme" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -17384,6 +17739,14 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) +"gnu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold{ + dir = 8 + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "gnx" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/reagent_dispensers/beerkeg, @@ -17418,6 +17781,14 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"gow" = ( +/obj/structure/kitchenspike, +/obj/item/radio/intercom/directional/west, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "goB" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/blood/tracks, @@ -17505,6 +17876,17 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/hallway/primary/starboard) +"gqA" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + location = "Science" + }, +/obj/machinery/door/window/right/directional/south{ + name = "MuleBot Access"; + req_access = list("shipping") + }, +/turf/open/floor/plating, +/area/station/maintenance/port/lesser) "gqN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /turf/closed/wall/r_wall, @@ -17675,6 +18057,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/science/lobby) +"gtE" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + dir = 8; + id = "xbprotect1"; + name = "Security Shutters" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/white/textured_large, +/area/station/science/xenobiology) "gtK" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -17754,6 +18145,18 @@ /obj/effect/decal/cleanable/blood/old, /turf/open/floor/iron/freezer, /area/station/maintenance/department/medical/central) +"gvj" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + dir = 8; + id = "xbprotect"; + name = "Security Shutters" + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "gvk" = ( /obj/structure/cable, /obj/effect/spawner/random/maintenance, @@ -17837,6 +18240,25 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) +"gws" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "cmoprivacy"; + name = "Privacy Shutters" + }, +/turf/open/floor/plating, +/area/station/command/heads_quarters/cmo) +"gwx" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + dir = 8; + id = "xbprotect"; + name = "Security Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/xenobiology) "gwA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -17959,6 +18381,20 @@ /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"gyM" = ( +/obj/machinery/button/curtain{ + id = "theater_curtains"; + name = "curtain control"; + pixel_x = 32; + req_access = list("theatre") + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/parquet, +/area/station/service/theater) "gyP" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/engine/o2, @@ -17973,25 +18409,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"gyV" = ( -/obj/machinery/door/airlock/security/glass{ - id_tag = "secentrylock2"; - name = "Security Entry" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "brig-entrance" - }, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/security/entrance, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/scanner_gate/preset_guns, -/turf/open/floor/iron, -/area/station/security/brig/entrance) "gza" = ( /obj/machinery/atmospherics/pipe/smart/manifold/general/visible{ dir = 4 @@ -18045,6 +18462,19 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/commons/storage/tools) +"gzw" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/door/window/left/directional/north{ + name = "Anti Assistant Protection Door"; + req_access = list("medical") + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/anesthetic_mix, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) "gzL" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/plating, @@ -18062,54 +18492,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/dark/textured, /area/station/medical/morgue) -"gAk" = ( -/obj/structure/table, -/obj/item/electronics/airalarm{ - pixel_x = -5; - pixel_y = -5 - }, -/obj/item/electronics/airalarm{ - pixel_x = -5; - pixel_y = -5 - }, -/obj/item/electronics/airalarm{ - pixel_x = -5; - pixel_y = -5 - }, -/obj/item/electronics/firealarm{ - pixel_x = 5; - pixel_y = -5 - }, -/obj/item/electronics/firealarm{ - pixel_x = 5; - pixel_y = -5 - }, -/obj/item/electronics/firealarm{ - pixel_x = 5; - pixel_y = -5 - }, -/obj/item/storage/toolbox/electrical{ - pixel_x = -5; - pixel_y = 12 - }, -/obj/item/multitool{ - pixel_x = 11; - pixel_y = 10 - }, -/obj/item/multitool{ - pixel_x = 11; - pixel_y = 10 - }, -/obj/item/multitool{ - pixel_x = 11; - pixel_y = 10 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/iron/large, -/area/station/engineering/atmos) "gAv" = ( /obj/structure/table, /obj/item/storage/box/evidence, @@ -18119,6 +18501,12 @@ /obj/item/restraints/legcuffs/bola/energy, /turf/open/floor/iron/dark, /area/station/security/lockers) +"gAD" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/any/science/general, +/obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/lesser) "gAQ" = ( /obj/structure/bed/dogbed, /obj/machinery/light_switch/directional/north, @@ -18232,26 +18620,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"gCI" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/table/reinforced, -/obj/machinery/door/window/right/directional/west{ - name = "Baked Goods"; - req_one_access = list("service","maint_tunnels") - }, -/obj/item/food/hotcrossbun{ - pixel_x = 1; - pixel_y = 10 - }, -/obj/item/food/cakeslice/pound_cake_slice{ - pixel_x = 1; - pixel_y = -2 - }, -/obj/effect/turf_decal/siding/red{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/fore) "gCL" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/neutral, @@ -18316,6 +18684,14 @@ dir = 1 }, /area/station/security) +"gDt" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 8 + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "gDQ" = ( /obj/effect/turf_decal/tile/brown/fourcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -18336,19 +18712,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/storage) -"gDU" = ( -/obj/machinery/light/directional/north, -/obj/structure/table, -/obj/item/pen{ - pixel_x = 9; - pixel_y = 4 - }, -/obj/item/hand_labeler{ - pixel_x = -13; - pixel_y = 10 - }, -/turf/open/floor/glass/reinforced, -/area/station/science/xenobiology) "gEm" = ( /obj/structure/railing{ dir = 4 @@ -18424,16 +18787,6 @@ }, /turf/open/floor/iron/white/textured_large, /area/station/science/genetics) -"gFj" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/obj/structure/chair{ - dir = 8; - name = "Judge" - }, -/turf/open/floor/wood/tile, -/area/station/security/courtroom) "gFI" = ( /obj/machinery/door/airlock/command{ name = "Head of Security's Quarters" @@ -18492,6 +18845,16 @@ }, /turf/open/floor/iron/white/herringbone, /area/station/science/breakroom) +"gGp" = ( +/obj/structure/table/wood/fancy/orange, +/obj/machinery/coffeemaker/impressa{ + desc = "An industry-grade Impressa Modello 5 Coffeemaker of the Piccionaia Home Appliances premium coffeemakers product line. Makes coffee from fresh dried whole beans. Guess this is where all the cargo tax goes."; + pixel_x = 6; + pixel_y = 6 + }, +/obj/structure/cable, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "gGr" = ( /turf/closed/wall, /area/station/engineering/storage/tcomms) @@ -18536,6 +18899,41 @@ /obj/machinery/light/small/broken/directional/east, /turf/open/floor/iron/freezer, /area/station/maintenance/department/medical/central) +"gHL" = ( +/obj/structure/table, +/obj/effect/turf_decal/bot, +/obj/machinery/camera/directional/west{ + c_tag = "Science Ordnance Test Lab"; + network = list("ss13","rd") + }, +/obj/item/assembly/prox_sensor{ + pixel_y = 2 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = 9; + pixel_y = -2 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = 8; + pixel_y = 9 + }, +/obj/machinery/requests_console/directional/west{ + department = "Ordnance Test Range"; + name = "Test Range Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/information, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/binoculars{ + pixel_x = -5; + pixel_y = -10 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) "gHN" = ( /turf/closed/wall, /area/station/medical/chemistry/minisat) @@ -18740,15 +19138,6 @@ dir = 1 }, /area/station/engineering/atmos/storage/gas) -"gLX" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "chapel_shutters_parlour"; - name = "Chapel Shutters" - }, -/turf/open/floor/plating, -/area/station/service/chapel/funeral) "gLZ" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -18771,6 +19160,15 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"gMy" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + dir = 8; + id = "xbprotect"; + name = "Security Shutters" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/white/textured_large, +/area/station/science/xenobiology) "gME" = ( /obj/effect/turf_decal/delivery, /obj/structure/table, @@ -18807,13 +19205,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"gNf" = ( -/obj/machinery/computer/station_alert/station_only{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/turf/open/floor/iron, -/area/station/command/heads_quarters/ce) "gNo" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -18871,26 +19262,6 @@ dir = 1 }, /area/station/science/research) -"gOB" = ( -/obj/structure/table, -/obj/item/storage/box/monkeycubes{ - pixel_x = 4 - }, -/obj/item/storage/box/monkeycubes{ - pixel_x = 6; - pixel_y = 9 - }, -/obj/item/storage/pill_bottle/mutadone{ - pixel_x = -9 - }, -/obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/siding/purple/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/white/textured, -/area/station/science/genetics) "gOG" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -19102,6 +19473,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/paramedic) +"gTS" = ( +/obj/machinery/door/poddoor/shutters{ + id = "warehouse"; + name = "Warehouse Shutters" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "gTU" = ( /obj/docking_port/stationary{ dheight = 4; @@ -19123,6 +19502,15 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/general, /turf/open/floor/plating, /area/station/medical/exam_room) +"gUa" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/structure/window/spawner/directional/north, +/obj/item/mod/construction/broken_core, +/turf/open/floor/plating, +/area/station/maintenance/disposal) "gUe" = ( /obj/structure/table, /obj/item/grenade/chem_grenade/smart_metal_foam{ @@ -19305,17 +19693,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/satellite) -"gWW" = ( -/obj/effect/turf_decal/stripes{ - dir = 10 - }, -/obj/machinery/button/door/directional/south{ - id = "Secure Storage"; - name = "Secure Storage Control" - }, -/obj/machinery/light/directional/west, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "gWX" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -19364,6 +19741,12 @@ /obj/effect/turf_decal/trimline/yellow/filled/mid_joiner, /turf/open/floor/iron/white/smooth_edge, /area/station/medical/pharmacy) +"gYF" = ( +/obj/structure/cable/multilayer/multiz, +/obj/machinery/computer/order_console/cook, +/obj/effect/turf_decal/tile/dark_green/opposingcorners, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) "gYH" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -19612,18 +19995,6 @@ /obj/effect/spawner/random/trash/mess, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"hbn" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron, -/area/station/service/hydroponics) "hbo" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -19989,6 +20360,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/science) +"hhd" = ( +/obj/machinery/door/poddoor/shutters{ + dir = 1; + id = "ordauxgarage" + }, +/obj/effect/turf_decal/sand/plating, +/obj/effect/turf_decal/stripes/asteroid/end{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/science/ordnance) "hhC" = ( /obj/structure/railing{ dir = 5 @@ -20027,6 +20409,19 @@ }, /turf/open/floor/carpet, /area/station/service/chapel/funeral) +"hii" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + dir = 8; + id = "xbprotect3"; + name = "Security Shutters" + }, +/obj/effect/turf_decal/caution/stand_clear{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/textured_large, +/area/station/science/xenobiology) "his" = ( /obj/effect/decal/cleanable/greenglow/radioactive, /obj/machinery/light/small/directional/west, @@ -20178,6 +20573,21 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) +"hmg" = ( +/obj/machinery/requests_console/directional/north{ + department = "Bar"; + name = "Bar Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/supplies, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/item/radio/intercom/directional/west, +/obj/effect/mapping_helpers/requests_console/assistance, +/turf/open/floor/iron/dark, +/area/station/service/bar) "hmj" = ( /obj/structure/table/reinforced, /obj/item/storage/box/lights/mixed, @@ -20192,6 +20602,14 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron, /area/station/commons/storage/primary) +"hmk" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/chair/office{ + dir = 1; + name = "grimy chair" + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) "hms" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/effect/turf_decal/siding/purple{ @@ -20318,15 +20736,6 @@ }, /turf/open/floor/iron/dark/textured_large, /area/station/ai_monitored/turret_protected/aisat/foyer) -"hnR" = ( -/obj/structure/reagent_dispensers/plumbed/storage{ - dir = 8; - reagent_id = /datum/reagent/clf3 - }, -/obj/structure/sign/warning/fire/directional/south, -/obj/effect/turf_decal/sand/plating, -/turf/open/floor/plating, -/area/station/asteroid) "hnY" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -20336,6 +20745,16 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood/parquet, /area/station/service/theater) +"hoe" = ( +/obj/machinery/conveyor/auto{ + dir = 8; + id = "bridgedeliver" + }, +/obj/structure/transit_tube/crossing, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating/airless, +/area/station/maintenance/department/science) "hon" = ( /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -20367,20 +20786,6 @@ /obj/effect/turf_decal/tile/brown/half/contrasted, /turf/open/floor/iron, /area/station/cargo/storage) -"hoY" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Teleport Access" - }, -/obj/effect/turf_decal/delivery, -/obj/structure/cable, -/obj/effect/landmark/navigate_destination, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/any/command/teleporter, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/command/teleporter) "hpb" = ( /obj/structure/railing, /obj/machinery/door/firedoor/border_only, @@ -20396,6 +20801,25 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood/tile, /area/station/service/bar) +"hpB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/sign/directions/security/directional/west{ + dir = 1 + }, +/obj/structure/sign/directions/supply/directional/west{ + dir = 1; + pixel_y = 8 + }, +/obj/structure/sign/directions/science/directional/west{ + dir = 1; + pixel_y = -8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "hpT" = ( /obj/machinery/door/airlock/command{ name = "Quartermaster's Office" @@ -20510,6 +20934,24 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"hrm" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/effect/landmark/start/hangover, +/obj/effect/spawner/random/trash/graffiti{ + pixel_y = -32; + spawn_loot_chance = 50 + }, +/obj/machinery/light/small/dim/directional/east, +/obj/machinery/button/door/directional/west{ + id = "u4"; + name = "privacy bolt control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet/restrooms) "hro" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -20796,6 +21238,15 @@ /obj/structure/disposalpipe/trunk/multiz/down, /turf/open/floor/plating, /area/station/asteroid) +"hvA" = ( +/obj/structure/transport/linear/public{ + base_icon_state = "catwalk"; + icon = 'icons/obj/smooth_structures/catwalk.dmi'; + icon_state = "catwalk-78" + }, +/obj/effect/spawner/random/structure/closet_empty/crate, +/turf/open/floor/plating/elevatorshaft, +/area/station/cargo/storage) "hvD" = ( /obj/structure/broken_flooring/pile{ dir = 8 @@ -20885,25 +21336,17 @@ /obj/structure/sign/poster/contraband/space_cola/directional/north, /turf/open/floor/catwalk_floor/iron_dark, /area/station/cargo/bitrunning/den) -"hxu" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +"hxh" = ( +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/directions/evac/directional/south, -/obj/structure/sign/directions/medical/directional/south{ - dir = 8; - pixel_y = -24 +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ + dir = 4 }, -/obj/structure/sign/directions/science/directional/south{ - dir = 4; - pixel_y = -40 +/obj/machinery/door/airlock/freezer{ + name = "Freezer" }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "hxB" = ( /obj/effect/mapping_helpers/airlock/access/all/security/brig, /obj/machinery/door/airlock/security/glass{ @@ -21028,24 +21471,6 @@ }, /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/captain/private) -"hAm" = ( -/obj/structure/table/reinforced, -/obj/item/stock_parts/power_store/cell/high{ - pixel_x = 0; - pixel_y = 7 - }, -/obj/item/stock_parts/power_store/cell/high{ - pixel_x = 0; - pixel_y = 4 - }, -/obj/item/stock_parts/power_store/cell/high, -/obj/machinery/cell_charger, -/obj/item/borg/upgrade/rename{ - pixel_x = 4; - pixel_y = 18 - }, -/turf/open/floor/iron/dark/textured, -/area/station/science/robotics/lab) "hAx" = ( /obj/effect/decal/cleanable/blood/splatter/over_window, /turf/closed/wall, @@ -21072,6 +21497,16 @@ /obj/item/cultivator/rake, /turf/open/floor/grass, /area/station/security/prison/garden) +"hAV" = ( +/obj/structure/table/wood, +/obj/item/flashlight/flare/candle{ + pixel_x = 1; + pixel_y = 10 + }, +/turf/open/floor/iron/chapel{ + dir = 4 + }, +/area/station/service/chapel) "hBi" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/turf_decal/tile/yellow/half/contrasted{ @@ -21379,13 +21814,6 @@ /obj/structure/closet/crate/preopen, /turf/open/floor/iron, /area/station/cargo/warehouse/upper) -"hHh" = ( -/obj/machinery/conveyor/auto{ - dir = 8; - id = "bridgedeliver" - }, -/turf/open/floor/plating/airless, -/area/station/maintenance/department/science) "hHj" = ( /obj/effect/landmark/start/medical_doctor, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -21406,6 +21834,13 @@ /obj/machinery/drone_dispenser, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"hHA" = ( +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/stairs/left{ + color = "#795C32"; + dir = 8 + }, +/area/station/security/courtroom) "hHF" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 4 @@ -21428,6 +21863,29 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"hHW" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/engineering_guide{ + pixel_x = -6; + pixel_y = 7 + }, +/obj/item/pen{ + pixel_x = 7; + pixel_y = 6 + }, +/obj/item/clothing/head/utility/welding{ + pixel_y = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/department/science) +"hIh" = ( +/obj/machinery/gibber, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "hIq" = ( /obj/machinery/door/airlock/medical/glass{ name = "Reception" @@ -21461,10 +21919,24 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/science/robotics/mechbay) +"hIW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold{ + dir = 1 + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "hJo" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"hJs" = ( +/obj/machinery/conveyor/auto{ + dir = 8; + id = "bridgedeliver" + }, +/turf/open/floor/plating/airless, +/area/station/maintenance/department/science) "hJU" = ( /obj/structure/chair/wood, /obj/effect/turf_decal/siding/wood{ @@ -21494,14 +21966,6 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/dark/textured_large, /area/station/science/xenobiology) -"hKT" = ( -/obj/item/flashlight/glowstick/orange{ - pixel_x = -5; - pixel_y = -6; - start_on = 1 - }, -/turf/open/misc/asteroid, -/area/station/asteroid) "hKU" = ( /obj/machinery/computer/exoscanner_control{ dir = 8 @@ -21570,6 +22034,19 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/execution/education) +"hMf" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + dir = 8; + id = "xbprotect1"; + name = "Security Shutters" + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "hME" = ( /turf/closed/wall, /area/station/security/prison/work) @@ -21588,6 +22065,14 @@ "hNh" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/bridge) +"hNC" = ( +/obj/structure/transport/linear/public{ + base_icon_state = "catwalk"; + icon = 'icons/obj/smooth_structures/catwalk.dmi'; + icon_state = "catwalk-4" + }, +/turf/open/openspace, +/area/station/ai_monitored/turret_protected/aisat_interior) "hNG" = ( /obj/effect/turf_decal/siding/green, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -21660,21 +22145,6 @@ /obj/item/kitchen/rollingpin, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) -"hOG" = ( -/obj/machinery/chem_master/condimaster{ - desc = "Used to separate out liquids - useful for purifying botanical extracts. Also dispenses condiments."; - name = "SapMaster XP" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/machinery/light_switch/directional/north, -/turf/open/floor/iron, -/area/station/service/hydroponics) "hOR" = ( /obj/structure/stairs/east, /turf/open/floor/iron/stairs, @@ -21694,6 +22164,18 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/solars/port/fore) +"hPk" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/service/hydroponics) "hPp" = ( /obj/structure/table/glass, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -22151,6 +22633,14 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/hallway/secondary/entry) +"hVQ" = ( +/obj/structure/transport/linear/public{ + base_icon_state = "catwalk"; + icon = 'icons/obj/smooth_structures/catwalk.dmi'; + icon_state = "catwalk-203" + }, +/turf/open/floor/plating/elevatorshaft, +/area/station/cargo/storage) "hVW" = ( /obj/machinery/telecomms/hub/preset, /turf/open/floor/circuit/green/telecomms/mainframe, @@ -22393,6 +22883,19 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, /area/station/asteroid) +"ibE" = ( +/obj/machinery/pdapainter/research, +/obj/item/toy/plush/rouny{ + desc = "THAT is a rouny."; + name = "rouny plushie"; + pixel_y = 18 + }, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/purple/corner, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/rd) "icl" = ( /obj/machinery/door/airlock/public/glass{ name = "Library" @@ -22825,6 +23328,22 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/central/lesser) +"ikp" = ( +/obj/structure/table, +/obj/item/toy/plush/slimeplushie{ + pixel_x = 3; + pixel_y = 12 + }, +/obj/item/stamp{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/stamp/denied{ + pixel_x = 4; + pixel_y = 1 + }, +/turf/open/floor/glass/reinforced, +/area/station/science/xenobiology) "ikD" = ( /obj/structure/grille/broken, /obj/effect/decal/cleanable/glass, @@ -22920,6 +23439,10 @@ /obj/item/camera, /turf/open/floor/iron, /area/station/security/prison) +"imU" = ( +/obj/structure/girder/displaced, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "imZ" = ( /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/closed/wall/r_wall, @@ -23026,6 +23549,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/science/xenobiology) +"ioZ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/dresser, +/obj/item/toy/figure/dsquad{ + pixel_x = 6; + pixel_y = 12 + }, +/obj/item/toy/figure/secofficer{ + pixel_x = -6; + pixel_y = 12 + }, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/carpet/red, +/area/station/security/warden) "ipc" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -23155,6 +23692,25 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central) +"irf" = ( +/obj/structure/ladder, +/obj/structure/window/reinforced/spawner/directional/east{ + pixel_x = 3 + }, +/obj/machinery/door/window/brigdoor/left/directional/south{ + name = "Monkey Pen"; + pixel_y = -3; + req_one_access = list("genetics") + }, +/obj/machinery/camera/autoname/directional/west{ + network = list("ss13","rd") + }, +/obj/effect/turf_decal/siding/purple/corner, +/obj/structure/sign/poster/random/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white/textured, +/area/station/science/genetics) "irx" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -23199,6 +23755,23 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"ism" = ( +/obj/machinery/button/door/directional/east{ + id = "Cabin7"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/tile, +/area/station/commons/dorms) "isq" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/landmark/event_spawn, @@ -23315,19 +23888,6 @@ "iuB" = ( /turf/open/floor/plating/elevatorshaft, /area/station/ai_monitored/turret_protected/aisat_interior) -"iuQ" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/brigdoor/right/directional/north{ - name = "Brig Control Desk"; - req_access = list("armory") - }, -/obj/machinery/door/window/right/directional/south, -/obj/structure/desk_bell, -/obj/machinery/flasher/directional/east{ - id = "control2" - }, -/turf/open/floor/plating, -/area/station/security/warden) "iuU" = ( /obj/structure/window/reinforced/spawner/directional/west, /mob/living/basic/bot/cleanbot, @@ -23733,23 +24293,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark, /area/station/command/teleporter) -"iDd" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/button/door/directional/east{ - id = "ordauxgarage"; - name = "shutter control" - }, -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/station/science/ordnance) -"iDo" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id = "geneshut" - }, -/turf/open/floor/plating, -/area/station/science/genetics) "iDq" = ( /obj/item/clothing/head/costume/festive{ pixel_x = 1; @@ -24216,18 +24759,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/paramedic) -"iKJ" = ( -/obj/structure/cable, -/obj/structure/plasticflaps/opaque, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/window/right/directional/south{ - name = "MuleBot Access"; - req_access = list("shipping") - }, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/maintenance/department/engine) "iLh" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 @@ -24253,17 +24784,6 @@ }, /turf/open/floor/iron/white, /area/station/maintenance/department/medical) -"iLu" = ( -/obj/structure/cable, -/obj/machinery/button/door/directional/east{ - id = "xbprotect1"; - name = "shutter control" - }, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/item/kirbyplants/random, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "iLw" = ( /obj/structure/cable, /obj/machinery/door/firedoor, @@ -24272,38 +24792,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"iLz" = ( -/obj/structure/table/reinforced/rglass, -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/item/storage/box/gloves{ - pixel_y = 10 - }, -/obj/item/storage/box/masks{ - pixel_x = -6; - pixel_y = 2 - }, -/obj/item/storage/box/bodybags{ - pixel_x = 6; - pixel_y = 2 - }, -/turf/open/floor/iron/white, -/area/station/medical/treatment_center) "iLG" = ( /obj/structure/table/wood, /obj/item/radio/intercom/command/directional/south, /obj/machinery/recharger, /turf/open/floor/carpet/green, /area/station/command/heads_quarters/hop) -"iLK" = ( -/obj/machinery/vending/hydronutrients, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "iLZ" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -24327,15 +24821,6 @@ "iMq" = ( /turf/closed/wall, /area/station/medical/morgue) -"iMy" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - dir = 8; - id = "xbprotect1"; - name = "Security Shutters" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/white/textured_large, -/area/station/science/xenobiology) "iMD" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -24449,6 +24934,17 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/carpet/executive, /area/station/command/corporate_showroom) +"iPf" = ( +/obj/structure/cable, +/obj/machinery/button/door/directional/east{ + id = "xbprotect1"; + name = "shutter control" + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "iPm" = ( /obj/structure/rack, /obj/effect/turf_decal/trimline/yellow/filled/line, @@ -24810,20 +25306,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/medical/chemistry/minisat) -"iXG" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/structure/sign/directions/medical/directional/east{ - dir = 8; - pixel_y = 8 - }, -/obj/structure/sign/directions/evac/directional/east{ - pixel_y = -8 - }, -/obj/structure/sign/directions/engineering/directional/east, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "iXR" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -24892,6 +25374,21 @@ /obj/machinery/light/small/dim/directional/north, /turf/open/floor/iron/white/smooth_large, /area/station/science/research) +"jaa" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/sign/directions/command/directional/north, +/obj/structure/sign/directions/engineering/directional/north{ + dir = 4; + pixel_y = 40 + }, +/obj/structure/sign/directions/security/directional/north{ + dir = 8; + pixel_y = 24 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "jaf" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp/green, @@ -25377,24 +25874,6 @@ mineralChance = 20 }, /area/station/asteroid) -"jjy" = ( -/obj/structure/toilet{ - dir = 4 - }, -/obj/effect/landmark/start/hangover, -/obj/effect/spawner/random/trash/graffiti{ - pixel_x = -32; - spawn_loot_chance = 50 - }, -/obj/machinery/light/small/dim/directional/north, -/obj/machinery/button/door/directional/south{ - id = "u2"; - name = "privacy bolt control"; - normaldoorcontrol = 1; - specialfunctions = 4 - }, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet/restrooms) "jjF" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -25529,6 +26008,43 @@ }, /turf/open/floor/holofloor/dark, /area/station/command/heads_quarters/cmo) +"jlc" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 1 + }, +/obj/item/reagent_containers/cup/bottle/facid{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/reagent_containers/cup/bottle/toxin{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/reagent_containers/cup/bottle/morphine{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/reagent_containers/cup/bottle/morphine{ + pixel_x = 5; + pixel_y = 1 + }, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/syringe{ + pixel_y = 5 + }, +/obj/item/reagent_containers/syringe{ + pixel_y = 5 + }, +/obj/item/assembly/signaler{ + pixel_x = -3; + pixel_y = -12 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) "jle" = ( /obj/structure/chair{ dir = 4 @@ -25591,6 +26107,23 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) +"jmP" = ( +/obj/machinery/computer/pod/old/mass_driver_controller/trash{ + id = "captaindriver"; + pixel_x = -24 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/command/heads_quarters/captain/private) "jmU" = ( /obj/effect/landmark/start/head_of_security, /obj/machinery/light/small/directional/east, @@ -25886,14 +26419,6 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"jsa" = ( -/obj/structure/transport/linear/public{ - base_icon_state = "catwalk"; - icon = 'icons/obj/smooth_structures/catwalk.dmi'; - icon_state = "catwalk-55" - }, -/turf/open/floor/plating/elevatorshaft, -/area/station/cargo/storage) "jsf" = ( /obj/structure/sign/warning/chem_diamond/directional/south, /obj/effect/decal/cleanable/dirt/dust, @@ -26182,19 +26707,6 @@ /obj/structure/cable, /turf/open/openspace, /area/station/command/meeting_room) -"jxY" = ( -/obj/structure/closet/preopen{ - icon_state = "bio"; - name = "level 3 biohazard gear closet" - }, -/obj/effect/turf_decal/tile/green/anticorner/contrasted{ - dir = 8 - }, -/obj/item/radio/intercom/directional/west, -/obj/effect/mapping_helpers/broken_floor, -/obj/item/tank/internals/oxygen, -/turf/open/floor/iron/white/textured, -/area/station/maintenance/department/medical/central) "jyg" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/machinery/suit_storage_unit/medical, @@ -26583,6 +27095,19 @@ /obj/structure/transport/linear/public, /turf/open/floor/plating/elevatorshaft, /area/station/cargo/storage) +"jDs" = ( +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/structure/table, +/obj/item/reagent_containers/cup/glass/shaker{ + pixel_x = -6 + }, +/obj/item/storage/box/drinkingglasses{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/bar) "jDC" = ( /obj/effect/turf_decal/tile/brown/half/contrasted, /obj/effect/decal/cleanable/dirt, @@ -26975,20 +27500,6 @@ /obj/item/pickaxe/improvised, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"jJx" = ( -/obj/structure/table, -/obj/item/stack/sheet/iron/fifty{ - pixel_x = -7; - pixel_y = 7 - }, -/obj/item/stack/sheet/plasteel{ - amount = 10; - pixel_x = 7; - pixel_y = 7 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/turf/open/floor/iron, -/area/station/engineering/storage) "jJA" = ( /obj/structure/sign/warning/directional/east, /obj/structure/closet/crate/trashcart/filled, @@ -27087,13 +27598,6 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos) -"jLm" = ( -/obj/item/flashlight/glowstick/cyan{ - pixel_y = 7; - start_on = 1 - }, -/turf/open/misc/asteroid, -/area/station/asteroid) "jLp" = ( /obj/machinery/photocopier, /turf/open/floor/carpet/purple, @@ -27115,14 +27619,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/parquet, /area/station/service/theater) -"jLT" = ( -/obj/machinery/lift_indicator{ - linked_elevator_id = "aisat"; - pixel_x = -6; - pixel_y = -3 - }, -/turf/closed/wall/r_wall, -/area/station/ai_monitored/turret_protected/aisat_interior) "jLV" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/blood/old{ @@ -27148,29 +27644,6 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos/pumproom) -"jMb" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/obj/structure/table, -/obj/item/reagent_containers/cup/bottle/multiver{ - pixel_x = -5; - pixel_y = 9 - }, -/obj/item/reagent_containers/cup/bottle/epinephrine{ - pixel_x = 8; - pixel_y = 9 - }, -/obj/item/reagent_containers/syringe{ - pixel_y = -3 - }, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/iron/white, -/area/station/security/medical) "jMe" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt, @@ -27206,13 +27679,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/medical) -"jNb" = ( -/obj/structure/table, -/obj/effect/turf_decal/stripes/line, -/obj/item/stack/sheet/mineral/plasma, -/obj/machinery/reagentgrinder, -/turf/open/floor/iron/white/textured_large, -/area/station/science/xenobiology) "jNg" = ( /obj/structure/table/reinforced, /obj/item/stack/cable_coil, @@ -27272,22 +27738,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/command/gateway) -"jOu" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Cargo Boutique" - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/door/poddoor/shutters{ - id = "boutique"; - name = "Countertheft Shutters" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood/parquet, -/area/station/cargo/boutique) "jOz" = ( /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, @@ -27306,46 +27756,6 @@ /obj/item/poster/random_contraband, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"jOF" = ( -/obj/structure/table, -/obj/machinery/button/flasher{ - id = "pbrig"; - pixel_y = 26 - }, -/obj/item/clothing/shoes/sneakers/orange{ - pixel_x = -6; - pixel_y = -8 - }, -/obj/item/clothing/shoes/sneakers/orange{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/clothing/shoes/sneakers/orange{ - pixel_x = -6; - pixel_y = -2 - }, -/obj/item/clothing/shoes/sneakers/orange{ - pixel_x = -6; - pixel_y = 10 - }, -/obj/item/clothing/under/rank/prisoner{ - pixel_x = 8; - pixel_y = 5 - }, -/obj/item/clothing/under/rank/prisoner{ - pixel_x = 8; - pixel_y = 5 - }, -/obj/item/clothing/under/rank/prisoner{ - pixel_x = 8; - pixel_y = 5 - }, -/obj/item/clothing/under/rank/prisoner{ - pixel_x = 8; - pixel_y = 5 - }, -/turf/open/floor/iron/dark/textured, -/area/station/security/execution/transfer) "jOH" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/blue/filled/line, @@ -27402,6 +27812,21 @@ /obj/machinery/light/small/dim/directional/south, /turf/open/misc/asteroid, /area/station/maintenance/port/greater) +"jPs" = ( +/obj/structure/table, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/item/reagent_containers/cup/beaker/large{ + pixel_x = -5 + }, +/obj/item/storage/box/beakers{ + pixel_x = 7; + pixel_y = 3 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "jPL" = ( /obj/structure/lattice, /obj/machinery/camera/autoname/directional/east, @@ -27412,6 +27837,15 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"jPR" = ( +/obj/structure/transport/linear/public{ + base_icon_state = "catwalk"; + icon = 'icons/obj/smooth_structures/catwalk.dmi'; + icon_state = "catwalk-255" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plating/elevatorshaft, +/area/station/cargo/storage) "jPY" = ( /mob/living/basic/living_floor, /turf/open/floor/plating, @@ -27754,16 +28188,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/openspace, /area/station/security/prison/shower) -"jWA" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/structure/chair{ - dir = 8; - name = "Judge" - }, -/turf/open/floor/wood/tile, -/area/station/security/courtroom) "jWE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/watertank, @@ -27777,14 +28201,6 @@ /obj/structure/disposalpipe/trunk, /turf/open/floor/iron/white/smooth_large, /area/station/science/research) -"jWH" = ( -/obj/structure/transport/linear/public{ - base_icon_state = "catwalk"; - icon = 'icons/obj/smooth_structures/catwalk.dmi'; - icon_state = "catwalk-14" - }, -/turf/open/openspace, -/area/station/ai_monitored/turret_protected/aisat_interior) "jWI" = ( /obj/machinery/atmospherics/components/binary/pump/on{ name = "Gas to Cooling Loop" @@ -27849,15 +28265,6 @@ /obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/glass/reinforced, /area/station/security/prison) -"jYk" = ( -/obj/structure/transport/linear/public{ - base_icon_state = "catwalk"; - icon = 'icons/obj/smooth_structures/catwalk.dmi'; - icon_state = "catwalk-255" - }, -/obj/effect/turf_decal/caution/stand_clear, -/turf/open/floor/plating/elevatorshaft, -/area/station/cargo/storage) "jYm" = ( /obj/structure/broken_flooring/corner/directional/east, /obj/effect/mapping_helpers/broken_floor, @@ -28212,6 +28619,24 @@ "kdp" = ( /turf/open/floor/glass/reinforced, /area/station/engineering/lobby) +"kdu" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/effect/landmark/start/hangover, +/obj/effect/spawner/random/trash/graffiti{ + pixel_y = -32; + spawn_loot_chance = 50 + }, +/obj/machinery/light/small/dim/directional/east, +/obj/machinery/button/door/directional/west{ + id = "u3"; + name = "privacy bolt control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet/restrooms) "kdw" = ( /obj/effect/turf_decal/siding/purple{ dir = 6 @@ -28322,22 +28747,6 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) -"kfC" = ( -/obj/structure/table/reinforced, -/obj/item/stack/sheet/plasteel{ - amount = 15 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = 5; - pixel_y = 7 - }, -/obj/structure/fireaxecabinet/mechremoval/directional/east, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/sheet/iron/fifty, -/turf/open/floor/iron/dark/textured, -/area/station/science/robotics/lab) "kfZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, /obj/machinery/meter, @@ -28380,6 +28789,14 @@ }, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) +"kgL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "kgT" = ( /obj/effect/turf_decal/tile/red/fourcorners, /obj/machinery/door/firedoor, @@ -28447,18 +28864,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"kih" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/service/hydroponics) "kik" = ( /obj/effect/turf_decal/siding/white, /obj/structure/chair/sofa/bench/right{ @@ -28472,6 +28877,19 @@ /obj/structure/cable, /turf/open/floor/iron/textured, /area/station/hallway/primary/starboard) +"kiB" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/structure/table, +/obj/item/hand_tele, +/obj/effect/spawner/random/engineering/tracking_beacon, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/item/radio{ + broadcasting = 1; + pixel_x = -8 + }, +/turf/open/floor/iron/dark, +/area/station/command/teleporter) "kiK" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/spawner/random/maintenance/two, @@ -28959,6 +29377,19 @@ }, /turf/open/floor/iron, /area/station/security) +"kpD" = ( +/obj/structure/table/wood/fancy/red, +/obj/effect/spawner/random/aimodule/harmful, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/door/window/brigdoor/left/directional/east{ + name = "High-Risk Modules"; + req_access = list("captain") + }, +/obj/item/ai_module/reset/purge{ + pixel_y = 11 + }, +/turf/open/floor/circuit/red, +/area/station/ai_monitored/turret_protected/ai_upload) "kpG" = ( /obj/effect/turf_decal/stripes/red/corner, /obj/effect/turf_decal/stripes/red/corner{ @@ -28968,6 +29399,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/medical/morgue) +"kpP" = ( +/obj/machinery/door/airlock/command{ + id_tag = "cmoshower"; + name = "Shower" + }, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/cmo) "kpT" = ( /obj/effect/spawner/random/decoration/paint, /obj/structure/closet/crate/engineering, @@ -29033,6 +29471,22 @@ }, /turf/open/floor/engine, /area/station/command/corporate_dock) +"kqV" = ( +/obj/structure/rack, +/obj/item/storage/box/teargas{ + pixel_x = 1; + pixel_y = -2 + }, +/obj/effect/spawner/random/armory/barrier_grenades{ + pixel_y = 3 + }, +/obj/machinery/button/door/directional/west{ + id = "armory"; + name = "Armory Shutters" + }, +/obj/effect/turf_decal/tile/red/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/security/armory) "kqW" = ( /turf/open/floor/wood, /area/station/service/library) @@ -29207,19 +29661,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/maintenance/radshelter/civil) -"ktx" = ( -/obj/effect/turf_decal/tile/dark_red/opposingcorners, -/obj/structure/table, -/obj/item/reagent_containers/cup/glass/shaker{ - pixel_x = -6 - }, -/obj/item/storage/box/drinkingglasses{ - pixel_x = 6; - pixel_y = 3 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/service/bar) "ktD" = ( /obj/item/shard, /obj/effect/decal/cleanable/glass, @@ -29558,6 +29999,28 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"kzI" = ( +/obj/machinery/door/airlock/virology/glass{ + id_tag = "virology_airlock_interior"; + name = "Virology Lab" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/access/all/medical/virology, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/green/fourcorners, +/obj/machinery/door_buttons/access_button{ + idDoor = "virology_airlock_interior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + pixel_x = -24; + pixel_y = 8; + req_access = list("virology") + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/virology) "kzK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -29809,17 +30272,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"kDP" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/left/directional/south{ - name = "Reception Desk"; - req_access = list("medical") - }, -/obj/machinery/door/firedoor, -/obj/effect/spawner/random/bureaucracy/folder, -/obj/effect/spawner/random/bureaucracy/pen, -/turf/open/floor/iron/white, -/area/station/medical/exam_room) "kEg" = ( /obj/machinery/suit_storage_unit/standard_unit, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -29827,29 +30279,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) -"kEl" = ( -/obj/structure/rack, -/obj/structure/window/spawner/directional/north, -/obj/machinery/door/window/left/directional/west{ - name = "Magboot Storage"; - req_access = list("eva") - }, -/obj/machinery/door/window/right/directional/east{ - name = "Magboot Storage"; - req_access = list("eva") - }, -/obj/item/clothing/shoes/magboots{ - pixel_x = -4; - pixel_y = 3 - }, -/obj/item/clothing/shoes/magboots, -/obj/item/clothing/shoes/magboots{ - pixel_x = 4; - pixel_y = -3 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/storage/eva) "kEn" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -29872,6 +30301,24 @@ "kEu" = ( /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) +"kEJ" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/obj/effect/spawner/random/trash/graffiti{ + pixel_x = -32; + spawn_loot_chance = 50 + }, +/obj/machinery/light/small/dim/directional/south, +/obj/machinery/button/door/directional/north{ + id = "u1"; + name = "privacy bolt control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet/restrooms) "kFi" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -30011,18 +30458,6 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/virology) -"kHz" = ( -/obj/structure/chair/sofa/corp/right{ - desc = "Looks like someone threw it out. Covered in donut crumbs."; - dir = 1; - name = "couch" - }, -/obj/structure/sign/poster/contraband/blood_geometer/directional/east, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/obj/effect/turf_decal/tile/red/anticorner/contrasted, -/turf/open/floor/iron/half, -/area/station/security/breakroom) "kHG" = ( /obj/effect/spawner/random/trash/moisture_trap, /obj/effect/turf_decal/sand/plating, @@ -30264,14 +30699,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/research) -"kMF" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - dir = 8; - id = "atmoshfr" - }, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) "kMS" = ( /obj/machinery/camera/autoname/directional/west, /turf/open/floor/catwalk_floor/iron_dark, @@ -30345,13 +30772,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron, /area/station/ai_monitored/command/storage/eva) -"kOj" = ( -/obj/machinery/door/airlock/command{ - id_tag = "cmoshower"; - name = "Shower" - }, -/turf/open/floor/iron/freezer, -/area/station/command/heads_quarters/cmo) "kOl" = ( /obj/structure/railing, /obj/structure/cable, @@ -30498,14 +30918,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/medical/exam_room) -"kRm" = ( -/obj/machinery/door/poddoor/shutters/window{ - id = "incstorage"; - name = "Incinerator Storage Shutters" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "kRq" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 8 @@ -30650,6 +31062,17 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/wood/parquet, /area/station/medical/psychology) +"kSW" = ( +/obj/structure/chair/office{ + dir = 8; + name = "grimy chair" + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) "kTb" = ( /obj/structure/cable, /obj/machinery/camera/directional/east{ @@ -30768,19 +31191,6 @@ }, /turf/open/floor/iron/textured, /area/station/security/warden) -"kUH" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - dir = 8; - id = "xbprotect1"; - name = "Security Shutters" - }, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/machinery/firealarm/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "kUJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt/dust, @@ -30947,16 +31357,6 @@ }, /turf/open/floor/iron/herringbone, /area/station/hallway/primary/central) -"kYD" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle{ - dir = 4 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 4; - id = "chemsat" - }, -/turf/open/floor/plating, -/area/station/medical/chemistry/minisat) "kYT" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/medical) @@ -31043,6 +31443,15 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"kZS" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/right/directional/north{ + req_access = list("hydroponics"); + name = "Hydroponics Desk" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron, +/area/station/service/hydroponics) "kZW" = ( /obj/machinery/door/airlock/research{ glass = 1; @@ -31109,16 +31518,6 @@ /obj/structure/rack, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"laX" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/right/directional/north, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/brigdoor/left/directional/south{ - name = "Warden Requisition Desk"; - req_access = list("armory") - }, -/turf/open/floor/iron/dark, -/area/station/security/warden) "lbl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -31231,18 +31630,6 @@ /obj/machinery/portable_atmospherics/pump, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"lef" = ( -/obj/machinery/door/poddoor/shutters{ - id = "secwarehouse"; - name = "Secure Warehouse Shutters" - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/blood/tracks, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/cargo/warehouse/upper) "les" = ( /obj/machinery/door/firedoor/border_only{ dir = 1 @@ -31260,20 +31647,6 @@ }, /turf/open/floor/wood/tile, /area/station/service/bar) -"leJ" = ( -/obj/structure/railing, -/obj/structure/table, -/obj/item/plate, -/obj/item/food/spaghetti/mac_n_cheese{ - pixel_y = 3 - }, -/obj/item/flashlight/flare/candle{ - icon_state = "candle1_lit"; - pixel_x = 12; - start_on = 1 - }, -/turf/open/floor/plating, -/area/station/engineering/main) "leT" = ( /obj/machinery/mecha_part_fabricator/maint{ name = "forgotten exosuit fabricator" @@ -31545,16 +31918,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"ljm" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/structure/sign/warning/no_smoking/directional/north, -/turf/open/floor/iron, -/area/station/service/hydroponics) "ljp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -31593,6 +31956,21 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/maintenance/port/greater) +"ljU" = ( +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/structure/table, +/obj/item/book/manual/wiki/barman_recipes{ + pixel_x = -4; + pixel_y = 7 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/holosign_creator/robot_seat/bar{ + pixel_y = 4; + pixel_x = 6 + }, +/obj/item/clothing/head/hats/tophat, +/turf/open/floor/iron/dark, +/area/station/service/bar) "ljZ" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -31902,19 +32280,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"lrp" = ( -/obj/structure/table/wood/fancy/red, -/obj/effect/spawner/random/aimodule/harmful, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/machinery/door/window/brigdoor/left/directional/east{ - name = "High-Risk Modules"; - req_access = list("captain") - }, -/obj/item/ai_module/reset/purge{ - pixel_y = 11 - }, -/turf/open/floor/circuit/red, -/area/station/ai_monitored/turret_protected/ai_upload) "lrr" = ( /obj/machinery/door/firedoor/border_only{ dir = 8 @@ -32250,25 +32615,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/textured, /area/station/construction/mining/aux_base) -"lyl" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/structure/sign/directions/security/directional/north{ - pixel_y = 40 - }, -/obj/structure/sign/directions/medical/directional/north{ - dir = 2 - }, -/obj/structure/sign/directions/evac/directional/north{ - dir = 2; - pixel_y = 24 - }, -/turf/open/floor/wood, -/area/station/service/cafeteria) "lyr" = ( /obj/structure/table/reinforced/rglass, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -32304,14 +32650,6 @@ dir = 4 }, /area/station/medical/exam_room) -"lyG" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "r1p" - }, -/turf/open/floor/plating, -/area/station/medical/patients_rooms/room_a) "lyJ" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -32470,6 +32808,18 @@ dir = 4 }, /area/station/command/meeting_room) +"lBu" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/conveyor_switch/oneway{ + id = "sorter"; + pixel_x = 20; + pixel_y = 16 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "lBB" = ( /obj/machinery/suit_storage_unit/radsuit, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -32893,34 +33243,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"lIC" = ( -/obj/structure/table, -/obj/item/grenade/chem_grenade/smart_metal_foam{ - pixel_x = -4; - pixel_y = 6 - }, -/obj/item/grenade/chem_grenade/smart_metal_foam{ - pixel_x = 4; - pixel_y = 2 - }, -/obj/item/grenade/chem_grenade/smart_metal_foam{ - pixel_x = 8 - }, -/obj/item/grenade/chem_grenade/smart_metal_foam{ - pixel_y = 4 - }, -/obj/machinery/status_display/evac/directional/west, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/radio/off{ - pixel_x = -5; - pixel_y = -9 - }, -/obj/item/multitool{ - pixel_x = 5; - pixel_y = -12 - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/storage/eva) "lIW" = ( /obj/item/stack/cable_coil{ amount = 1 @@ -32932,23 +33254,6 @@ /obj/machinery/vending/boozeomat, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"lJn" = ( -/obj/machinery/door/airlock/security/glass{ - id_tag = "secentrylock2"; - name = "Security Entry" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "brig-entrance" - }, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/security/entrance, -/obj/structure/disposalpipe/segment, -/obj/machinery/scanner_gate/preset_guns, -/turf/open/floor/iron, -/area/station/security/brig/entrance) "lJo" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -33317,6 +33622,15 @@ /obj/machinery/door/firedoor, /turf/open/floor/plating, /area/station/hallway/secondary/command) +"lQo" = ( +/obj/machinery/duct, +/obj/structure/cable, +/obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airalarm/tlv_kitchen, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "lQD" = ( /obj/effect/turf_decal/tile/dark_blue/half/contrasted, /obj/machinery/airalarm/directional/south, @@ -33530,6 +33844,15 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/department/bridge) +"lUF" = ( +/obj/structure/transport/linear/public, +/obj/machinery/elevator_control_panel{ + linked_elevator_id = "aisat"; + pixel_x = 32; + preset_destination_names = list(2 = "Telecomms", 3 = "AI Core") + }, +/turf/open/openspace, +/area/station/ai_monitored/turret_protected/aisat_interior) "lUM" = ( /obj/structure/toilet/greyscale{ dir = 4 @@ -33794,6 +34117,17 @@ }, /turf/open/floor/iron/textured, /area/station/medical/pharmacy) +"lZc" = ( +/obj/machinery/button/door/directional/east{ + id = "soup"; + name = "Radiation Shutters Control" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "lZn" = ( /obj/effect/turf_decal/siding/purple/corner{ dir = 1 @@ -33802,20 +34136,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white/herringbone, /area/station/science/breakroom) -"lZq" = ( -/obj/structure/table, -/obj/machinery/light/directional/east, -/obj/item/reagent_containers/cup/glass/mug/tea{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/item/food/butterbiscuit{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/secondary/exit/departure_lounge) "lZu" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -33887,6 +34207,26 @@ /obj/effect/spawner/random/clothing/costume, /turf/open/floor/wood/large, /area/station/cargo/boutique) +"mbA" = ( +/obj/structure/cable, +/obj/machinery/button/ignition{ + id = "xenobio"; + pixel_y = -26 + }, +/obj/machinery/button/door/directional/north{ + id = "xenobio5"; + name = "pen 5 blast doors control"; + pixel_x = -6 + }, +/obj/machinery/button/door/directional/north{ + id = "xenobio6"; + name = "pen 6 blast doors control"; + pixel_x = 6 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/science/xenobiology) "mbL" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/ai_upload_foyer) @@ -33913,6 +34253,13 @@ /obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/iron/white, /area/station/medical/storage) +"mcv" = ( +/obj/machinery/button/door/directional/south{ + id = "sealobs"; + name = "Observatory Lock" + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/ordnance/testlab) "mcw" = ( /obj/item/radio/intercom/directional/west, /obj/effect/turf_decal/tile/neutral, @@ -34017,10 +34364,6 @@ /obj/machinery/digital_clock/directional/south, /turf/open/floor/iron, /area/station/cargo/storage) -"meZ" = ( -/obj/structure/girder/displaced, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "mff" = ( /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron, @@ -34063,21 +34406,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) -"mgk" = ( -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/button/door/directional/east{ - id = "cap_ext"; - name = "bolt control"; - normaldoorcontrol = 1; - pixel_y = 24; - specialfunctions = 4 - }, -/turf/open/floor/engine, -/area/station/command/heads_quarters/captain/private) "mgn" = ( /obj/docking_port/stationary{ dir = 8; @@ -34151,6 +34479,11 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/glass/reinforced, /area/station/engineering/atmos/upper) +"mhD" = ( +/obj/structure/rack, +/obj/effect/spawner/random/contraband/narcotics, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "mhF" = ( /obj/effect/spawner/random/decoration/material, /obj/effect/spawner/random/decoration/material, @@ -34200,6 +34533,10 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/white, /area/station/science/research) +"mio" = ( +/obj/machinery/computer/station_alert/station_only, +/turf/open/floor/iron, +/area/station/engineering/atmos/upper) "mit" = ( /obj/structure/weightmachine/weightlifter, /obj/machinery/newscaster/directional/east, @@ -34248,19 +34585,22 @@ }, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) -"miP" = ( -/obj/machinery/door/poddoor/shutters/window{ - dir = 1; - id = "ordauxgarage" +"miU" = ( +/obj/structure/table/reinforced, +/obj/item/stack/sheet/plasteel{ + amount = 15 }, -/obj/effect/turf_decal/caution/stand_clear, -/obj/effect/turf_decal/sand/plating, -/obj/effect/turf_decal/stripes/asteroid/line, -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 1 +/obj/item/assembly/prox_sensor{ + pixel_x = 5; + pixel_y = 7 }, -/turf/open/floor/plating, -/area/station/science/ordnance) +/obj/structure/fireaxecabinet/mechremoval/directional/east, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/turf/open/floor/iron/dark/textured, +/area/station/science/robotics/lab) "miV" = ( /obj/effect/spawner/random/trash/mess, /turf/open/floor/plating, @@ -34405,6 +34745,16 @@ /obj/structure/disposalpipe/trunk, /turf/open/floor/iron/dark, /area/station/command/corporate_showroom) +"mla" = ( +/obj/machinery/door/poddoor/shutters/window{ + dir = 8; + id = "gateshutter"; + name = "Gateway Access Shutter" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/command/gateway) "mld" = ( /obj/effect/turf_decal/tile/red/opposingcorners, /obj/effect/landmark/event_spawn, @@ -34551,14 +34901,6 @@ dir = 1 }, /area/station/medical/pharmacy) -"mnq" = ( -/obj/structure/closet/crate/science{ - icon_state = "scicrateopen"; - opened = 1 - }, -/obj/effect/decal/cleanable/greenglow/radioactive, -/turf/open/misc/asteroid, -/area/station/asteroid) "mnt" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -34669,32 +35011,6 @@ "mpc" = ( /turf/closed/wall/rock/porous, /area/station/hallway/primary/starboard) -"mpg" = ( -/obj/machinery/power/solar_control{ - dir = 4; - id = "foreport"; - name = "Port Bow Solar Control" - }, -/obj/structure/cable, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/solars/port/fore) -"mpm" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/directions/security/directional/south{ - dir = 8; - pixel_y = -24 - }, -/obj/structure/sign/directions/supply/directional/south{ - dir = 8 - }, -/obj/structure/sign/directions/engineering/directional/south{ - pixel_y = -40 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "mpp" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -35032,18 +35348,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/cargo/warehouse) -"mvC" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/conveyor_switch/oneway{ - id = "sorter"; - pixel_x = 20; - pixel_y = 16 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "mvG" = ( /obj/structure/flora/rock/pile/style_random, /turf/open/misc/asteroid/airless, @@ -35310,23 +35614,6 @@ dir = 8 }, /area/station/medical/storage) -"mAr" = ( -/obj/machinery/iv_drip, -/obj/machinery/button/door/directional/west{ - id = "r1p"; - name = "Privacy Control"; - pixel_y = -6 - }, -/obj/machinery/button/door/directional/west{ - id = "r1"; - name = "Bolt Control"; - normaldoorcontrol = 1; - pixel_y = 6; - specialfunctions = 4 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/white, -/area/station/medical/patients_rooms/room_a) "mAA" = ( /obj/structure/bed/medical/emergency{ dir = 4 @@ -35352,18 +35639,6 @@ }, /turf/open/floor/plating, /area/station/engineering/supermatter/room) -"mAR" = ( -/obj/structure/table/wood/fancy/orange, -/obj/effect/spawner/random/contraband/qm_rocket{ - pixel_x = -7 - }, -/obj/item/storage/fancy/cigarettes/cigars/cohiba{ - pixel_x = 12; - pixel_y = 7 - }, -/obj/item/lighter, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) "mAX" = ( /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ dir = 1 @@ -35602,14 +35877,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security) -"mEK" = ( -/obj/machinery/door/poddoor/shutters/window{ - dir = 8; - id = "gateshutter"; - name = "Gateway Access Shutter" - }, -/turf/open/floor/iron, -/area/station/command/gateway) "mEN" = ( /obj/item/computer_disk/maintenance/spectre_meter, /turf/open/misc/asteroid/airless, @@ -35646,13 +35913,6 @@ /obj/item/clothing/gloves/color/yellow, /turf/open/floor/iron/dark, /area/station/security/execution/education) -"mFL" = ( -/obj/machinery/status_display/ai/directional/north, -/turf/open/floor/iron/stairs/left{ - color = "#795C32"; - dir = 8 - }, -/area/station/security/courtroom) "mFR" = ( /obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ dir = 4 @@ -35668,19 +35928,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/freezer, /area/station/security/prison/shower) -"mFY" = ( -/obj/effect/turf_decal/siding/purple{ - dir = 1 - }, -/obj/machinery/door/window/left/directional/north{ - name = "Waiting Room Desk"; - req_access = list("medical") - }, -/obj/machinery/camera/autoname/directional/west{ - network = list("ss13","rd") - }, -/turf/open/floor/engine, -/area/station/science/auxlab/firing_range) "mGk" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 9 @@ -36109,6 +36356,22 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/commons/locker) +"mNo" = ( +/obj/structure/table/reinforced/rglass, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/item/storage/box/gloves{ + pixel_y = 10 + }, +/obj/item/storage/box/masks{ + pixel_x = -6; + pixel_y = 2 + }, +/obj/item/storage/box/bodybags{ + pixel_x = 6; + pixel_y = 2 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) "mNF" = ( /obj/machinery/light/directional/west, /turf/open/floor/catwalk_floor/iron_dark, @@ -36209,6 +36472,13 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/brig/entrance) +"mPW" = ( +/obj/machinery/door/poddoor/shutters/window{ + id = "incstorage"; + name = "Incinerator Storage Shutters" + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "mPX" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/spawner/random/trash/garbage, @@ -36260,6 +36530,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/textured, /area/station/hallway/primary/central) +"mRu" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + dir = 8; + id = "atmoshfr" + }, +/turf/open/floor/plating, +/area/station/engineering/atmospherics_engine) "mRA" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/wood, @@ -36282,28 +36560,21 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"mSf" = ( +/obj/machinery/mass_driver{ + dir = 1; + id = "captaindriver"; + power = 12 + }, +/obj/effect/turf_decal/stripes/end, +/obj/machinery/light/small/directional/south, +/turf/open/floor/engine, +/area/station/command/heads_quarters/captain/private) "mSm" = ( /obj/structure/table/wood, /obj/item/clothing/head/fedora, /turf/open/floor/wood, /area/station/commons/lounge) -"mSv" = ( -/obj/structure/transport/linear/public{ - base_icon_state = "catwalk"; - icon = 'icons/obj/smooth_structures/catwalk.dmi'; - icon_state = "catwalk-78" - }, -/obj/effect/spawner/random/structure/closet_empty/crate, -/turf/open/floor/plating/elevatorshaft, -/area/station/cargo/storage) -"mSF" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters{ - id = "boutique"; - name = "Countertheft Shutters" - }, -/turf/open/floor/plating, -/area/station/cargo/boutique) "mSK" = ( /turf/open/floor/iron/white, /area/station/commons/fitness/recreation) @@ -36527,6 +36798,17 @@ /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron, /area/station/service/bar) +"mXj" = ( +/obj/machinery/door/poddoor/shutters{ + id = "warehouse"; + name = "Warehouse Shutters" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "mXp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -36701,13 +36983,6 @@ /obj/effect/spawner/random/structure/chair_flipped, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"mZT" = ( -/obj/machinery/door/airlock{ - id_tag = "u5"; - name = "Unit 5" - }, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet/restrooms) "mZY" = ( /obj/machinery/piratepad/civilian, /obj/effect/turf_decal/bot_white, @@ -36838,21 +37113,22 @@ /mob/living/basic/butterfly, /turf/open/misc/grass, /area/station/ai_monitored/turret_protected/aisat/foyer) +"nck" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/middle{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 4; + id = "chemsat" + }, +/turf/open/floor/plating, +/area/station/medical/chemistry/minisat) "ncm" = ( /obj/machinery/camera/autoname/directional/south{ network = list("ss13","engine") }, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"ncs" = ( -/obj/structure/lattice/catwalk, -/obj/structure/bed/pod, -/obj/item/clothing/glasses/sunglasses{ - desc = "A pair of sunglasses to provide eye protection against solar rays. Does not block flashes."; - flash_protect = 0 - }, -/turf/open/space/basic, -/area/space/nearstation) "ncv" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -36953,22 +37229,27 @@ /obj/structure/sign/poster/contraband/clown/directional/south, /turf/open/floor/iron/textured, /area/station/commons/storage/art) -"ndL" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/engineering_guide{ - pixel_x = -6; - pixel_y = 7 +"ndR" = ( +/obj/machinery/disposal/bin, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/button/door/directional/west{ + id = "pharmacy_shutters"; + name = "Privacy Control"; + pixel_y = -6 }, -/obj/item/pen{ - pixel_x = 7; - pixel_y = 6 +/obj/structure/cable, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 9 }, -/obj/item/clothing/head/utility/welding{ - pixel_y = 1 +/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/department/science) +/obj/structure/disposalpipe/trunk, +/obj/machinery/light_switch/directional/west{ + pixel_y = 6 + }, +/turf/open/floor/iron/white/smooth_corner, +/area/station/medical/pharmacy) "ndS" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/spawner/random/maintenance, @@ -37132,16 +37413,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"nfk" = ( -/obj/machinery/conveyor/auto{ - dir = 8; - id = "bridgedeliver" - }, -/obj/structure/transit_tube/crossing, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating/airless, -/area/station/maintenance/department/science) "nfn" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -37454,13 +37725,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"nlz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/west, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "nlI" = ( /obj/effect/landmark/start/depsec/engineering, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -37476,6 +37740,11 @@ /obj/effect/turf_decal/tile/dark_blue/opposingcorners, /turf/open/floor/iron, /area/station/command/bridge) +"nlZ" = ( +/obj/machinery/light/small/directional/north, +/obj/effect/spawner/random/trash/mopbucket, +/turf/open/misc/asteroid, +/area/station/maintenance/central/greater) "nmc" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/purple, @@ -37530,18 +37799,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"nns" = ( -/obj/structure/table/wood, -/obj/item/flashlight/flare/candle{ - icon_state = "candle1_lit"; - start_on = 1 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/camera/autoname/directional/north, -/turf/open/floor/carpet, -/area/station/service/chapel) "nnt" = ( /obj/machinery/computer/security/qm, /obj/effect/turf_decal/siding/wood{ @@ -37654,22 +37911,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/gateway) -"noI" = ( -/obj/structure/rack, -/obj/item/storage/box/teargas{ - pixel_x = 1; - pixel_y = -2 - }, -/obj/effect/spawner/random/armory/barrier_grenades{ - pixel_y = 3 - }, -/obj/machinery/button/door/directional/west{ - id = "armory"; - name = "Armory Shutters" - }, -/obj/effect/turf_decal/tile/red/half/contrasted, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/security/armory) "noO" = ( /obj/item/target, /obj/item/target, @@ -37935,6 +38176,17 @@ }, /turf/open/floor/iron/textured, /area/station/hallway/primary/central) +"nva" = ( +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/obj/machinery/button/door/directional/south{ + id = "Secure Storage"; + name = "Secure Storage Control" + }, +/obj/machinery/light/directional/west, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "nvg" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, @@ -38142,6 +38394,35 @@ }, /turf/open/floor/iron, /area/station/engineering/main) +"nzT" = ( +/obj/effect/landmark/start/ai, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/item/radio/intercom/directional/west{ + freerange = 1; + listening = 0; + name = "Common Channel"; + pixel_y = -8 + }, +/obj/item/radio/intercom/directional/west{ + freerange = 1; + frequency = 1447; + listening = 0; + pixel_y = 6 + }, +/obj/machinery/button/door/directional/south{ + id = "AI Core shutters"; + name = "AI Core Shutters Control"; + pixel_x = -24; + req_access = list("ai_upload") + }, +/obj/machinery/camera/directional/north{ + c_tag = "AI Chamber - Core"; + network = list("aicore") + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/apc/cell_5k, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/station/ai_monitored/turret_protected/ai) "nAa" = ( /obj/machinery/door/firedoor/border_only{ dir = 8 @@ -38217,6 +38498,25 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/textured, /area/station/security/processing) +"nBA" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/directions/evac/directional/south, +/obj/structure/sign/directions/medical/directional/south{ + dir = 8; + pixel_y = -24 + }, +/obj/structure/sign/directions/science/directional/south{ + dir = 4; + pixel_y = -40 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "nBV" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 @@ -38250,21 +38550,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/foyer) -"nCi" = ( -/obj/machinery/modular_computer/preset/id{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ - dir = 6 - }, -/obj/machinery/keycard_auth/wall_mounted/directional/east, -/obj/machinery/button/door/directional/east{ - id = "cmoprivacy"; - name = "privacy shutter control"; - pixel_y = 12 - }, -/turf/open/floor/holofloor/dark, -/area/station/command/heads_quarters/cmo) "nCm" = ( /turf/open/openspace/xenobio, /area/station/science/xenobiology) @@ -38314,16 +38599,6 @@ /obj/structure/window/reinforced/spawner/directional/north, /turf/open/space/openspace, /area/space/nearstation) -"nCV" = ( -/obj/item/radio/intercom/directional/north, -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron, -/area/station/service/hydroponics) "nDg" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -38399,6 +38674,13 @@ "nEk" = ( /turf/open/floor/iron/large, /area/station/service/hydroponics/garden) +"nEw" = ( +/obj/structure/chair{ + dir = 8; + name = "Judge" + }, +/turf/open/floor/wood/tile, +/area/station/security/courtroom) "nEx" = ( /obj/machinery/hydroponics/soil, /obj/effect/decal/cleanable/dirt, @@ -38410,19 +38692,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/command) -"nEX" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/machinery/light/directional/north, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/service/hydroponics) "nEY" = ( /obj/effect/turf_decal/stripes/corner{ dir = 8 @@ -38790,16 +39059,6 @@ /obj/structure/flora/rock/pile/style_random, /turf/open/misc/asteroid, /area/station/maintenance/department/science) -"nLU" = ( -/obj/structure/table/wood, -/obj/item/flashlight/flare/candle{ - pixel_x = 1; - pixel_y = 10 - }, -/turf/open/floor/iron/chapel{ - dir = 4 - }, -/area/station/service/chapel) "nLW" = ( /obj/structure/chair/office{ name = "grimy chair" @@ -38807,15 +39066,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/carpet/purple, /area/station/service/library) -"nMb" = ( -/obj/structure/transport/linear/public, -/obj/machinery/elevator_control_panel{ - linked_elevator_id = "aisat"; - pixel_x = 32; - preset_destination_names = list(2 = "Telecomms", 3 = "AI Core") - }, -/turf/open/openspace, -/area/station/ai_monitored/turret_protected/aisat_interior) "nMf" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -38824,6 +39074,12 @@ /obj/machinery/light/directional/south, /turf/open/openspace, /area/station/science/xenobiology) +"nMj" = ( +/obj/effect/turf_decal/sand/plating, +/obj/effect/mapping_helpers/broken_floor, +/mob/living/basic/goose/vomit, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "nMk" = ( /obj/structure/cable, /turf/open/floor/plating/airless, @@ -38913,26 +39169,6 @@ /obj/machinery/power/port_gen/pacman/pre_loaded, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"nOd" = ( -/obj/structure/cable, -/obj/machinery/button/ignition{ - id = "xenobio"; - pixel_y = -26 - }, -/obj/machinery/button/door/directional/north{ - id = "xenobio5"; - name = "pen 5 blast doors control"; - pixel_x = -6 - }, -/obj/machinery/button/door/directional/north{ - id = "xenobio6"; - name = "pen 6 blast doors control"; - pixel_x = 6 - }, -/turf/open/floor/iron/dark/textured_edge{ - dir = 8 - }, -/area/station/science/xenobiology) "nOx" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -38997,6 +39233,13 @@ "nPW" = ( /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"nQm" = ( +/obj/machinery/camera/motion/directional/west{ + c_tag = "Secure - AI Upper External East"; + network = list("aicore") + }, +/turf/open/space/openspace, +/area/space/nearstation) "nQs" = ( /obj/machinery/light/small/directional/north, /turf/open/misc/asteroid, @@ -39063,22 +39306,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood/tile, /area/station/service/bar) -"nSo" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/structure/sign/directions/engineering/directional/east{ - pixel_y = -8 - }, -/obj/structure/sign/directions/security/directional/east{ - dir = 1; - pixel_y = 8 - }, -/obj/structure/sign/directions/supply/directional/east{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "nSC" = ( /turf/closed/wall, /area/station/security/prison/shower) @@ -39156,20 +39383,6 @@ /obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"nUM" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/dresser, -/obj/item/toy/figure/dsquad{ - pixel_x = 6; - pixel_y = 12 - }, -/obj/item/toy/figure/secofficer{ - pixel_x = -6; - pixel_y = 12 - }, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/carpet/red, -/area/station/security/warden) "nUS" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -39218,32 +39431,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/engineering/gravity_generator) -"nVA" = ( -/obj/effect/landmark/start/ai/secondary, -/obj/machinery/door/window/brigdoor/right/directional/south{ - name = "Secondary AI Core Access"; - pixel_y = -4; - req_access = list("ai_upload") - }, -/obj/machinery/flasher/directional/west{ - id = "AI"; - pixel_y = -8 - }, -/obj/item/radio/intercom/directional/north{ - freerange = 1; - frequency = 1447; - name = "Private Channel"; - on = 0; - pixel_x = -27 - }, -/obj/item/radio/intercom/directional/north{ - freerange = 1; - listening = 0; - name = "Common Channel"; - pixel_x = 27 - }, -/turf/open/floor/circuit/green, -/area/station/ai_monitored/turret_protected/ai) "nVT" = ( /turf/closed/wall, /area/station/service/cafeteria) @@ -39300,6 +39487,17 @@ /obj/effect/turf_decal/tile/green/fourcorners, /turf/open/floor/iron/white, /area/station/medical/virology) +"nXF" = ( +/obj/item/flashlight/flare/candle{ + icon_state = "candle1_lit"; + pixel_y = 12; + start_on = 1 + }, +/obj/structure/broken_flooring/side/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "nXL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -39365,16 +39563,6 @@ /obj/effect/mapping_helpers/requests_console/supplies, /turf/open/floor/iron/white, /area/station/medical/virology) -"nZg" = ( -/obj/machinery/newscaster/directional/north, -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron, -/area/station/service/hydroponics) "nZo" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -39502,6 +39690,22 @@ /obj/machinery/duct, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"obc" = ( +/obj/machinery/door/airlock/security/glass{ + id_tag = "secentrylock"; + name = "Security Entry" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "brig-entrance" + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "obx" = ( /obj/structure/railing, /obj/effect/decal/cleanable/dirt/dust, @@ -39612,6 +39816,23 @@ /obj/item/paper_bin, /turf/open/floor/iron, /area/station/cargo/storage) +"odp" = ( +/obj/machinery/door/airlock/security/glass{ + id_tag = "secentrylock2"; + name = "Security Entry" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "brig-entrance" + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/structure/disposalpipe/segment, +/obj/machinery/scanner_gate/preset_guns, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "odG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39647,23 +39868,29 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/white/smooth_large, /area/station/science/robotics/lab) -"oeo" = ( -/obj/structure/chair/office{ - dir = 8; - name = "grimy chair" - }, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/commons/vacant_room/commissary) "oey" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, /turf/open/floor/iron, /area/station/cargo/drone_bay) +"oez" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/sign/directions/science/directional/north{ + dir = 4 + }, +/obj/structure/sign/directions/engineering/directional/north{ + dir = 4; + pixel_y = 40 + }, +/obj/structure/sign/directions/command/directional/north{ + dir = 4; + pixel_y = 24 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "oeL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -39723,6 +39950,14 @@ /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/uppersouth) +"ogH" = ( +/obj/machinery/computer/atmos_alert/station_only, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/command/bridge) "ogL" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs, @@ -39797,23 +40032,6 @@ }, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) -"oin" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/structure/sign/directions/science/directional/north{ - dir = 4 - }, -/obj/structure/sign/directions/command/directional/north{ - dir = 8; - pixel_y = 40 - }, -/obj/structure/sign/directions/evac/directional/north{ - dir = 2; - pixel_y = 24 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "oix" = ( /turf/open/floor/iron/white, /area/station/science/ordnance/testlab) @@ -39850,17 +40068,24 @@ }, /turf/open/floor/iron/textured, /area/station/cargo/drone_bay) -"ojN" = ( -/turf/open/floor/iron/stairs/right{ - color = "#795C32"; - dir = 8 - }, -/area/station/security/courtroom) "ojS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/catwalk_floor/iron_white, /area/station/medical/treatment_center) +"oka" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/machinery/door/window/left/directional/north{ + name = "Waiting Room Desk"; + req_access = list("medical") + }, +/obj/machinery/camera/autoname/directional/west{ + network = list("ss13","rd") + }, +/turf/open/floor/engine, +/area/station/science/auxlab/firing_range) "okd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -39870,6 +40095,30 @@ }, /turf/open/floor/wood, /area/station/service/lawoffice) +"okf" = ( +/obj/machinery/light/directional/south, +/obj/structure/table, +/obj/item/clothing/mask/gas{ + pixel_x = 8 + }, +/obj/item/clothing/mask/gas{ + pixel_x = 16; + pixel_y = 5 + }, +/obj/item/clothing/mask/gas{ + pixel_x = 12; + pixel_y = 2 + }, +/obj/item/reagent_containers/dropper{ + pixel_x = -5; + pixel_y = 1 + }, +/obj/item/reagent_containers/dropper{ + pixel_x = -5; + pixel_y = -2 + }, +/turf/open/floor/glass/reinforced, +/area/station/science/xenobiology) "okg" = ( /obj/machinery/holopad, /obj/effect/landmark/event_spawn, @@ -40170,43 +40419,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/storage/primary) -"oqD" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/structure/table, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 1 - }, -/obj/item/reagent_containers/cup/bottle/facid{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/item/reagent_containers/cup/bottle/toxin{ - pixel_x = 6; - pixel_y = 8 - }, -/obj/item/reagent_containers/cup/bottle/morphine{ - pixel_x = -4; - pixel_y = 1 - }, -/obj/item/reagent_containers/cup/bottle/morphine{ - pixel_x = 5; - pixel_y = 1 - }, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/syringe{ - pixel_y = 5 - }, -/obj/item/reagent_containers/syringe{ - pixel_y = 5 - }, -/obj/item/assembly/signaler{ - pixel_x = -3; - pixel_y = -12 - }, -/turf/open/floor/iron/dark, -/area/station/security/execution/education) "oqN" = ( /obj/structure/lattice, /obj/effect/landmark/start/hangover, @@ -40248,14 +40460,6 @@ dir = 1 }, /area/station/medical/chemistry/minisat) -"ort" = ( -/obj/structure/transport/linear/public{ - base_icon_state = "catwalk"; - icon = 'icons/obj/smooth_structures/catwalk.dmi'; - icon_state = "catwalk-4" - }, -/turf/open/openspace, -/area/station/ai_monitored/turret_protected/aisat_interior) "oru" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 1 @@ -40379,12 +40583,6 @@ /obj/machinery/light/directional/north, /turf/open/floor/engine, /area/station/science/explab) -"otA" = ( -/obj/structure/cable/multilayer/multiz, -/obj/item/assembly/mousetrap/armed, -/obj/machinery/light/directional/north, -/turf/open/floor/plating, -/area/station/hallway/secondary/service) "otH" = ( /obj/structure/closet/crate/cardboard, /obj/item/relic, @@ -40494,6 +40692,16 @@ /obj/effect/turf_decal/trimline/blue/filled/corner, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"ovo" = ( +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/door/airlock/freezer{ + name = "Freezer" + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "ovr" = ( /obj/machinery/vending/coffee, /obj/effect/turf_decal/tile/neutral/opposingcorners, @@ -40539,6 +40747,29 @@ dir = 4 }, /area/station/science/research) +"owr" = ( +/obj/item/reagent_containers/cup/bottle/silicon{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/structure/rack, +/obj/item/reagent_containers/cup/bottle/sugar{ + pixel_x = 6 + }, +/obj/item/reagent_containers/cup/bottle/silver{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/bottle/sacid{ + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/bottle/water, +/obj/item/reagent_containers/cup/bottle/sulfur{ + pixel_x = -6 + }, +/obj/machinery/light/very_dim/directional/north, +/turf/open/floor/iron/dark/textured_edge, +/area/station/medical/pharmacy) "owB" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/airalarm/directional/east, @@ -40555,6 +40786,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) +"oxh" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/girder/displaced, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "oxB" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40646,17 +40882,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/office) -"ozo" = ( -/obj/machinery/door/poddoor/shutters{ - dir = 1; - id = "ordauxgarage" - }, -/obj/effect/turf_decal/sand/plating, -/obj/effect/turf_decal/stripes/asteroid/end{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/science/ordnance) "ozr" = ( /obj/effect/turf_decal/box/corners{ dir = 4 @@ -40832,12 +41057,6 @@ /obj/effect/mapping_helpers/airalarm/tlv_cold_room, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) -"oBY" = ( -/obj/effect/turf_decal/sand/plating, -/obj/effect/mapping_helpers/broken_floor, -/mob/living/basic/goose/vomit, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "oCb" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 1 @@ -40918,28 +41137,6 @@ "oDK" = ( /turf/open/floor/carpet/executive, /area/station/command/meeting_room) -"oDM" = ( -/obj/machinery/door/airlock/virology/glass{ - id_tag = "virology_airlock_interior"; - name = "Virology Lab" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/access/all/medical/virology, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/green/fourcorners, -/obj/machinery/door_buttons/access_button{ - idDoor = "virology_airlock_interior"; - idSelf = "virology_airlock_control"; - name = "Virology Access Button"; - pixel_x = -24; - pixel_y = 8; - req_access = list("virology") - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/white, -/area/station/medical/virology) "oDR" = ( /obj/machinery/holopad, /obj/effect/turf_decal/box/white{ @@ -40968,10 +41165,6 @@ /obj/machinery/meter, /turf/closed/wall/r_wall, /area/station/engineering/supermatter) -"oEo" = ( -/obj/effect/turf_decal/tile/dark_green/opposingcorners, -/turf/closed/wall, -/area/station/hallway/secondary/service) "oEp" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -41111,39 +41304,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/hallway/secondary/entry) -"oGF" = ( -/obj/structure/table/reinforced, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/button/door{ - id = "secentrylock2"; - name = "Security Exit Lock"; - normaldoorcontrol = 1; - pixel_x = -7; - req_access = list("security"); - specialfunctions = 4 - }, -/obj/machinery/button/door{ - id = "secentrylock"; - name = "Security Entrance Lock"; - normaldoorcontrol = 1; - pixel_x = -7; - pixel_y = 7; - req_access = list("security"); - specialfunctions = 4 - }, -/obj/machinery/button/flasher{ - id = "secentry"; - pixel_x = 2 - }, -/obj/machinery/button/door{ - id = "secentrylock"; - name = "Security Entrance Doors"; - normaldoorcontrol = 1; - pixel_x = 2; - pixel_y = 7 - }, -/turf/open/floor/iron, -/area/station/security/brig/entrance) "oGO" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41154,6 +41314,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"oGQ" = ( +/obj/structure/table, +/obj/structure/microscope, +/obj/item/storage/box/beakers{ + pixel_x = -14; + pixel_y = 18 + }, +/turf/open/floor/iron/dark/small, +/area/station/science/cytology) "oGX" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -41215,6 +41384,22 @@ /obj/structure/cable, /turf/open/floor/iron/white/textured_large, /area/station/medical/treatment_center) +"oIr" = ( +/obj/effect/turf_decal/tile/red/anticorner/contrasted, +/obj/structure/bed/dogbed/mcgriff, +/mob/living/basic/pet/dog/pug/mcgriff, +/obj/machinery/button/flasher{ + id = "control1"; + pixel_x = 28; + pixel_y = 6 + }, +/obj/machinery/button/flasher{ + id = "control2"; + pixel_x = -6; + pixel_y = -23 + }, +/turf/open/floor/iron, +/area/station/security/warden) "oID" = ( /obj/structure/lattice, /obj/effect/spawner/random/structure/grille, @@ -41236,6 +41421,15 @@ /obj/structure/disposalpipe/trunk, /turf/open/space/openspace, /area/space/nearstation) +"oJv" = ( +/obj/structure/lattice/catwalk, +/obj/structure/bed/pod, +/obj/item/clothing/glasses/sunglasses{ + desc = "A pair of sunglasses to provide eye protection against solar rays. Does not block flashes."; + flash_protect = 0 + }, +/turf/open/space/basic, +/area/space/nearstation) "oJD" = ( /obj/effect/turf_decal/siding/wood/end{ dir = 4 @@ -41272,6 +41466,17 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/department/medical) +"oJQ" = ( +/obj/item/food/grown/poppy, +/obj/structure/table/wood, +/obj/item/food/grown/poppy{ + pixel_x = -8; + pixel_y = 8 + }, +/turf/open/floor/iron/chapel{ + dir = 1 + }, +/area/station/service/chapel) "oJU" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41326,15 +41531,6 @@ /obj/item/lightreplacer, /turf/open/floor/iron, /area/station/engineering/break_room) -"oKG" = ( -/obj/structure/table, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/item/stack/sheet/mineral/plasma, -/obj/machinery/reagentgrinder, -/turf/open/floor/iron/white/textured_large, -/area/station/science/xenobiology) "oKM" = ( /obj/effect/turf_decal/tile/red/half/contrasted, /obj/structure/disposalpipe/segment{ @@ -41434,14 +41630,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white/smooth_large, /area/station/science/explab) -"oMS" = ( -/obj/structure/transport/linear/public{ - base_icon_state = "catwalk"; - icon = 'icons/obj/smooth_structures/catwalk.dmi'; - icon_state = "catwalk-157" - }, -/turf/open/floor/plating/elevatorshaft, -/area/station/cargo/storage) "oNo" = ( /obj/machinery/camera/autoname/directional/west, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -41565,6 +41753,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine) +"oPC" = ( +/turf/open/floor/iron/stairs/right{ + color = "#795C32"; + dir = 8 + }, +/area/station/security/courtroom) "oPL" = ( /obj/item/clothing/head/chameleon/broken, /turf/open/misc/asteroid/airless, @@ -41670,6 +41864,20 @@ /obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, /turf/open/floor/iron, /area/station/engineering/atmos) +"oRp" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "triage"; + name = "Triage" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/medical/general, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/exam_room) "oRD" = ( /obj/structure/table, /obj/structure/bedsheetbin, @@ -41854,32 +42062,6 @@ /obj/structure/disposalpipe/trunk/multiz, /turf/open/floor/iron, /area/station/engineering/gravity_generator) -"oUG" = ( -/obj/effect/landmark/start/ai/secondary, -/obj/machinery/door/window/brigdoor/left/directional/north{ - name = "Tertiary AI Core Access"; - pixel_y = 3; - req_access = list("ai_upload") - }, -/obj/item/radio/intercom/directional/south{ - freerange = 1; - listening = 0; - name = "Common Channel"; - pixel_x = -27 - }, -/obj/item/radio/intercom/directional/south{ - freerange = 1; - frequency = 1447; - listening = 0; - name = "Private Channel"; - pixel_x = 27 - }, -/obj/machinery/flasher/directional/east{ - id = "AI"; - pixel_y = 8 - }, -/turf/open/floor/circuit/green, -/area/station/ai_monitored/turret_protected/ai) "oUP" = ( /obj/effect/turf_decal/tile/brown/anticorner/contrasted, /obj/effect/spawner/random/clothing/wardrobe_closet_colored, @@ -41978,13 +42160,6 @@ }, /turf/open/floor/wood/tile, /area/station/service/bar) -"oWf" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Air to Distro Staging" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "oWg" = ( /obj/machinery/door/airlock/maintenance/external, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, @@ -42050,6 +42225,24 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"oXd" = ( +/obj/machinery/status_display/door_timer{ + id = "Cell 3"; + name = "Cell 3"; + pixel_x = 32; + pixel_y = 32 + }, +/obj/machinery/status_display/door_timer{ + id = "Cell 2"; + name = "Cell 2"; + pixel_x = -32; + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/security/brig) "oXh" = ( /obj/machinery/requests_console/directional/east{ department = "Security"; @@ -42092,24 +42285,6 @@ }, /turf/open/floor/iron/large, /area/station/hallway/secondary/exit/departure_lounge) -"oXY" = ( -/obj/structure/toilet{ - dir = 1 - }, -/obj/effect/landmark/start/hangover, -/obj/effect/spawner/random/trash/graffiti{ - pixel_y = -32; - spawn_loot_chance = 50 - }, -/obj/machinery/light/small/dim/directional/east, -/obj/machinery/button/door/directional/west{ - id = "u4"; - name = "privacy bolt control"; - normaldoorcontrol = 1; - specialfunctions = 4 - }, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet/restrooms) "oYm" = ( /obj/machinery/camera/autoname/directional/west, /obj/item/radio/intercom/directional/east, @@ -42264,15 +42439,6 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"pak" = ( -/obj/structure/table, -/obj/structure/microscope, -/obj/item/storage/box/beakers{ - pixel_x = -14; - pixel_y = 18 - }, -/turf/open/floor/iron/dark/small, -/area/station/science/cytology) "pat" = ( /obj/effect/turf_decal/siding/red{ dir = 8 @@ -42563,13 +42729,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron, /area/station/maintenance/department/cargo) -"pgO" = ( -/obj/machinery/conveyor/auto{ - dir = 9; - id = "bridgedeliver" - }, -/turf/open/floor/plating/airless, -/area/station/maintenance/department/science) "pgS" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -42663,15 +42822,6 @@ /obj/structure/cable, /turf/open/floor/iron/solarpanel/airless, /area/station/solars/starboard/fore) -"pii" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - dir = 8; - id = "xbprotect"; - name = "Security Shutters" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/white/textured_large, -/area/station/science/xenobiology) "pik" = ( /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/freezer, @@ -42774,6 +42924,22 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/space/basic, /area/space/nearstation) +"pjY" = ( +/obj/machinery/button/door/directional/west{ + id = "atmos"; + name = "Atmospherics Lockdown"; + req_access = list("atmospherics") + }, +/obj/machinery/light_switch/directional/west{ + pixel_x = -35 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/engineering/atmos/storage/gas) "pkl" = ( /turf/closed/wall, /area/station/maintenance/solars/starboard/fore) @@ -42808,24 +42974,6 @@ /obj/machinery/newscaster/directional/south, /turf/open/floor/iron/dark, /area/station/medical/chemistry/minisat) -"pkK" = ( -/obj/machinery/light/small/broken/directional/north, -/obj/structure/table, -/obj/item/food/spaghetti/pastatomato, -/obj/item/flashlight/flare/candle{ - icon_state = "candle1_lit"; - pixel_x = -10; - pixel_y = 4; - start_on = 1 - }, -/obj/item/flashlight/flare/candle{ - icon_state = "candle1_lit"; - pixel_x = 10; - pixel_y = 4; - start_on = 1 - }, -/turf/open/floor/iron/checker, -/area/station/maintenance/department/medical) "pkN" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -42886,17 +43034,6 @@ }, /turf/open/floor/iron/white/textured_large, /area/station/science/research) -"plE" = ( -/obj/machinery/button/door/directional/east{ - id = "soup"; - name = "Radiation Shutters Control" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/obj/effect/turf_decal/stripes{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "plH" = ( /obj/machinery/button/door/directional/west{ id = "cmoshower"; @@ -43024,6 +43161,25 @@ }, /turf/open/floor/wood/parquet, /area/station/service/library) +"poF" = ( +/obj/structure/cable, +/obj/item/radio/intercom/directional/north, +/obj/machinery/button/door/directional/south{ + id = "xenobio7"; + name = "pen 7 blast doors control"; + pixel_x = -6 + }, +/obj/machinery/button/door/directional/south{ + id = "xenobio8"; + name = "pen 8 blast doors control"; + pixel_x = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/science/xenobiology) "poU" = ( /obj/structure/table/reinforced/rglass, /obj/effect/spawner/random/engineering/flashlight, @@ -43304,6 +43460,23 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"pts" = ( +/obj/structure/table/reinforced/rglass, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/item/reagent_containers/cup/bottle/epinephrine{ + pixel_x = 6; + pixel_y = 9 + }, +/obj/item/storage/box/rxglasses{ + pixel_x = -4; + pixel_y = 8 + }, +/obj/item/stack/medical/gauze{ + pixel_x = 8 + }, +/obj/item/reagent_containers/syringe, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) "ptP" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -43319,17 +43492,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/chapel/funeral) -"pue" = ( -/obj/structure/closet/toolcloset, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 1 - }, -/obj/item/clothing/gloves/color/yellow{ - name = "unsulated gloves"; - siemens_coefficient = 5 - }, -/turf/open/floor/iron, -/area/station/commons/storage/tools) "pui" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/bot_white, @@ -43364,6 +43526,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/medical/chemistry/minisat) +"puP" = ( +/obj/structure/transport/linear/public{ + base_icon_state = "catwalk"; + icon = 'icons/obj/smooth_structures/catwalk.dmi'; + icon_state = "catwalk-3" + }, +/turf/open/openspace, +/area/station/ai_monitored/turret_protected/aisat_interior) "puQ" = ( /obj/effect/baseturf_helper/reinforced_plating/ceiling, /turf/open/floor/engine/vacuum, @@ -43645,6 +43815,23 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating/airless, /area/station/hallway/secondary/exit/departure_lounge) +"pzx" = ( +/obj/machinery/iv_drip, +/obj/machinery/button/door/directional/west{ + id = "r1p"; + name = "Privacy Control"; + pixel_y = -6 + }, +/obj/machinery/button/door/directional/west{ + id = "r1"; + name = "Bolt Control"; + normaldoorcontrol = 1; + pixel_y = 6; + specialfunctions = 4 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/patients_rooms/room_a) "pzB" = ( /obj/machinery/telecomms/server/presets/supply, /turf/open/floor/circuit/green/telecomms/mainframe, @@ -43676,15 +43863,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/break_room) -"pAJ" = ( -/obj/structure/cable, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron/stairs{ - dir = 4; - icon = 'icons/obj/stairs.dmi'; - icon_state = "stairs_wood" - }, -/area/station/service/chapel) "pAK" = ( /obj/item/stack/cable_coil, /turf/open/space/openspace, @@ -43769,12 +43947,6 @@ /obj/effect/turf_decal/box/white, /turf/open/floor/engine, /area/station/engineering/atmospherics_engine) -"pBM" = ( -/turf/open/floor/iron/stairs/left{ - color = "#795C32"; - dir = 8 - }, -/area/station/security/courtroom) "pBN" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/rack, @@ -43850,6 +44022,14 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/grimy, /area/station/service/chapel/office) +"pCT" = ( +/obj/machinery/door/poddoor/shutters{ + id = "secwarehouse"; + name = "Secure Warehouse Shutters" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/station/cargo/warehouse/upper) "pCX" = ( /obj/effect/turf_decal/tile/neutral/diagonal_centre, /obj/machinery/light/warm/directional/west, @@ -43874,6 +44054,22 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/station/maintenance/radshelter/civil) +"pDu" = ( +/obj/machinery/door/airlock/mining/glass{ + name = "Cargo Boutique" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters{ + id = "boutique"; + name = "Countertheft Shutters" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/station/cargo/boutique) "pDx" = ( /obj/effect/turf_decal/stripes{ dir = 5 @@ -43954,19 +44150,6 @@ }, /turf/open/openspace, /area/station/engineering/supermatter/room) -"pFh" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/door/window/left/directional/north{ - name = "Anti Assistant Protection Door"; - req_access = list("medical") - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/anesthetic_mix, -/obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/iron/white, -/area/station/medical/treatment_center) "pFl" = ( /obj/structure/table, /obj/item/storage/toolbox/mechanical{ @@ -44128,6 +44311,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/warehouse/upper) +"pIk" = ( +/obj/structure/closet/crate/science{ + icon_state = "scicrateopen"; + opened = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/stripes/line, +/obj/item/tank, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "pIp" = ( /obj/structure/railing{ dir = 4 @@ -44140,6 +44333,19 @@ }, /turf/open/floor/iron/white, /area/station/science/research) +"pIF" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor/right/directional/north{ + name = "Brig Control Desk"; + req_access = list("armory") + }, +/obj/machinery/door/window/right/directional/south, +/obj/structure/desk_bell, +/obj/machinery/flasher/directional/east{ + id = "control2" + }, +/turf/open/floor/plating, +/area/station/security/warden) "pIN" = ( /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/closed/wall/r_wall, @@ -44180,6 +44386,14 @@ /obj/effect/turf_decal/trimline/dark_blue/filled/line, /turf/open/floor/holofloor/dark, /area/station/command/heads_quarters/cmo) +"pJL" = ( +/obj/structure/transport/linear/public{ + base_icon_state = "catwalk"; + icon = 'icons/obj/smooth_structures/catwalk.dmi'; + icon_state = "catwalk-157" + }, +/turf/open/floor/plating/elevatorshaft, +/area/station/cargo/storage) "pJN" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -44202,22 +44416,6 @@ /obj/effect/mapping_helpers/requests_console/assistance, /turf/open/floor/iron/white, /area/station/science/lab) -"pJZ" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - id = "ordstorage" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/button/door/directional/east{ - id = "ordstorage"; - name = "Ordnance Storage Shutter Control"; - req_access = list("ordnance") - }, -/obj/effect/turf_decal/caution/stand_clear/red, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "pKb" = ( /obj/effect/spawner/random/trash/cigbutt{ spawn_random_offset = 4; @@ -44398,17 +44596,6 @@ /obj/structure/cable, /turf/open/space/basic, /area/station/solars/port/fore) -"pNn" = ( -/obj/structure/table/wood, -/obj/effect/spawner/random/bureaucracy/paper{ - loot = list(/obj/item/paper = 20, /obj/item/paper/crumpled = 2, /obj/item/paper/crumpled/muddy = 2, /obj/item/paper/construction = 1, /obj/item/paper/carbon = 1); - pixel_y = 5; - spawn_loot_count = 6; - spawn_random_offset = 3 - }, -/obj/item/stamp/granted, -/turf/open/floor/carpet/executive, -/area/station/command/meeting_room) "pNs" = ( /obj/structure/cable, /obj/effect/landmark/start/bitrunner, @@ -44526,23 +44713,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/textured_large, /area/station/engineering/storage/tech) -"pQk" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron, -/area/station/service/hydroponics) "pQl" = ( /obj/effect/spawner/random/structure/closet_private, /obj/machinery/airalarm/directional/west, @@ -44621,6 +44791,23 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/warden) +"pRm" = ( +/obj/structure/cable/layer3, +/obj/machinery/button/elevator/directional/south{ + id = "aisat"; + pixel_x = 8; + pixel_y = -25 + }, +/obj/machinery/lift_indicator/directional/south{ + linked_elevator_id = "aisat"; + pixel_x = -6; + pixel_y = -40 + }, +/obj/machinery/camera/autoname/directional/south{ + network = list("aicore") + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/ai_monitored/turret_protected/ai) "pRq" = ( /obj/effect/turf_decal/trimline/yellow/arrow_cw{ dir = 9 @@ -44724,6 +44911,13 @@ "pSO" = ( /turf/closed/wall/r_wall, /area/station/engineering/transit_tube) +"pSS" = ( +/obj/machinery/conveyor/auto{ + dir = 9; + id = "bridgedeliver" + }, +/turf/open/floor/plating/airless, +/area/station/maintenance/department/science) "pSV" = ( /obj/effect/turf_decal/sand/plating, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -44732,11 +44926,6 @@ /obj/effect/mapping_helpers/airlock/welded, /turf/open/floor/plating, /area/station/asteroid) -"pTn" = ( -/obj/structure/kitchenspike, -/obj/machinery/light/directional/west, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "pTt" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -44896,6 +45085,12 @@ }, /turf/open/misc/asteroid, /area/station/hallway/primary/starboard) +"pVC" = ( +/obj/machinery/computer/station_alert/station_only, +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/station/command/bridge) "pVG" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 1 @@ -45160,17 +45355,23 @@ /obj/structure/railing, /turf/open/openspace, /area/station/science/xenobiology) -"qax" = ( -/obj/machinery/light/directional/south, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/holosign_creator/atmos{ - pixel_x = 4; - pixel_y = 7 +"qaz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/sign/directions/science/directional/north{ + dir = 4 + }, +/obj/structure/sign/directions/command/directional/north{ + dir = 8; + pixel_y = 40 + }, +/obj/structure/sign/directions/evac/directional/north{ + dir = 2; + pixel_y = 24 }, /turf/open/floor/iron, -/area/station/engineering/main) +/area/station/hallway/primary/central) "qaE" = ( /obj/effect/landmark/start/janitor, /obj/effect/decal/cleanable/dirt, @@ -45255,6 +45456,30 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/main) +"qcS" = ( +/obj/structure/table, +/obj/item/storage/box/chemimp{ + pixel_x = 6; + pixel_y = 19 + }, +/obj/item/storage/box/handcuffs{ + pixel_x = -6; + pixel_y = 19 + }, +/obj/item/storage/box/flashbangs{ + pixel_x = 6; + pixel_y = 1 + }, +/obj/item/storage/box/trackimp{ + pixel_x = -6; + pixel_y = 1 + }, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/lockers) "qcU" = ( /turf/closed/wall, /area/station/maintenance/disposal/incinerator) @@ -45291,6 +45516,18 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"qdR" = ( +/obj/structure/table/wood, +/obj/item/flashlight/flare/candle{ + icon_state = "candle1_lit"; + start_on = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/carpet, +/area/station/service/chapel) "qdV" = ( /turf/open/openspace, /area/station/engineering/atmos/upper) @@ -45588,15 +45825,6 @@ }, /turf/open/floor/wood, /area/station/commons/lounge) -"qiz" = ( -/obj/machinery/door/poddoor/shutters/window{ - dir = 8; - id = "gateshutter"; - name = "Gateway Access Shutter" - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/command/gateway) "qiJ" = ( /obj/machinery/computer/mech_bay_power_console{ dir = 4 @@ -45723,17 +45951,6 @@ dir = 8 }, /area/station/science/breakroom) -"qlK" = ( -/obj/machinery/door/window/left/directional/east{ - name = "Hydroponics Desk"; - req_access = list("hydroponics") - }, -/obj/structure/table/reinforced, -/obj/item/paper, -/obj/item/pen, -/obj/effect/turf_decal/stripes/box, -/turf/open/floor/iron, -/area/station/service/hydroponics) "qlO" = ( /obj/structure/table, /obj/item/stock_parts/capacitor, @@ -45781,6 +45998,17 @@ /obj/structure/cable, /turf/open/floor/carpet, /area/station/service/chapel/funeral) +"qmp" = ( +/obj/structure/table/wood, +/obj/effect/spawner/random/bureaucracy/paper{ + loot = list(/obj/item/paper = 20, /obj/item/paper/crumpled = 2, /obj/item/paper/crumpled/muddy = 2, /obj/item/paper/construction = 1, /obj/item/paper/carbon = 1); + pixel_y = 5; + spawn_loot_count = 6; + spawn_random_offset = 3 + }, +/obj/item/stamp/granted, +/turf/open/floor/carpet/executive, +/area/station/command/meeting_room) "qms" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/hollow/reinforced/end{ @@ -45896,16 +46124,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/engine, /area/station/science/xenobiology) -"qoB" = ( -/obj/machinery/door/poddoor/shutters/window{ - dir = 8; - id = "gateshutter"; - name = "Gateway Access Shutter" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/command/gateway) "qoJ" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -45936,21 +46154,14 @@ }, /turf/open/floor/catwalk_floor/iron_dark/telecomms, /area/station/ai_monitored/turret_protected/ai) -"qpk" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/structure/sign/directions/command/directional/north, -/obj/structure/sign/directions/engineering/directional/north{ - dir = 4; - pixel_y = 40 - }, -/obj/structure/sign/directions/security/directional/north{ - dir = 8; - pixel_y = 24 +"qpj" = ( +/obj/machinery/turretid{ + control_area = /area/station/tcommsat/server; + name = "Telecomms turret control"; + req_access = list("tcomms") }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) +/turf/closed/wall/r_wall, +/area/station/tcommsat/server) "qpr" = ( /obj/effect/turf_decal/stripes{ dir = 4 @@ -46475,6 +46686,22 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/maintenance/radshelter/civil) +"qAo" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/directions/security/directional/south{ + dir = 8; + pixel_y = -24 + }, +/obj/structure/sign/directions/supply/directional/south{ + dir = 8 + }, +/obj/structure/sign/directions/engineering/directional/south{ + pixel_y = -40 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "qAp" = ( /mob/living/basic/mining/goliath/ancient, /turf/open/misc/asteroid/airless, @@ -46770,6 +46997,15 @@ /obj/structure/chair/sofa/bench, /turf/open/floor/iron/white, /area/station/medical/exam_room) +"qGD" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/stack/sheet/mineral/plasma, +/obj/machinery/reagentgrinder, +/turf/open/floor/iron/white/textured_large, +/area/station/science/xenobiology) "qGN" = ( /obj/structure/table/wood, /obj/effect/spawner/random/entertainment/deck, @@ -46995,24 +47231,6 @@ "qKH" = ( /turf/open/floor/glass/reinforced, /area/station/science/research) -"qKL" = ( -/obj/structure/toilet{ - dir = 4 - }, -/obj/effect/landmark/start/hangover, -/obj/effect/spawner/random/trash/graffiti{ - pixel_x = -32; - spawn_loot_chance = 50 - }, -/obj/machinery/light/small/dim/directional/south, -/obj/machinery/button/door/directional/north{ - id = "u1"; - name = "privacy bolt control"; - normaldoorcontrol = 1; - specialfunctions = 4 - }, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet/restrooms) "qLc" = ( /obj/effect/landmark/blobstart, /obj/effect/spawner/random/trash/garbage{ @@ -47242,16 +47460,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"qPS" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/left/directional/north{ - req_access = list("hydroponics"); - name = "Hydroponics Desk" - }, -/obj/structure/desk_bell, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/service/hydroponics) "qPX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47372,6 +47580,12 @@ /obj/structure/lattice/catwalk, /turf/open/openspace, /area/station/science/xenobiology) +"qRZ" = ( +/turf/open/floor/iron/stairs/left{ + color = "#795C32"; + dir = 8 + }, +/area/station/security/courtroom) "qSb" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating/airless, @@ -47398,16 +47612,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/storage) -"qTb" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "cmoprivacy"; - name = "Privacy Shutters" - }, -/turf/open/floor/plating, -/area/station/command/heads_quarters/cmo) "qTe" = ( /obj/structure/railing{ dir = 8 @@ -47557,12 +47761,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"qVW" = ( -/obj/machinery/computer/station_alert/station_only, -/obj/effect/turf_decal/tile/yellow/half/contrasted, -/obj/machinery/light/directional/north, -/turf/open/floor/iron/dark, -/area/station/command/bridge) "qWh" = ( /obj/effect/decal/cleanable/blood/old, /obj/machinery/portable_atmospherics/canister/air, @@ -47912,16 +48110,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/ai_monitored/turret_protected/ai_upload_foyer) -"rbt" = ( -/obj/machinery/door/airlock{ - name = "Kitchen Cold Room" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "rbw" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, @@ -47971,6 +48159,24 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/science/research) +"rcy" = ( +/obj/machinery/light/small/broken/directional/north, +/obj/structure/table, +/obj/item/food/spaghetti/pastatomato, +/obj/item/flashlight/flare/candle{ + icon_state = "candle1_lit"; + pixel_x = -10; + pixel_y = 4; + start_on = 1 + }, +/obj/item/flashlight/flare/candle{ + icon_state = "candle1_lit"; + pixel_x = 10; + pixel_y = 4; + start_on = 1 + }, +/turf/open/floor/iron/checker, +/area/station/maintenance/department/medical) "rcz" = ( /obj/machinery/computer/security{ dir = 4 @@ -48456,6 +48662,26 @@ /obj/effect/turf_decal/tile/purple/opposingcorners, /turf/open/floor/iron/white, /area/station/science/auxlab/firing_range) +"rjs" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/table/reinforced, +/obj/machinery/door/window/right/directional/west{ + name = "Baked Goods"; + req_one_access = list("service","maint_tunnels") + }, +/obj/item/food/hotcrossbun{ + pixel_x = 1; + pixel_y = 10 + }, +/obj/item/food/cakeslice/pound_cake_slice{ + pixel_x = 1; + pixel_y = -2 + }, +/obj/effect/turf_decal/siding/red{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/fore) "rjx" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -48650,6 +48876,13 @@ /obj/structure/railing/corner, /turf/open/floor/iron, /area/station/engineering/atmos/upper) +"rmi" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line, +/obj/item/stack/sheet/mineral/plasma, +/obj/machinery/reagentgrinder, +/turf/open/floor/iron/white/textured_large, +/area/station/science/xenobiology) "rms" = ( /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, @@ -48732,13 +48965,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/main) -"ron" = ( -/obj/machinery/button/door/directional/south{ - id = "sealobs"; - name = "Observatory Lock" - }, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/ordnance/testlab) "rox" = ( /obj/machinery/atmospherics/components/binary/pump{ name = "Pure to Port" @@ -48776,6 +49002,14 @@ /obj/structure/window/spawner/directional/north, /turf/open/floor/iron/dark, /area/station/commons/fitness/recreation) +"rph" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "rpy" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 8 @@ -48880,6 +49114,13 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/dark, /area/station/security/execution/education) +"rqC" = ( +/obj/machinery/camera/motion/directional/north{ + c_tag = "Secure - AI Upper External South"; + network = list("aicore") + }, +/turf/open/space/openspace, +/area/space/nearstation) "rqJ" = ( /obj/machinery/air_sensor/plasma_tank, /turf/open/floor/engine/plasma, @@ -49373,6 +49614,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood/tile, /area/station/service/bar) +"rzg" = ( +/obj/structure/transport/linear/public{ + base_icon_state = "catwalk"; + icon = 'icons/obj/smooth_structures/catwalk.dmi'; + icon_state = "catwalk-55" + }, +/turf/open/floor/plating/elevatorshaft, +/area/station/cargo/storage) "rzB" = ( /turf/open/floor/iron/white/smooth_half{ dir = 8 @@ -49689,6 +49938,22 @@ dir = 4 }, /area/station/engineering/main) +"rDE" = ( +/obj/machinery/light/dim/directional/west, +/obj/structure/table/wood, +/obj/item/toy/figure/qm{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/beaker/jar{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/coffee_cartridge/fancy{ + pixel_y = 18 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "rDI" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -49769,17 +50034,6 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/iron/freezer, /area/station/security/prison/shower) -"rFv" = ( -/obj/machinery/recycler{ - dir = 4 - }, -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, -/obj/structure/window/spawner/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/disposal) "rFK" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/decal/cleanable/rubble, @@ -49980,6 +50234,17 @@ /obj/machinery/light/small/dim/directional/east, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"rJs" = ( +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/holosign_creator/atmos{ + pixel_x = 4; + pixel_y = 7 + }, +/turf/open/floor/iron, +/area/station/engineering/main) "rJy" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/effect/turf_decal/bot, @@ -50136,37 +50401,9 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/station/service/library) -"rNs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "rNJ" = ( /turf/closed/wall, /area/station/maintenance/solars/port/fore) -"rNS" = ( -/obj/structure/table, -/obj/item/assembly/igniter, -/obj/item/assembly/igniter, -/obj/item/assembly/signaler{ - pixel_x = 12; - pixel_y = 6 - }, -/obj/item/assembly/signaler{ - pixel_x = 12; - pixel_y = 6 - }, -/obj/item/assembly/signaler{ - pixel_x = 12; - pixel_y = 6 - }, -/obj/item/assembly/signaler{ - pixel_x = 12; - pixel_y = 6 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "rOq" = ( /obj/structure/chair{ dir = 1 @@ -50743,19 +50980,6 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/engineering/storage) -"rWJ" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - dir = 8; - id = "xbprotect3"; - name = "Security Shutters" - }, -/obj/effect/turf_decal/caution/stand_clear{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/dark/textured_large, -/area/station/science/xenobiology) "rWL" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -50946,20 +51170,6 @@ /obj/machinery/duct, /turf/open/floor/iron/white, /area/station/medical/coldroom) -"rYw" = ( -/obj/machinery/door/window/brigdoor/right/directional/north{ - name = "Justice Chamber"; - req_access = list("armory") - }, -/obj/machinery/conveyor_switch/oneway{ - id = "execution"; - pixel_x = 10 - }, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/security/execution/education) "rYy" = ( /obj/machinery/door/firedoor/border_only{ dir = 8 @@ -51020,6 +51230,18 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) +"rZC" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/service/hydroponics) "rZE" = ( /obj/machinery/portable_atmospherics/pump, /obj/effect/turf_decal/stripes/line{ @@ -51092,21 +51314,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/captain, /turf/open/floor/engine, /area/station/command/heads_quarters/captain/private) -"sat" = ( -/obj/machinery/requests_console/directional/north{ - department = "Bar"; - name = "Bar Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/supplies, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/tile/dark_red/opposingcorners, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/item/radio/intercom/directional/west, -/obj/effect/mapping_helpers/requests_console/assistance, -/turf/open/floor/iron/dark, -/area/station/service/bar) "saA" = ( /obj/machinery/door/window/right/directional/east{ name = "Corpse Arrivals"; @@ -51149,6 +51356,14 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/engineering/atmos/pumproom) +"sbn" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "sbo" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -51237,24 +51452,6 @@ /obj/structure/chair/sofa/bench/left, /turf/open/floor/iron, /area/station/hallway/primary/central) -"sct" = ( -/obj/machinery/button/door/directional/west{ - id = "atmos"; - name = "Atmospherics Lockdown"; - req_access = list("atmospherics") - }, -/obj/structure/cable, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/obj/machinery/vending/wardrobe/atmos_wardrobe, -/turf/open/floor/iron/dark/corner{ - dir = 8 - }, -/area/station/engineering/atmos/upper) "scw" = ( /obj/machinery/door/airlock/mining{ name = "Mining Office" @@ -51427,23 +51624,6 @@ }, /turf/open/floor/iron, /area/station/commons/locker) -"sgt" = ( -/obj/structure/cable/layer3, -/obj/machinery/button/elevator/directional/south{ - id = "aisat"; - pixel_x = 8; - pixel_y = -25 - }, -/obj/machinery/lift_indicator/directional/south{ - linked_elevator_id = "aisat"; - pixel_x = -6; - pixel_y = -40 - }, -/obj/machinery/camera/autoname/directional/south{ - network = list("aicore") - }, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/ai_monitored/turret_protected/ai) "sgu" = ( /obj/effect/decal/cleanable/glass, /obj/effect/decal/cleanable/dirt, @@ -51488,6 +51668,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/office) +"sha" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters{ + id = "boutique"; + name = "Countertheft Shutters" + }, +/turf/open/floor/plating, +/area/station/cargo/boutique) "shb" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -51586,21 +51774,6 @@ }, /turf/open/floor/iron/checker, /area/station/engineering/atmos/pumproom) -"sjb" = ( -/obj/machinery/elevator_control_panel/directional/south{ - linked_elevator_id = "aisat"; - pixel_x = 8; - pixel_y = -34 - }, -/obj/machinery/lift_indicator/directional/south{ - linked_elevator_id = "aisat"; - pixel_x = -6; - pixel_y = -40 - }, -/obj/machinery/light/small/dim/directional/north, -/obj/structure/cable/layer3, -/turf/open/floor/iron/dark/telecomms, -/area/station/tcommsat/server) "sji" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /obj/effect/turf_decal/stripes{ @@ -51656,23 +51829,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"sjS" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - dir = 8; - id = "xbprotect3"; - name = "Security Shutters" - }, -/obj/machinery/button/door/directional/north{ - id = "xbprotect3"; - name = "shutter control" - }, -/obj/effect/turf_decal/caution/stand_clear{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark/textured_large, -/area/station/science/xenobiology) "sjT" = ( /obj/effect/turf_decal/tile/brown/fourcorners, /obj/structure/railing, @@ -51698,6 +51854,14 @@ /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/glass/reinforced, /area/station/security/prison) +"skc" = ( +/obj/effect/spawner/random/trash/mess, +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/any/science/general, +/obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/lesser) "skj" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, @@ -51854,21 +52018,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"smI" = ( -/obj/structure/table/wood, -/obj/item/food/grown/poppy, -/obj/item/food/grown/poppy{ - pixel_x = 8; - pixel_y = 8 - }, -/obj/item/book/bible{ - pixel_x = 16; - pixel_y = 3 - }, -/turf/open/floor/iron/chapel{ - dir = 4 - }, -/area/station/service/chapel) "smM" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -51939,16 +52088,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"soi" = ( -/obj/machinery/mass_driver{ - dir = 1; - id = "captaindriver"; - power = 12 - }, -/obj/effect/turf_decal/stripes/end, -/obj/machinery/light/small/directional/south, -/turf/open/floor/engine, -/area/station/command/heads_quarters/captain/private) "sok" = ( /obj/machinery/newscaster/directional/west, /obj/machinery/computer/records/medical/laptop, @@ -52170,13 +52309,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"srw" = ( -/obj/machinery/camera/motion/directional/west{ - c_tag = "Secure - AI Upper External East"; - network = list("aicore") - }, -/turf/open/space/openspace, -/area/space/nearstation) "srE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -52348,6 +52480,24 @@ }, /turf/open/floor/iron, /area/station/engineering/main) +"sut" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/directions/supply/directional/south{ + dir = 8 + }, +/obj/structure/sign/directions/engineering/directional/south{ + dir = 4; + pixel_y = -40 + }, +/obj/structure/sign/directions/security/directional/south{ + dir = 8; + pixel_y = -24 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "suw" = ( /obj/machinery/chem_master, /turf/open/floor/iron/dark/small, @@ -52410,28 +52560,6 @@ /obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"svq" = ( -/obj/machinery/pdapainter/research, -/obj/item/toy/plush/rouny{ - desc = "THAT is a rouny."; - name = "rouny plushie"; - pixel_y = 18 - }, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/purple/corner, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/rd) -"svE" = ( -/obj/structure/barricade/wooden, -/obj/effect/decal/cleanable/dirt, -/obj/item/flashlight/glowstick/blue{ - light_range = 2; - start_on = 1 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "svK" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -52512,14 +52640,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"sxe" = ( -/obj/structure/transport/linear/public{ - base_icon_state = "catwalk"; - icon = 'icons/obj/smooth_structures/catwalk.dmi'; - icon_state = "catwalk-3" - }, -/turf/open/openspace, -/area/station/ai_monitored/turret_protected/aisat_interior) "sxk" = ( /obj/machinery/newscaster/directional/south, /turf/open/floor/iron/chapel, @@ -52658,16 +52778,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, /turf/open/floor/iron/dark/smooth_edge, /area/station/science/xenobiology) -"sAg" = ( -/obj/structure/chair/sofa/corp/left{ - desc = "Looks like someone threw it out. Covered in donut crumbs."; - dir = 1; - name = "couch" - }, -/obj/machinery/light/directional/south, -/obj/effect/turf_decal/tile/red/half/contrasted, -/turf/open/floor/iron/half, -/area/station/security/breakroom) "sAr" = ( /obj/machinery/door/airlock/medical/glass{ name = "Treatment Centre" @@ -52985,18 +53095,6 @@ /obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"sGd" = ( -/obj/structure/table, -/obj/item/cultivator, -/obj/item/hatchet, -/obj/item/paper/guides/jobs/hydroponics, -/obj/effect/spawner/random/entertainment/coin{ - spawn_loot_count = 2; - spawn_random_offset = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron/textured_large, -/area/station/service/hydroponics/garden) "sGj" = ( /obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, /obj/effect/mapping_helpers/airlock/unres{ @@ -53546,6 +53644,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/command) +"sPV" = ( +/obj/machinery/atmospherics/components/binary/passive_gate{ + on = 1; + target_pressure = 600 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/engineering/atmos/pumproom) "sPW" = ( /obj/machinery/light/floor, /obj/structure/railing/corner{ @@ -53755,14 +53865,6 @@ }, /turf/open/floor/engine, /area/station/hallway/secondary/entry) -"sTM" = ( -/obj/structure/transport/linear/public{ - base_icon_state = "catwalk"; - icon = 'icons/obj/smooth_structures/catwalk.dmi'; - icon_state = "catwalk-203" - }, -/turf/open/floor/plating/elevatorshaft, -/area/station/cargo/storage) "sUc" = ( /obj/item/bodypart/arm/left, /turf/open/floor/plating/airless, @@ -53786,15 +53888,6 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor, /area/station/maintenance/central/lesser) -"sUI" = ( -/obj/machinery/door/airlock{ - name = "Kitchen Cold Room" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "sUM" = ( /obj/item/radio/intercom/directional/west, /turf/open/openspace, @@ -53835,6 +53928,25 @@ /obj/machinery/light/warm/directional/south, /turf/open/floor/grass, /area/station/service/hydroponics/garden) +"sWp" = ( +/obj/machinery/status_display/door_timer{ + id = "Cell 1"; + name = "Cell 1"; + pixel_x = -32; + pixel_y = -32 + }, +/obj/machinery/status_display/door_timer{ + id = "Cell 4"; + name = "Cell 4"; + pixel_x = 32; + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/security/brig) "sWv" = ( /obj/effect/spawner/random/decoration/showcase, /obj/effect/turf_decal/siding/wood{ @@ -53965,14 +54077,6 @@ }, /turf/open/floor/iron/white/textured_large, /area/station/science/research) -"sYq" = ( -/obj/structure/plasticflaps/opaque, -/obj/machinery/door/window/right/directional/south{ - name = "Medical Deliveries"; - req_access = list("medical") - }, -/turf/open/floor/plating, -/area/station/medical/storage) "sYs" = ( /obj/machinery/light/warm/directional/north, /obj/effect/turf_decal/siding/wood{ @@ -54144,17 +54248,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/bridge) -"taE" = ( -/obj/item/food/grown/poppy, -/obj/structure/table/wood, -/obj/item/food/grown/poppy{ - pixel_x = -8; - pixel_y = 8 - }, -/turf/open/floor/iron/chapel{ - dir = 1 - }, -/area/station/service/chapel) "taI" = ( /obj/machinery/vending/cigarette, /obj/effect/turf_decal/siding/purple{ @@ -54517,6 +54610,15 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/white, /area/station/science/explab) +"tjc" = ( +/obj/structure/cable, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/stairs{ + dir = 4; + icon = 'icons/obj/stairs.dmi'; + icon_state = "stairs_wood" + }, +/area/station/service/chapel) "tjd" = ( /obj/machinery/chem_heater/withbuffer, /obj/effect/turf_decal/trimline/yellow/filled/line, @@ -54615,6 +54717,16 @@ /obj/machinery/light/floor/broken, /turf/open/floor/iron, /area/station/hallway/primary/central) +"tkR" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/left/directional/north{ + req_access = list("hydroponics"); + name = "Hydroponics Desk" + }, +/obj/structure/desk_bell, +/obj/machinery/door/firedoor, +/turf/open/floor/iron, +/area/station/service/hydroponics) "tla" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, @@ -54693,12 +54805,63 @@ /obj/effect/decal/cleanable/blood/old, /turf/open/floor/iron/grimy, /area/station/maintenance/port/greater) +"tmT" = ( +/obj/structure/table, +/obj/machinery/button/flasher{ + id = "pbrig"; + pixel_y = 26 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_x = -6; + pixel_y = -8 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_x = -6; + pixel_y = 10 + }, +/obj/item/clothing/under/rank/prisoner{ + pixel_x = 8; + pixel_y = 5 + }, +/obj/item/clothing/under/rank/prisoner{ + pixel_x = 8; + pixel_y = 5 + }, +/obj/item/clothing/under/rank/prisoner{ + pixel_x = 8; + pixel_y = 5 + }, +/obj/item/clothing/under/rank/prisoner{ + pixel_x = 8; + pixel_y = 5 + }, +/turf/open/floor/iron/dark/textured, +/area/station/security/execution/transfer) "tnp" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, /turf/open/floor/iron, /area/station/engineering/atmos) +"tnu" = ( +/obj/machinery/gateway/centerstation{ + bound_height = 96; + bound_width = 64; + bound_x = 0; + bound_y = -32; + dir = 8 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark, +/area/station/command/gateway) "tnv" = ( /obj/machinery/camera/autoname/directional/east, /obj/effect/turf_decal/tile/neutral{ @@ -54856,6 +55019,20 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/catwalk_floor/iron_white, /area/station/medical/treatment_center) +"tqk" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/effect/spawner/random/trash/garbage{ + spawn_loot_count = 3 + }, +/obj/machinery/door/window/left/directional/north{ + name = "Danger: Conveyor Access"; + req_access = list("maint_tunnels") + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal) "tqz" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -55063,6 +55240,14 @@ /obj/structure/sign/warning/biohazard, /turf/open/floor/plating, /area/station/science/xenobiology) +"ttc" = ( +/obj/structure/kitchenspike, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 1 + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "tth" = ( /obj/structure/grille, /turf/open/floor/plating, @@ -55225,11 +55410,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"twW" = ( -/obj/structure/kitchenspike, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "txo" = ( /obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/engine, @@ -55302,15 +55482,6 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/science/research) -"tyA" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/right/directional/north{ - req_access = list("hydroponics"); - name = "Hydroponics Desk" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/service/hydroponics) "tyQ" = ( /obj/structure/cable, /obj/effect/spawner/random/maintenance, @@ -55390,6 +55561,24 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/solars/port/aft) +"tAw" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/effect/landmark/start/hangover, +/obj/effect/spawner/random/trash/graffiti{ + pixel_y = -32; + spawn_loot_chance = 50 + }, +/obj/machinery/light/small/dim/directional/east, +/obj/machinery/button/door/directional/west{ + id = "u5"; + name = "privacy bolt control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet/restrooms) "tAx" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -55414,6 +55603,23 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"tBe" = ( +/obj/machinery/computer/pod/old/mass_driver_controller/trash{ + pixel_x = -32; + pixel_y = 6; + range = 5 + }, +/obj/structure/cable, +/obj/machinery/button/door/directional/west{ + id = "Disposal Exit"; + name = "Disposal Vent Control"; + pixel_x = -32; + pixel_y = -6; + req_access = list("maint_tunnels") + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/disposal) "tBg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -55597,23 +55803,6 @@ }, /turf/open/floor/iron/herringbone, /area/station/commons/fitness/recreation) -"tDM" = ( -/obj/structure/table/reinforced/rglass, -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/item/reagent_containers/cup/bottle/epinephrine{ - pixel_x = 6; - pixel_y = 9 - }, -/obj/item/storage/box/rxglasses{ - pixel_x = -4; - pixel_y = 8 - }, -/obj/item/stack/medical/gauze{ - pixel_x = 8 - }, -/obj/item/reagent_containers/syringe, -/turf/open/floor/iron/white, -/area/station/medical/treatment_center) "tDQ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -55630,6 +55819,23 @@ }, /turf/open/floor/iron/dark/airless, /area/station/science/ordnance) +"tEn" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/service/hydroponics) "tEp" = ( /obj/structure/table, /obj/item/toy/talking/ai, @@ -55693,43 +55899,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"tFh" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash/hobo_squat, -/obj/machinery/button/curtain{ - id = "neverstopgambling"; - pixel_y = 32 - }, -/turf/open/floor/wood, -/area/station/maintenance/central/lesser) -"tFo" = ( -/obj/machinery/light/directional/south, -/obj/structure/table, -/obj/item/clothing/mask/gas{ - pixel_x = 8 - }, -/obj/item/clothing/mask/gas{ - pixel_x = 16; - pixel_y = 5 - }, -/obj/item/clothing/mask/gas{ - pixel_x = 12; - pixel_y = 2 - }, -/obj/item/reagent_containers/dropper{ - pixel_x = -5; - pixel_y = 1 - }, -/obj/item/reagent_containers/dropper{ - pixel_x = -5; - pixel_y = -2 - }, -/turf/open/floor/glass/reinforced, -/area/station/science/xenobiology) "tFD" = ( /obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, @@ -55838,17 +56007,6 @@ /obj/effect/spawner/random/maintenance/three, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"tHn" = ( -/obj/machinery/door/poddoor/shutters{ - id = "warehouse"; - name = "Warehouse Shutters" - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "tHr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -56085,6 +56243,18 @@ }, /turf/open/floor/plating, /area/station/science/xenobiology) +"tLX" = ( +/obj/structure/table/wood, +/obj/item/flashlight/flare/candle{ + icon_state = "candle1_lit"; + start_on = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/carpet, +/area/station/service/chapel) "tMf" = ( /obj/item/modular_computer/laptop/preset/civilian, /obj/structure/table/wood, @@ -56130,6 +56300,21 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical) +"tMK" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/button/door/directional/east{ + id = "cap_ext"; + name = "bolt control"; + normaldoorcontrol = 1; + pixel_y = 24; + specialfunctions = 4 + }, +/turf/open/floor/engine, +/area/station/command/heads_quarters/captain/private) "tMO" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -56200,30 +56385,6 @@ dir = 4 }, /area/station/hallway/secondary/exit/departure_lounge) -"tNA" = ( -/obj/structure/table, -/obj/item/storage/box/chemimp{ - pixel_x = 6; - pixel_y = 19 - }, -/obj/item/storage/box/handcuffs{ - pixel_x = -6; - pixel_y = 19 - }, -/obj/item/storage/box/flashbangs{ - pixel_x = 6; - pixel_y = 1 - }, -/obj/item/storage/box/trackimp{ - pixel_x = -6; - pixel_y = 1 - }, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 4 - }, -/obj/machinery/camera/autoname/directional/west, -/turf/open/floor/iron/dark, -/area/station/security/lockers) "tNE" = ( /turf/open/floor/plating, /area/station/maintenance/aft/upper) @@ -56302,22 +56463,6 @@ /obj/item/crowbar/large/old, /turf/open/misc/asteroid, /area/station/asteroid) -"tOx" = ( -/obj/machinery/button/door/directional/west{ - id = "atmos"; - name = "Atmospherics Lockdown"; - req_access = list("atmospherics") - }, -/obj/machinery/light_switch/directional/west{ - pixel_x = -35 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/iron/dark/corner{ - dir = 1 - }, -/area/station/engineering/atmos/storage/gas) "tOA" = ( /obj/machinery/door/airlock/highsecurity{ name = "Gravity Generator Room" @@ -56388,23 +56533,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/large, /area/station/service/hydroponics/garden) -"tPR" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/structure/sign/directions/evac/directional/east{ - dir = 8 - }, -/obj/structure/sign/directions/science/directional/east{ - dir = 1; - pixel_y = -8 - }, -/obj/structure/sign/directions/medical/directional/east{ - dir = 8; - pixel_y = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "tPW" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/circuit/green, @@ -56475,34 +56603,6 @@ }, /turf/open/floor/glass, /area/station/command/meeting_room) -"tQW" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/table/wood/fancy/orange, -/obj/item/stamp{ - pixel_x = 7; - pixel_y = 9 - }, -/obj/item/stamp/denied{ - pixel_x = 7; - pixel_y = 4 - }, -/obj/item/stamp/head/qm{ - pixel_x = 7; - pixel_y = -2 - }, -/obj/item/clipboard{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/machinery/firealarm/directional/east, -/obj/item/computer_disk/quartermaster{ - pixel_x = -6; - pixel_y = 4 - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "tRb" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, @@ -56695,16 +56795,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/warden) -"tUB" = ( -/obj/machinery/conveyor{ - id = "garbage" - }, -/obj/machinery/door/window/left/directional/east{ - name = "Danger: Conveyor Access"; - req_access = list("maint_tunnels") - }, -/turf/open/floor/plating, -/area/station/maintenance/disposal) "tUD" = ( /obj/structure/cable, /turf/open/floor/iron/dark/side{ @@ -56893,22 +56983,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"tXO" = ( -/obj/effect/turf_decal/tile/red/anticorner/contrasted, -/obj/structure/bed/dogbed/mcgriff, -/mob/living/basic/pet/dog/pug/mcgriff, -/obj/machinery/button/flasher{ - id = "control1"; - pixel_x = 28; - pixel_y = 6 - }, -/obj/machinery/button/flasher{ - id = "control2"; - pixel_x = -6; - pixel_y = -23 - }, -/turf/open/floor/iron, -/area/station/security/warden) "tXS" = ( /obj/machinery/mechpad, /obj/machinery/light_switch/directional/south, @@ -57008,19 +57082,6 @@ }, /turf/open/floor/wood, /area/station/service/theater) -"tZY" = ( -/obj/machinery/portable_atmospherics/canister/anesthetic_mix, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/door/window/right/directional/north{ - name = "Anti Assistant Protection Door"; - req_access = list("medical") - }, -/obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/iron/white, -/area/station/medical/treatment_center) "uab" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, @@ -57073,6 +57134,23 @@ /obj/structure/closet/secure_closet/personal/cabinet, /turf/open/floor/carpet, /area/station/medical/psychology) +"uaH" = ( +/obj/machinery/iv_drip, +/obj/machinery/button/door/directional/west{ + id = "r2"; + name = "Bolt Control"; + normaldoorcontrol = 1; + pixel_y = 6; + specialfunctions = 4 + }, +/obj/machinery/button/door/directional/west{ + id = "r2p"; + name = "Privacy Control"; + pixel_y = -6 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/patients_rooms/room_b) "uaK" = ( /obj/machinery/libraryscanner, /obj/machinery/airalarm/directional/north, @@ -57192,17 +57270,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron, /area/station/cargo/storage) -"uda" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=2"; - location = "Medical" - }, -/obj/machinery/door/window/left/directional/north{ - name = "MuleBot Access"; - req_access = list("shipping") - }, -/turf/open/floor/plating, -/area/station/maintenance/department/medical/central) "udf" = ( /obj/structure/cable, /obj/effect/decal/cleanable/oil, @@ -57349,14 +57416,6 @@ dir = 4 }, /area/station/science/xenobiology) -"ufE" = ( -/obj/machinery/door/poddoor/shutters{ - id = "warehouse"; - name = "Warehouse Shutters" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "ufV" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/cable, @@ -57400,15 +57459,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/commons/storage/primary) -"ugt" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old{ - icon_state = "gib3-old" - }, -/mob/living/basic/mimic/crate, -/turf/open/floor/iron/white, -/area/station/maintenance/aft/upper) "ugu" = ( /obj/effect/spawner/random/trash/mess, /obj/structure/cable, @@ -57524,6 +57574,21 @@ /obj/machinery/recharge_station, /turf/open/floor/iron, /area/station/science/robotics/mechbay) +"uik" = ( +/obj/structure/table/wood, +/obj/item/food/grown/poppy, +/obj/item/food/grown/poppy{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/book/bible{ + pixel_x = 16; + pixel_y = 3 + }, +/turf/open/floor/iron/chapel{ + dir = 4 + }, +/area/station/service/chapel) "uir" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 8 @@ -57626,16 +57691,6 @@ }, /turf/open/floor/plating, /area/station/medical/pharmacy) -"ukb" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/structure/sign/poster/random/directional/north, -/turf/open/floor/iron, -/area/station/service/hydroponics) "ukl" = ( /obj/machinery/door/airlock/external{ name = "Solar Maintenance" @@ -57968,17 +58023,6 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"uql" = ( -/obj/machinery/door/poddoor/shutters{ - dir = 1; - id = "ordauxgarage" - }, -/obj/effect/turf_decal/sand/plating, -/obj/effect/turf_decal/stripes/asteroid/end{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/science/ordnance) "uqr" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, @@ -58020,6 +58064,14 @@ /obj/item/stamp/head/ce, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) +"ura" = ( +/obj/structure/closet/crate/science{ + icon_state = "scicrateopen"; + opened = 1 + }, +/obj/effect/decal/cleanable/greenglow/radioactive, +/turf/open/misc/asteroid, +/area/station/asteroid) "urc" = ( /obj/effect/landmark/start/station_engineer, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58044,6 +58096,19 @@ /obj/machinery/light/small/directional/south, /turf/open/misc/asteroid, /area/station/maintenance/department/science) +"urx" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/service/hydroponics) "urz" = ( /obj/effect/landmark/start/cargo_technician, /obj/effect/turf_decal/tile/brown/half/contrasted{ @@ -58051,6 +58116,14 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"urC" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/middle, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + id = "chemsat" + }, +/turf/open/floor/plating, +/area/station/medical/chemistry/minisat) "urP" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -58130,6 +58203,14 @@ }, /turf/open/floor/grass, /area/station/service/hydroponics/garden) +"usL" = ( +/obj/machinery/lift_indicator{ + linked_elevator_id = "aisat"; + pixel_x = -6; + pixel_y = -3 + }, +/turf/closed/wall/r_wall, +/area/station/ai_monitored/turret_protected/aisat_interior) "usQ" = ( /obj/effect/turf_decal/tile/yellow, /obj/item/kirbyplants/random, @@ -58253,14 +58334,6 @@ }, /turf/open/floor/engine, /area/station/command/corporate_dock) -"uvf" = ( -/obj/effect/spawner/random/trash/mess, -/obj/machinery/door/airlock/maintenance, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/any/science/general, -/obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/port/lesser) "uvl" = ( /obj/machinery/door/airlock/virology/glass{ name = "Biohazard Gear" @@ -58408,6 +58481,14 @@ dir = 1 }, /area/station/engineering/atmos/upper) +"uym" = ( +/obj/machinery/light/small/dim/directional/south, +/obj/structure/chair/office{ + dir = 4; + name = "grimy chair" + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) "uyu" = ( /obj/structure/railing/corner{ dir = 8 @@ -58462,14 +58543,6 @@ dir = 8 }, /area/station/command/corporate_showroom) -"uzE" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "r2p" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/medical/patients_rooms/room_b) "uzH" = ( /turf/open/floor/iron, /area/station/commons/locker) @@ -58640,6 +58713,29 @@ }, /turf/open/floor/iron/white, /area/station/medical/paramedic) +"uCy" = ( +/obj/structure/rack, +/obj/structure/window/spawner/directional/north, +/obj/machinery/door/window/left/directional/west{ + name = "Magboot Storage"; + req_access = list("eva") + }, +/obj/machinery/door/window/right/directional/east{ + name = "Magboot Storage"; + req_access = list("eva") + }, +/obj/item/clothing/shoes/magboots{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/clothing/shoes/magboots, +/obj/item/clothing/shoes/magboots{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) "uCS" = ( /obj/machinery/telecomms/receiver/preset_right, /turf/open/floor/circuit/green/telecomms/mainframe, @@ -58790,14 +58886,6 @@ }, /turf/open/floor/iron, /area/station/cargo/lobby) -"uFA" = ( -/obj/structure/transport/linear/public{ - base_icon_state = "catwalk"; - icon = 'icons/obj/smooth_structures/catwalk.dmi'; - icon_state = "catwalk-13" - }, -/turf/open/openspace, -/area/station/ai_monitored/turret_protected/aisat_interior) "uFC" = ( /turf/closed/wall/r_wall, /area/station/engineering/supermatter/room) @@ -58836,15 +58924,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/prison) -"uGN" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/cup/glass/coffee, -/obj/item/reagent_containers/cup/glass/coffee/no_lid{ - pixel_x = 12; - pixel_y = 6 - }, -/turf/open/floor/carpet, -/area/station/command/corporate_showroom) "uGS" = ( /obj/structure/chair/office/tactical{ dir = 8 @@ -58947,18 +59026,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"uIV" = ( -/obj/machinery/disposal/bin, -/obj/machinery/button/door/directional/east{ - id = "geneshut"; - name = "Genetics Shutters" - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/white/textured, -/area/station/science/genetics) "uIW" = ( /obj/machinery/light/small/directional/east, /obj/effect/turf_decal/stripes/line{ @@ -59006,20 +59073,6 @@ }, /turf/open/floor/iron, /area/station/security) -"uJQ" = ( -/obj/machinery/door/airlock/security/glass{ - id_tag = "secentrylock"; - name = "Security Entry" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "brig-entrance" - }, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/security/entrance, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/security/brig/entrance) "uJV" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -59065,6 +59118,14 @@ }, /turf/open/floor/holofloor/dark, /area/station/command/heads_quarters/cmo) +"uKA" = ( +/obj/structure/transport/linear/public{ + base_icon_state = "catwalk"; + icon = 'icons/obj/smooth_structures/catwalk.dmi'; + icon_state = "catwalk-14" + }, +/turf/open/openspace, +/area/station/ai_monitored/turret_protected/aisat_interior) "uLh" = ( /obj/structure/cable, /obj/machinery/camera/autoname/directional/north, @@ -59082,6 +59143,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_white, /area/station/hallway/secondary/entry) +"uLj" = ( +/obj/machinery/door/poddoor/shutters/window{ + dir = 8; + id = "gateshutter"; + name = "Gateway Access Shutter" + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/command/gateway) "uLm" = ( /obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/cyclelink_helper, @@ -59219,6 +59289,29 @@ /obj/effect/turf_decal/siding/white, /turf/open/floor/iron/herringbone, /area/station/commons/fitness/recreation) +"uNy" = ( +/obj/structure/table, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/signaler{ + pixel_x = 12; + pixel_y = 6 + }, +/obj/item/assembly/signaler{ + pixel_x = 12; + pixel_y = 6 + }, +/obj/item/assembly/signaler{ + pixel_x = 12; + pixel_y = 6 + }, +/obj/item/assembly/signaler{ + pixel_x = 12; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "uNK" = ( /obj/effect/decal/cleanable/robot_debris/old, /obj/effect/decal/cleanable/dirt, @@ -59286,6 +59379,11 @@ }, /turf/open/floor/carpet/executive, /area/station/command/meeting_room) +"uOu" = ( +/obj/machinery/light/directional/north, +/obj/item/assembly/mousetrap/armed, +/turf/open/floor/plating, +/area/station/hallway/secondary/service) "uOx" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -59333,16 +59431,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/large, /area/station/service/hydroponics/garden) -"uPb" = ( -/obj/item/flashlight/flare/candle{ - icon_state = "candle1_lit"; - pixel_y = 12; - start_on = 1 - }, -/obj/structure/broken_flooring/side/directional/west, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "uPg" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 9 @@ -59596,6 +59684,19 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) +"uUZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/hobo_squat, +/obj/machinery/button/curtain{ + id = "neverstopgambling"; + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/station/maintenance/central/lesser) "uVe" = ( /obj/machinery/disposal/bin{ desc = "A pneumatic waste disposal unit. This one leads into space!"; @@ -59820,13 +59921,6 @@ }, /turf/open/floor/iron, /area/station/security/office) -"uYE" = ( -/obj/machinery/conveyor/auto{ - dir = 1; - id = "bridgedeliver" - }, -/turf/open/floor/plating/airless, -/area/station/maintenance/department/science) "uYG" = ( /turf/closed/wall/r_wall, /area/station/maintenance/aft/upper) @@ -59952,17 +60046,6 @@ /obj/machinery/light/dim/directional/west, /turf/open/floor/iron/white, /area/station/science/ordnance/testlab) -"vbx" = ( -/obj/structure/table, -/obj/item/taperecorder, -/obj/item/radio/intercom/directional/south{ - broadcasting = 1; - frequency = 1423; - listening = 0; - name = "Interrogation Intercom" - }, -/turf/open/floor/iron/dark/textured, -/area/station/security/interrogation) "vbF" = ( /obj/effect/spawner/random/structure/grille, /obj/machinery/atmospherics/pipe/smart/simple/supply/visible/layer4, @@ -60177,6 +60260,20 @@ /obj/machinery/light/directional/south, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) +"vgh" = ( +/obj/machinery/door/airlock/security/glass{ + id_tag = "secentrylock"; + name = "Security Entry" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "brig-entrance" + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "vgq" = ( /obj/structure/railing{ dir = 6 @@ -60218,6 +60315,15 @@ /obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2, /turf/open/floor/catwalk_floor, /area/station/maintenance/department/medical/central) +"vhz" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "psychshutter"; + name = "Privacy Shutters" + }, +/turf/open/floor/plating, +/area/station/medical/psychology) "vhH" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/item/gun/ballistic/shotgun/doublebarrel, @@ -60326,6 +60432,17 @@ /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron, /area/station/security/warden) +"vjB" = ( +/obj/machinery/door/poddoor/shutters{ + dir = 1; + id = "ordauxgarage" + }, +/obj/effect/turf_decal/sand/plating, +/obj/effect/turf_decal/stripes/asteroid/end{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/science/ordnance) "vjD" = ( /obj/structure/cable, /obj/structure/sign/poster/random/directional/north, @@ -60370,27 +60487,25 @@ /obj/effect/turf_decal/stripes/full, /turf/open/floor/iron, /area/station/science/robotics/mechbay) -"vkH" = ( -/obj/machinery/disposal/bin, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/machinery/button/door/directional/west{ - id = "pharmacy_shutters"; - name = "Privacy Control"; - pixel_y = -6 - }, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 9 +"vkv" = ( +/obj/item/stock_parts/power_store/cell/bluespace{ + pixel_x = -5; + pixel_y = -8; + rigged = 1 }, -/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ - dir = 1 +/turf/open/misc/asteroid, +/area/station/asteroid) +"vkx" = ( +/obj/machinery/recycler{ + dir = 4 }, -/obj/structure/disposalpipe/trunk, -/obj/machinery/light_switch/directional/west{ - pixel_y = 6 +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" }, -/turf/open/floor/iron/white/smooth_corner, -/area/station/medical/pharmacy) +/obj/structure/window/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/disposal) "vkM" = ( /obj/machinery/light_switch/directional/north, /obj/structure/easel, @@ -60607,6 +60722,13 @@ /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron, /area/station/engineering/lobby) +"voI" = ( +/obj/structure/chair/comfy/brown{ + dir = 8; + name = "Chief Engineer" + }, +/turf/open/floor/carpet/executive, +/area/station/command/meeting_room) "voQ" = ( /obj/machinery/computer/rdconsole, /obj/item/radio/intercom/directional/north, @@ -60616,26 +60738,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron/dark, /area/station/engineering/gravity_generator) -"vpd" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/button/door/directional/south{ - id = "capshut"; - name = "shutter control"; - pixel_x = -8 - }, -/obj/machinery/fax{ - fax_name = "Captain's Office"; - name = "Captain's Fax Machine" - }, -/obj/structure/table/reinforced, -/obj/machinery/keycard_auth/wall_mounted/directional/south{ - pixel_x = 8; - pixel_y = -24 - }, -/turf/open/floor/carpet/royalblue, -/area/station/command/heads_quarters/captain/private) "vpf" = ( /obj/machinery/suit_storage_unit/atmos, /obj/effect/turf_decal/stripes/line{ @@ -60761,38 +60863,11 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/large, /area/station/commons/locker) -"vqZ" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - dir = 8; - id = "xbprotect1"; - name = "Security Shutters" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/science/xenobiology) "vrF" = ( /turf/open/floor/iron/stairs/right{ dir = 8 }, /area/station/service/theater) -"vrQ" = ( -/obj/machinery/status_display/door_timer{ - id = "Cell 3"; - name = "Cell 3"; - pixel_x = 32; - pixel_y = 32 - }, -/obj/machinery/status_display/door_timer{ - id = "Cell 2"; - name = "Cell 2"; - pixel_x = -32; - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron, -/area/station/security/brig) "vrR" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/wood, @@ -60830,6 +60905,16 @@ /obj/effect/mapping_helpers/mail_sorting/service/dormitories, /turf/open/floor/iron, /area/station/hallway/primary/central) +"vsQ" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/structure/chair{ + dir = 8; + name = "Judge" + }, +/turf/open/floor/wood/tile, +/area/station/security/courtroom) "vtg" = ( /obj/structure/table/wood/fancy/green, /obj/effect/spawner/random/aimodule/harmless, @@ -61135,6 +61220,20 @@ }, /turf/open/floor/iron/dark, /area/station/security/warden) +"vAj" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron/fifty{ + pixel_x = -7; + pixel_y = 7 + }, +/obj/item/stack/sheet/plasteel{ + amount = 10; + pixel_x = 7; + pixel_y = 7 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/turf/open/floor/iron, +/area/station/engineering/storage) "vAm" = ( /obj/structure/lattice/catwalk, /obj/effect/decal/remains/human, @@ -61464,6 +61563,24 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"vFT" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/obj/effect/spawner/random/trash/graffiti{ + pixel_x = -32; + spawn_loot_chance = 50 + }, +/obj/machinery/light/small/dim/directional/north, +/obj/machinery/button/door/directional/south{ + id = "u2"; + name = "privacy bolt control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet/restrooms) "vFY" = ( /turf/open/floor/wood, /area/station/service/cafeteria) @@ -61549,6 +61666,16 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"vHi" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/structure/chair{ + dir = 8; + name = "Judge" + }, +/turf/open/floor/wood/tile, +/area/station/security/courtroom) "vHA" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -61620,28 +61747,6 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"vJt" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/girder/displaced, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) -"vJz" = ( -/obj/machinery/iv_drip, -/obj/machinery/button/door/directional/west{ - id = "r2"; - name = "Bolt Control"; - normaldoorcontrol = 1; - pixel_y = 6; - specialfunctions = 4 - }, -/obj/machinery/button/door/directional/west{ - id = "r2p"; - name = "Privacy Control"; - pixel_y = -6 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/white, -/area/station/medical/patients_rooms/room_b) "vJE" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -61688,6 +61793,16 @@ /obj/structure/barricade/wooden/crude, /turf/open/misc/asteroid, /area/station/maintenance/central/greater) +"vKR" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/iron, +/area/station/service/hydroponics) "vKV" = ( /obj/machinery/atmospherics/components/unary/passive_vent{ dir = 8 @@ -61960,24 +62075,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/chemistry/minisat) -"vPl" = ( -/obj/structure/toilet{ - dir = 1 - }, -/obj/effect/landmark/start/hangover, -/obj/effect/spawner/random/trash/graffiti{ - pixel_y = -32; - spawn_loot_chance = 50 - }, -/obj/machinery/light/small/dim/directional/east, -/obj/machinery/button/door/directional/west{ - id = "u5"; - name = "privacy bolt control"; - normaldoorcontrol = 1; - specialfunctions = 4 - }, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet/restrooms) "vPn" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 1 @@ -62070,6 +62167,15 @@ }, /turf/open/floor/engine, /area/station/medical/chemistry) +"vQw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "boutique"; + name = "Countertheft Shutters" + }, +/turf/open/floor/plating, +/area/station/cargo/boutique) "vQB" = ( /turf/closed/wall, /area/station/cargo/boutique) @@ -62396,14 +62502,6 @@ }, /turf/open/floor/engine, /area/station/hallway/secondary/entry) -"vVG" = ( -/obj/machinery/turretid{ - control_area = /area/station/tcommsat/server; - name = "Telecomms turret control"; - req_access = list("tcomms") - }, -/turf/closed/wall/r_wall, -/area/station/tcommsat/server) "vVW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock/maintenance, @@ -62486,28 +62584,6 @@ dir = 1 }, /area/station/engineering/atmos/upper) -"vXQ" = ( -/obj/machinery/button/door/directional/south{ - id = "Secure Storage"; - name = "Secure Storage Control"; - req_access = list("engine_equip") - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 6 - }, -/obj/structure/cable, -/obj/machinery/button/door/directional/south{ - id = "atmos"; - name = "Atmospherics Lockdown"; - pixel_y = -34; - req_access = list("atmospherics") - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/ce) "vXS" = ( /obj/structure/broken_flooring/side, /obj/effect/decal/cleanable/dirt/dust, @@ -62780,6 +62856,17 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, /area/station/cargo/miningoffice) +"wdu" = ( +/obj/structure/table, +/obj/item/taperecorder, +/obj/item/radio/intercom/directional/south{ + broadcasting = 1; + frequency = 1423; + listening = 0; + name = "Interrogation Intercom" + }, +/turf/open/floor/iron/dark/textured, +/area/station/security/interrogation) "wdx" = ( /obj/structure/broken_flooring/side{ dir = 4 @@ -62906,6 +62993,13 @@ /obj/structure/marker_beacon/burgundy, /turf/open/space/basic, /area/space/nearstation) +"wfN" = ( +/obj/machinery/atmospherics/components/unary/bluespace_sender{ + dir = 4; + initialize_directions = 4 + }, +/turf/open/floor/iron/textured, +/area/station/engineering/atmos) "wfW" = ( /obj/structure/lattice/catwalk, /obj/item/food/pie/cream, @@ -63242,22 +63336,6 @@ /obj/effect/turf_decal/stripes, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) -"wmA" = ( -/obj/machinery/door/poddoor/shutters{ - id = "secwarehouse"; - name = "Secure Warehouse Shutters" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/cargo/warehouse/upper) -"wmE" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "wmO" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/glass/reinforced, @@ -63443,23 +63521,6 @@ /obj/effect/decal/cleanable/greenglow, /turf/open/floor/iron/white, /area/station/medical/chemistry/minisat) -"wqw" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/machinery/button/door/directional/north{ - id = "triage"; - name = "triage button"; - normaldoorcontrol = 1; - pixel_x = -26 - }, -/obj/machinery/button/ticket_machine{ - pixel_x = -26; - pixel_y = 36 - }, -/turf/open/floor/iron/white, -/area/station/medical/exam_room) "wqB" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -63487,25 +63548,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/circuit/green, /area/station/ai_monitored/command/nuke_storage) -"wrf" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/structure/sign/directions/security/directional/west{ - dir = 1 - }, -/obj/structure/sign/directions/supply/directional/west{ - dir = 1; - pixel_y = 8 - }, -/obj/structure/sign/directions/science/directional/west{ - dir = 1; - pixel_y = -8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "wrx" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 1 @@ -63718,6 +63760,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/main) +"wuY" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom{ + dir = 1 + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "wvc" = ( /obj/structure/railing{ dir = 4 @@ -63742,6 +63791,15 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/prison) +"wvt" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, +/obj/machinery/door/poddoor/shutters{ + id = "boutique"; + name = "Countertheft Shutters" + }, +/turf/open/floor/wood/parquet, +/area/station/cargo/boutique) "wvC" = ( /obj/machinery/vending/wardrobe/medi_wardrobe, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -63946,6 +64004,29 @@ /obj/structure/flora/tree/palm/style_random, /turf/open/floor/grass, /area/station/science/genetics) +"wAa" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/structure/table, +/obj/item/reagent_containers/cup/bottle/multiver{ + pixel_x = -5; + pixel_y = 9 + }, +/obj/item/reagent_containers/cup/bottle/epinephrine{ + pixel_x = 8; + pixel_y = 9 + }, +/obj/item/reagent_containers/syringe{ + pixel_y = -3 + }, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/security/medical) "wAm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/showroomfloor, @@ -64658,19 +64739,32 @@ }, /turf/open/floor/iron/dark, /area/station/medical/chemistry/minisat) -"wMs" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - dir = 8; - id = "xbprotect3"; - name = "Security Shutters" +"wMn" = ( +/obj/structure/table, +/obj/item/storage/box/prisoner{ + pixel_x = -6; + pixel_y = 8 }, -/obj/effect/turf_decal/caution/stand_clear{ - dir = 4 +/obj/item/storage/box/prisoner{ + pixel_x = -6; + pixel_y = 4 }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark/textured_large, -/area/station/science/xenobiology) +/obj/item/storage/box/hug{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/storage/box/bodybags{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/item/radio/intercom/prison/directional/south, +/obj/item/razor{ + pixel_x = -8; + pixel_y = 3 + }, +/obj/item/paper/fluff/genpop_instructions, +/turf/open/floor/iron/dark/textured, +/area/station/security/execution/transfer) "wMt" = ( /obj/structure/table, /obj/item/stack/sheet/glass/fifty, @@ -64851,13 +64945,6 @@ /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/ai_upload_foyer) -"wPE" = ( -/obj/machinery/door/poddoor/shutters/window{ - id = "incstorage"; - name = "Incinerator Storage Shutters" - }, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "wPU" = ( /obj/machinery/light/small/directional/west, /turf/open/misc/asteroid, @@ -65100,22 +65187,6 @@ }, /turf/open/floor/wood, /area/station/service/theater) -"wVo" = ( -/obj/structure/table, -/obj/item/toy/plush/slimeplushie{ - pixel_x = 3; - pixel_y = 12 - }, -/obj/item/stamp{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/stamp/denied{ - pixel_x = 4; - pixel_y = 1 - }, -/turf/open/floor/glass/reinforced, -/area/station/science/xenobiology) "wVz" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/effect/decal/cleanable/dirt/dust, @@ -65123,22 +65194,6 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron, /area/station/security/evidence) -"wVE" = ( -/obj/machinery/door/airlock/security/glass{ - id_tag = "secentrylock"; - name = "Security Entry" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "brig-entrance" - }, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/security/entrance, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/security/brig/entrance) "wVI" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, @@ -65286,6 +65341,15 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/catwalk_floor/iron_dark, /area/station/ai_monitored/turret_protected/aisat/uppersouth) +"wYo" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/item/toy/figure/cmo{ + pixel_x = -1; + pixel_y = 9 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron/dark/textured, +/area/station/command/heads_quarters/cmo) "wYI" = ( /obj/machinery/door/airlock/command, /obj/effect/mapping_helpers/airlock/access/all/science/rd, @@ -65444,6 +65508,19 @@ /obj/effect/turf_decal/siding/purple/corner, /turf/open/floor/iron/white/smooth_large, /area/station/science/research) +"xaC" = ( +/obj/machinery/portable_atmospherics/canister/anesthetic_mix, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/door/window/right/directional/north{ + name = "Anti Assistant Protection Door"; + req_access = list("medical") + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) "xaH" = ( /obj/structure/filingcabinet, /obj/machinery/button/ticket_machine{ @@ -65544,17 +65621,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/science) -"xby" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=1"; - location = "Science" - }, -/obj/machinery/door/window/right/directional/south{ - name = "MuleBot Access"; - req_access = list("shipping") - }, -/turf/open/floor/plating, -/area/station/maintenance/port/lesser) "xbC" = ( /obj/effect/turf_decal/siding/purple{ dir = 4 @@ -65619,21 +65685,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"xcS" = ( -/obj/structure/table, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/obj/item/reagent_containers/cup/beaker/large{ - pixel_x = -5 - }, -/obj/item/storage/box/beakers{ - pixel_x = 7; - pixel_y = 3 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) "xdf" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -65753,32 +65804,6 @@ /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/ai_upload) -"xfs" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/item/toy/figure/cmo{ - pixel_x = -1; - pixel_y = 9 - }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/dark/textured, -/area/station/command/heads_quarters/cmo) -"xfB" = ( -/obj/machinery/computer/pod/old/mass_driver_controller/trash{ - id = "captaindriver"; - pixel_x = -24 - }, -/obj/effect/turf_decal/stripes/corner, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/command/heads_quarters/captain/private) "xfJ" = ( /obj/machinery/door/window/brigdoor/right/directional/west{ req_access = list("xenobiology") @@ -65905,20 +65930,6 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron/white/smooth_large, /area/station/science/xenobiology/hallway) -"xif" = ( -/obj/machinery/door/airlock/medical/glass{ - id_tag = "triage"; - name = "Triage" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/medical/general, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white, -/area/station/medical/exam_room) "xih" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/machinery/camera/autoname/directional/south{ @@ -66099,18 +66110,6 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/plating, /area/station/science/robotics/storage) -"xln" = ( -/obj/machinery/door/window/left/directional/east{ - name = "Library Desk Door"; - req_access = list("library") - }, -/obj/effect/turf_decal/siding/wood/end{ - dir = 4 - }, -/obj/machinery/light/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood, -/area/station/service/library) "xlo" = ( /obj/effect/turf_decal/stripes/corner{ dir = 8 @@ -66174,17 +66173,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/lobby) -"xme" = ( -/obj/structure/cable, -/obj/machinery/button/door/directional/east{ - id = "xbprotect"; - name = "shutter control" - }, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/item/kirbyplants/random, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "xmy" = ( /obj/effect/turf_decal/trimline/yellow/filled/corner{ dir = 4 @@ -66249,16 +66237,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/science/xenobiology) -"xnh" = ( -/obj/structure/closet/crate/science{ - icon_state = "scicrateopen"; - opened = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/stripes/line, -/obj/item/tank, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "xnl" = ( /obj/structure/cable, /obj/item/radio/intercom/directional/west, @@ -66421,6 +66399,20 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/prison/garden) +"xrd" = ( +/obj/structure/table, +/obj/machinery/light/directional/east, +/obj/item/reagent_containers/cup/glass/mug/tea{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/food/butterbiscuit{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/secondary/exit/departure_lounge) "xrt" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/item/organ/horns, @@ -66438,6 +66430,14 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"xrH" = ( +/obj/structure/transport/linear/public{ + base_icon_state = "catwalk"; + icon = 'icons/obj/smooth_structures/catwalk.dmi'; + icon_state = "catwalk-21" + }, +/turf/open/floor/plating/elevatorshaft, +/area/station/cargo/storage) "xrO" = ( /obj/item/bedsheet/mime, /obj/structure/bed/maint, @@ -66469,13 +66469,6 @@ }, /turf/open/floor/wood, /area/station/commons/lounge) -"xrZ" = ( -/obj/machinery/camera/motion/directional/north{ - c_tag = "Secure - AI Upper External South"; - network = list("aicore") - }, -/turf/open/space/openspace, -/area/space/nearstation) "xsj" = ( /obj/machinery/netpod, /obj/structure/cable, @@ -66588,13 +66581,6 @@ }, /turf/open/floor/iron/white, /area/station/science/research) -"xuc" = ( -/obj/structure/chair/comfy/brown{ - dir = 8; - name = "Chief Engineer" - }, -/turf/open/floor/carpet/executive, -/area/station/command/meeting_room) "xun" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted, /obj/machinery/disposal/bin, @@ -66627,6 +66613,17 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos/pumproom) +"xuK" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/left/directional/south{ + name = "Reception Desk"; + req_access = list("medical") + }, +/obj/machinery/door/firedoor, +/obj/effect/spawner/random/bureaucracy/folder, +/obj/effect/spawner/random/bureaucracy/pen, +/turf/open/floor/iron/white, +/area/station/medical/exam_room) "xuR" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -66654,6 +66651,22 @@ /obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, /turf/open/floor/iron, /area/station/engineering/atmos) +"xvo" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ordstorage" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/button/door/directional/east{ + id = "ordstorage"; + name = "Ordnance Storage Shutter Control"; + req_access = list("ordnance") + }, +/obj/effect/turf_decal/caution/stand_clear/red, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "xvr" = ( /obj/machinery/computer/prisoner/management{ dir = 1 @@ -66858,6 +66871,17 @@ }, /turf/open/floor/iron, /area/station/commons/locker) +"xzp" = ( +/obj/docking_port/stationary{ + dir = 2; + dwidth = 2; + height = 13; + name = "port bay 2"; + shuttle_id = "ferry_home"; + width = 5 + }, +/turf/open/floor/engine, +/area/station/command/corporate_dock) "xzG" = ( /obj/item/kirbyplants/random, /turf/open/floor/iron/white, @@ -67087,6 +67111,15 @@ }, /turf/open/misc/asteroid, /area/station/asteroid) +"xDf" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + dir = 8; + id = "xbprotect1"; + name = "Security Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/xenobiology) "xDh" = ( /obj/structure/sign/picture_frame/showroom/three{ pixel_x = -8; @@ -67134,30 +67167,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"xDz" = ( -/obj/structure/rack, -/obj/structure/window/spawner/directional/north, -/obj/structure/window/spawner/directional/south, -/obj/machinery/door/window/right/directional/west{ - name = "Jetpack Storage"; - req_access = list("eva") - }, -/obj/machinery/door/window/left/directional/east{ - name = "Jetpack Storage"; - req_access = list("eva") - }, -/obj/item/tank/jetpack/carbondioxide{ - pixel_y = 2 - }, -/obj/item/tank/jetpack/carbondioxide{ - pixel_y = -2 - }, -/obj/item/tank/jetpack/carbondioxide{ - pixel_y = 4 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/storage/eva) "xDI" = ( /obj/machinery/light/floor, /turf/open/floor/iron/dark/smooth_large, @@ -67200,6 +67209,17 @@ /obj/effect/turf_decal/bot_red, /turf/open/floor/iron/white, /area/station/science/lobby) +"xEW" = ( +/obj/structure/closet/toolcloset, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 1 + }, +/obj/item/clothing/gloves/color/yellow{ + name = "unsulated gloves"; + siemens_coefficient = 5 + }, +/turf/open/floor/iron, +/area/station/commons/storage/tools) "xEZ" = ( /obj/structure/lattice/catwalk, /obj/structure/cable, @@ -67260,21 +67280,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) -"xGl" = ( -/obj/effect/turf_decal/tile/dark_red/opposingcorners, -/obj/structure/table, -/obj/item/book/manual/wiki/barman_recipes{ - pixel_x = -4; - pixel_y = 7 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/holosign_creator/robot_seat/bar{ - pixel_y = 4; - pixel_x = 6 - }, -/obj/item/clothing/head/hats/tophat, -/turf/open/floor/iron/dark, -/area/station/service/bar) "xGo" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 6 @@ -67404,34 +67409,6 @@ "xIV" = ( /turf/closed/wall/r_wall, /area/station/engineering/supermatter) -"xJc" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ - dir = 4 - }, -/obj/item/hand_labeler{ - pixel_x = 3; - pixel_y = 5 - }, -/obj/item/storage/pill_bottle/epinephrine{ - pixel_x = -9; - pixel_y = 1 - }, -/obj/item/stack/sheet/mineral/plasma{ - pixel_x = 3; - pixel_y = 14 - }, -/obj/item/hand_labeler_refill{ - pixel_x = 10; - pixel_y = -2 - }, -/turf/open/floor/iron/white/smooth_edge{ - dir = 4 - }, -/area/station/medical/pharmacy) "xJd" = ( /obj/effect/spawner/random/decoration/glowstick, /obj/effect/mapping_helpers/broken_floor, @@ -67464,15 +67441,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/ordnance/storage) -"xJL" = ( -/obj/structure/rack, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/storage/fancy/cigarettes{ - name = "\proper marlboro"; - rigged_omen = 1 - }, -/turf/open/floor/plating, -/area/station/commons/storage/art) "xJQ" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -67515,6 +67483,19 @@ "xKo" = ( /turf/closed/wall, /area/station/maintenance/port/greater) +"xKp" = ( +/obj/structure/closet/preopen{ + icon_state = "bio"; + name = "level 3 biohazard gear closet" + }, +/obj/effect/turf_decal/tile/green/anticorner/contrasted{ + dir = 8 + }, +/obj/item/radio/intercom/directional/west, +/obj/effect/mapping_helpers/broken_floor, +/obj/item/tank/internals/oxygen, +/turf/open/floor/iron/white/textured, +/area/station/maintenance/department/medical/central) "xKx" = ( /mob/living/basic/mothroach, /turf/open/misc/asteroid, @@ -67595,6 +67576,26 @@ }, /turf/open/floor/iron/dark/textured, /area/station/medical/morgue) +"xNb" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/button/door/directional/south{ + id = "capshut"; + name = "shutter control"; + pixel_x = -8 + }, +/obj/machinery/fax{ + fax_name = "Captain's Office"; + name = "Captain's Fax Machine" + }, +/obj/structure/table/reinforced, +/obj/machinery/keycard_auth/wall_mounted/directional/south{ + pixel_x = 8; + pixel_y = -24 + }, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/captain/private) "xNh" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -67614,6 +67615,28 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/office) +"xNo" = ( +/obj/machinery/light_switch/directional/east, +/obj/structure/table, +/obj/machinery/light/small/directional/east, +/obj/item/reagent_containers/cup/beaker/large{ + pixel_x = 6; + pixel_y = 14 + }, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 10; + pixel_y = 7 + }, +/obj/item/book/manual/wiki/cytology{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/biopsy_tool{ + pixel_x = -14; + pixel_y = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/science/cytology) "xNp" = ( /obj/effect/turf_decal/stripes{ dir = 1 @@ -67742,23 +67765,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"xPX" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/structure/sign/directions/science/directional/north{ - dir = 4 - }, -/obj/structure/sign/directions/engineering/directional/north{ - dir = 4; - pixel_y = 40 - }, -/obj/structure/sign/directions/command/directional/north{ - dir = 4; - pixel_y = 24 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "xPZ" = ( /obj/structure/ladder{ icon_state = "ladder10" @@ -68046,11 +68052,45 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/brig) +"xWN" = ( +/obj/machinery/door/poddoor/shutters/window{ + dir = 8; + id = "gateshutter"; + name = "Gateway Access Shutter" + }, +/turf/open/floor/iron, +/area/station/command/gateway) "xWQ" = ( /obj/structure/cable, /obj/effect/landmark/start/bitrunner, /turf/open/floor/catwalk_floor/iron_dark, /area/station/cargo/bitrunning/den) +"xWR" = ( +/obj/effect/landmark/start/ai/secondary, +/obj/machinery/door/window/brigdoor/right/directional/south{ + name = "Secondary AI Core Access"; + pixel_y = -4; + req_access = list("ai_upload") + }, +/obj/machinery/flasher/directional/west{ + id = "AI"; + pixel_y = -8 + }, +/obj/item/radio/intercom/directional/north{ + freerange = 1; + frequency = 1447; + name = "Private Channel"; + on = 0; + pixel_x = -27 + }, +/obj/item/radio/intercom/directional/north{ + freerange = 1; + listening = 0; + name = "Common Channel"; + pixel_x = 27 + }, +/turf/open/floor/circuit/green, +/area/station/ai_monitored/turret_protected/ai) "xXh" = ( /obj/machinery/power/shieldwallgen, /obj/effect/decal/cleanable/dirt/dust, @@ -68344,27 +68384,6 @@ /obj/structure/sign/poster/random/directional/south, /turf/open/floor/engine, /area/station/science/auxlab/firing_range) -"ycr" = ( -/obj/machinery/door/airlock/virology/glass{ - id_tag = "virology_airlock_exterior"; - name = "Virology Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/medical/virology, -/obj/structure/cable, -/obj/effect/turf_decal/tile/green/fourcorners, -/obj/machinery/door_buttons/access_button{ - dir = 1; - idDoor = "virology_airlock_exterior"; - idSelf = "virology_airlock_control"; - name = "Virology Access Button"; - pixel_y = -24; - req_access = list("virology") - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/medical/virology) "ycs" = ( /obj/effect/spawner/random/engineering/tank, /obj/effect/decal/cleanable/cobweb, @@ -68424,14 +68443,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"ydi" = ( -/obj/machinery/computer/atmos_alert/station_only, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/command/bridge) "ydk" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 1 @@ -68610,6 +68621,28 @@ /obj/effect/spawner/random/contraband/narcotics, /turf/open/floor/iron/white, /area/station/maintenance/aft/upper) +"ygJ" = ( +/obj/machinery/button/door/directional/south{ + id = "Secure Storage"; + name = "Secure Storage Control"; + req_access = list("engine_equip") + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/obj/structure/cable, +/obj/machinery/button/door/directional/south{ + id = "atmos"; + name = "Atmospherics Lockdown"; + pixel_y = -34; + req_access = list("atmospherics") + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/ce) "ygN" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/spawner/random/structure/closet_maintenance, @@ -68741,6 +68774,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/checkpoint/supply) +"yjm" = ( +/obj/item/flashlight/glowstick/orange{ + pixel_x = -5; + pixel_y = -6; + start_on = 1 + }, +/turf/open/misc/asteroid, +/area/station/asteroid) "yjw" = ( /obj/effect/turf_decal/tile/neutral, /obj/structure/chair/sofa/bench{ @@ -68807,6 +68848,18 @@ "ylj" = ( /turf/open/floor/circuit, /area/station/science/robotics/lab) +"ylm" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Fuel Pipe to Incinerator" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/disposal/incinerator) "ylw" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/line{ @@ -78834,7 +78887,7 @@ rnk cLf rnk kIM -czK +hmk rdR rxv aCr @@ -80325,7 +80378,7 @@ htf cEt hzn rNJ -mpg +boQ hPg hPg poi @@ -80887,7 +80940,7 @@ ilk rnk alW rvo -jxY +xKp rnk dnO qvA @@ -81127,7 +81180,7 @@ uyL uyL uyL jDC -ufE +gTS fyn mvp qOG @@ -81384,7 +81437,7 @@ uyL xrU xfN gya -tHn +mXj vaY uEb ryu @@ -81621,9 +81674,9 @@ mxq pRM mxq bTB -tUB +dzr bnv -rFv +vkx mxq pZH uAX @@ -81641,7 +81694,7 @@ hQy icM uyL tnI -ufE +gTS rwf tRf lLk @@ -81876,11 +81929,11 @@ eio eio mxq iPw -eUd +tBe vjZ jtd bPP -cEp +gUa mxq fZg bVs @@ -82119,7 +82172,7 @@ cLf cLf qhP qhP -oqD +jlc rqy bWp vLN @@ -82137,7 +82190,7 @@ qWu vjZ cLm fxr -eRk +tqk mxq uDB mVX @@ -82394,7 +82447,7 @@ xlB jJg cqU tVQ -bhd +blz mxq kMW tRg @@ -82427,11 +82480,11 @@ rnk ryz ryz oue -uzE +fzZ vGn vGn tNP -lyG +fMT kFT kFT phV @@ -82441,7 +82494,7 @@ qIS ojS tpN aju -pFh +gzw dKw amK ckH @@ -82682,11 +82735,11 @@ ldT kJH kWc ryz -vJz +uaH udW qaI vGn -mAr +pzx jgH yds kFT @@ -82698,7 +82751,7 @@ jPO ojS kvW rCD -tZY +xaC dKw dKw dKw @@ -82890,7 +82943,7 @@ baH dUc qhP dJK -rYw +geh mYE wDJ oBt @@ -83187,7 +83240,7 @@ pjw psy ujE nfn -tQW +adg kki wOU tsU @@ -83409,7 +83462,7 @@ qhP cLx qhP cpB -jMb +wAa baO aJr cpB @@ -83462,7 +83515,7 @@ wkK aem kFT kFT -dqP +aeI fvo kFT dKw @@ -83661,10 +83714,10 @@ auW auW toc rcl -jOF +tmT mmy uYI -fMc +wMn cpB niC luz @@ -84201,9 +84254,9 @@ ffF bHI sdc kMr -eXI -jsa -fQL +aZt +rzg +xrH jCX sdc lwW @@ -84458,9 +84511,9 @@ hXb exT uBI jCX -mSv -jYk -oMS +hvA +jPR +pJL jCX xSE twR @@ -84493,8 +84546,8 @@ gkj aPR lUk nnv -iLz -tDM +mNo +pts tYs oaY ceB @@ -84715,9 +84768,9 @@ jdK sEe sdc soZ -dHJ -sTM -evp +fHk +hVQ +fxG jCX sdc aMH @@ -84993,8 +85046,8 @@ rXp ylV wwY bvP -uda -sYq +bMm +dgy jha yec mcl @@ -85785,7 +85838,7 @@ dKw dKw dgp hQg -xif +oRp dgp dgp dgp @@ -85973,7 +86026,7 @@ sfh iHG oBH sAK -laX +byT ppz mhU tUp @@ -86027,7 +86080,7 @@ qfB qfB qfB qfB -vkH +ndR inC dRu gNT @@ -86257,7 +86310,7 @@ vVW koA uWl rSS -mvC +lBu bGc uAe dGB @@ -86277,7 +86330,7 @@ fXn fXn cQm huK -afh +wvt oUd qfB mrr @@ -86526,7 +86579,7 @@ mwS utP aHh vTN -mSF +sha ksl uDA omv @@ -86537,7 +86590,7 @@ gGa vQB oUd qfB -cYE +owr lDl pBz qfB @@ -86559,7 +86612,7 @@ fqF nkf xzG hQg -wqw +eVv sXJ imG dgp @@ -86783,7 +86836,7 @@ bUx utP kEt hmw -jOu +pDu ksl nJs fXn @@ -86815,7 +86868,7 @@ wSf kRl gWe wSf -kDP +xuK uNd mTs hLw @@ -87005,7 +87058,7 @@ jza fLv kaK vAu -sAg +eSE mGG gkt uVk @@ -87040,7 +87093,7 @@ mcS tJC cJC uFc -mSF +sha wgm thZ nTo @@ -87073,7 +87126,7 @@ eYv szq wSf hQg -cuV +fRw llD vxx dgp @@ -87262,7 +87315,7 @@ jza vEX hEI gHS -kHz +drl mGG gkt kcA @@ -87508,7 +87561,7 @@ cLf cLf jza gcb -tNA +qcS bYl jza jza @@ -87571,7 +87624,7 @@ xlw qfB vyO hjW -xJc +dGs rdP qfB rgx @@ -87813,11 +87866,11 @@ aOJ uBw vQB vQB -aTZ -aTZ -aTZ -aTZ -aTZ +vQw +vQw +vQw +vQw +vQw vQB vQB fgi @@ -88087,7 +88140,7 @@ bGD nxG nxG nxG -wrf +hpB nxG nxG tuA @@ -88095,7 +88148,7 @@ nxG vwZ jmu kJT -xJL +fhL kJT cLf dUc @@ -88554,7 +88607,7 @@ uJO azb rRK rRK -oGF +ava vZP qvK rRK @@ -88604,7 +88657,7 @@ prW prW prW prW -iXG +dvz prW tOm hDK @@ -88823,10 +88876,10 @@ aSZ aSZ aSZ aSZ -gCI -bKd +rjs +fNp aSZ -lyl +eGz qRr kmu dxT @@ -88835,9 +88888,9 @@ bAw bAw bAw bAw -qiz -qoB -mEK +uLj +mla +xWN bAw kQj hov @@ -89066,13 +89119,13 @@ skr hBD gpV kaJ -wVE +obc oSB gtX gtX gtX gIb -gyV +aNH lTq naF hGB @@ -89354,7 +89407,7 @@ hUI noF lop bAw -pue +xEW hDV upy xPL @@ -89580,13 +89633,13 @@ oZz iYS dpo nmX -uJQ +vgh fSS qqH hHF bYP dcS -lJn +odp flZ aGa usq @@ -89856,7 +89909,7 @@ rjX rjX iXj rjX -xPX +oez tHF hqz bAw @@ -90342,11 +90395,11 @@ hRv wDo smZ msz -vrQ +oXd cyS oYm cyS -edC +sWp kgT lgG sUz @@ -90378,7 +90431,7 @@ mkR aVp ttT pui -gdr +tnu pui bAw leT @@ -90652,7 +90705,7 @@ rjk aKP maz kAg -sGd +auo fvg rDs agu @@ -91659,7 +91712,7 @@ mHu tHF vAY acc -tFh +uUZ sZV xQk acc @@ -91882,7 +91935,7 @@ vxX wBC rKi kIK -vbx +wdu wBC fYe cLf @@ -92161,13 +92214,13 @@ jAG jAG jAG jAG -mFL -ojN +hHA +oPC dcf sns dpc -pBM -ojN +qRZ +oPC rjX sWC jlp @@ -92420,9 +92473,9 @@ nIb rjX bZj wmX -jWA -cME -gFj +vsQ +nEw +vHi kTP siH rjX @@ -92700,7 +92753,7 @@ lHi dyX uWr hRB -sat +hmg ghQ ait xYz @@ -92910,8 +92963,8 @@ cLf fZF mGX clb -xfB -soi +jmP +mSf axD fYe cLf @@ -93209,15 +93262,15 @@ jrX siG jrX lIr -oEo -otA +uOu +gYF xlX bcX vMC brS lfu -ktx -xGl +jDs +ljU isq mxF tDf @@ -93468,7 +93521,7 @@ mMT mMT mMT mMT -edv +mMT eBb hRB cXe @@ -93722,9 +93775,9 @@ dGc fDN mMT mMT -twW -pTn -mMT +gow +ttc +wuY mMT hwk hRB @@ -93934,7 +93987,7 @@ cLf cLf cLf hrM -mgk +tMK hrM uMA pGf @@ -93979,11 +94032,11 @@ acc fDN mMT uZg -byb -rNs -nlz -rbt -cXL +hIW +gnu +eHh +ovo +lQo enu tGt fTD @@ -94236,9 +94289,9 @@ acc fDN mMT oBU -aAg -cYH -aJv +gDt +dxi +drs mMT drJ shG @@ -94454,7 +94507,7 @@ jpd jRc ruc jcW -vpd +xNb axD eKR sgz @@ -94476,7 +94529,7 @@ aFJ pyo paS mRi -hoY +cZb meF oSa iCV @@ -94493,9 +94546,9 @@ atX mUW mMT fNy -rNs -rNs -dCh +rph +kgL +hIh mMT alP enu @@ -94514,7 +94567,7 @@ rjn kmu rFV tOm -djs +sut hzF hzF hjo @@ -94734,7 +94787,7 @@ tOm tCE sRU krP -bmW +kiB sYi uiH nwr @@ -94750,7 +94803,7 @@ bcu pPy mMT mMT -sUI +hxh mMT mMT mMT @@ -95218,7 +95271,7 @@ cLf cLf cLf bqX -ydi +ogH aeJ xcs tYQ @@ -95475,7 +95528,7 @@ dUc dUc dUc eKR -qVW +pVC yhk lPz cBh @@ -95542,7 +95595,7 @@ oGX kmu aly dxT -hxu +nBA hzF hzF eGn @@ -97094,7 +97147,7 @@ luW nWx azg xcl -lZq +xrd ppk hzF dUc @@ -97299,7 +97352,7 @@ juw pSO xYn pSO -qpk +jaa qbA tCE mJR @@ -97343,12 +97396,12 @@ aDE bEu rBb nWx -nns +qdR qdc gaj htJ gBB -byl +tLX azg azg azg @@ -97611,8 +97664,8 @@ mIk aIz vEm azg -gLX -gLX +gmd +gmd azg cLf cLf @@ -97803,7 +97856,7 @@ mXY mXY nPQ tIN -uGN +euR juw wUM poo @@ -98333,7 +98386,7 @@ tCE xBI fDa vVg -eWd +ism eiT uYV uFa @@ -98625,7 +98678,7 @@ kmu tHF tCE bTm -nLU +hAV hGo tki iEK @@ -98822,7 +98875,7 @@ cLf cLf eKR jVy -dBl +brP jVy eKR dUc @@ -98872,7 +98925,7 @@ bfe oCx aSd naX -erL +gyM doH jIc xhy @@ -99080,12 +99133,12 @@ cLf cLf cLf hqF -uYE -uYE -uYE -uYE -uYE -pgO +epi +epi +epi +epi +epi +pSS cLf cLf cLf @@ -99139,7 +99192,7 @@ fCy tHF tCE bTm -smI +uik qCd dyA vTU @@ -99342,7 +99395,7 @@ cLf dUc dVE pjN -nfk +hoe pjN pjN pjN @@ -99396,7 +99449,7 @@ kmu tHF tCE bTm -taE +oJQ uhD wPh jWg @@ -99404,7 +99457,7 @@ cwb hzC cwb hDX -pAJ +tjc azg azg azg @@ -99599,7 +99652,7 @@ cqH jfb hYU cLf -hHh +hJs cLf cLf cLf @@ -99856,7 +99909,7 @@ cLf cLf cLf cLf -hHh +hJs cLf utM utM @@ -99892,9 +99945,9 @@ uzH bIJ ket ahE -qKL +kEJ ahE -jjy +vFT bmp sYu uCj @@ -100113,14 +100166,14 @@ cLf cLf cLf cLf -hHh +hJs cLf cLf cLf utM jeL jeL -lIC +eyN paC kEg jeL @@ -100370,7 +100423,7 @@ jEY cLf cLf iWV -hHh +hJs xqe dUc utM @@ -100411,7 +100464,7 @@ avW sGV pik xzK -cCw +kdu ahE nxG ubk @@ -100627,15 +100680,15 @@ jEY dUc dUc vfJ -hHh +hJs vfJ cZp utM fSb vBp ybh -kEl -xDz +uCy +bDX tab alI abi @@ -100884,7 +100937,7 @@ jEY cLf cLf iWV -hHh +hJs iWV dUc utM @@ -100925,7 +100978,7 @@ ahE ahE vPN rUt -oXY +hrm ahE nxG dxT @@ -100938,8 +100991,8 @@ prW anT prW sOA -tPR -nSo +bVA +aKJ jqj dxT aQS @@ -101141,7 +101194,7 @@ jEY cLf cLf cLf -hHh +hJs cLf cLf cLf @@ -101398,7 +101451,7 @@ cLf cLf cLf cLf -hHh +hJs dUc dUc obA @@ -101438,8 +101491,8 @@ bFa nCs ahE swe -mZT -vPl +ajL +tAw ahE nxG dxT @@ -101655,7 +101708,7 @@ dUc dUc dUc dUc -hHh +hJs cLf cLf lJq @@ -101668,9 +101721,9 @@ bDy irx gyl gvF -oin +qaz tHF -mpm +qAo uZx fDa eMG @@ -101913,8 +101966,8 @@ cLf dUc cLf hqF -uYE -uYE +epi +epi dJJ goB goB @@ -102672,7 +102725,7 @@ wHJ wHJ wHJ mDP -jLT +usL wHJ kTx kYu @@ -102737,7 +102790,7 @@ kFm nSH upS urZ -rNS +uNy hbf dct nfF @@ -102967,8 +103020,8 @@ stw nJF stw azv -aUF -hAm +dZd +esX lYm azv azv @@ -103232,7 +103285,7 @@ azv sQe jUU flN -oeo +kSW tye bFI jUU @@ -103457,7 +103510,7 @@ cLf cLf vxX uJt -uPb +eJr wWY kju wMB @@ -103714,7 +103767,7 @@ cLf cLf vxX uJt -uPb +eJr hgX vfJ aTU @@ -103971,7 +104024,7 @@ cLf vxX vxX uJt -ddX +nXF tLH vfJ cPt @@ -104228,7 +104281,7 @@ cLf vxX vxX uJt -uPb +eJr wWY eZN cPt @@ -104470,7 +104523,7 @@ wze aby hGZ wZz -sjb +cdo wZz ipR kYu @@ -104510,7 +104563,7 @@ qnQ xcb wCO tld -kfC +miU azv azv azv @@ -106821,9 +106874,9 @@ hlh dhb crU crU -uvf +skc crU -eHx +gAD crU crU nMI @@ -107354,7 +107407,7 @@ dUc dpU iel hTX -cNd +sPV wTc xBV jWU @@ -107847,7 +107900,7 @@ ucg ipV aHt eRq -xby +gqA ers niB aoA @@ -107867,7 +107920,7 @@ dUc dUc dpU iPu -oWf +eoQ utc leW mst @@ -108144,7 +108197,7 @@ heP apK apK apK -iKJ +bTt svK ulc kCr @@ -108902,7 +108955,7 @@ pvX rJD rhB woe -tOx +pjY xuZ jFf uMq @@ -109096,7 +109149,7 @@ dUc dUc wZz wZz -vVG +qpj wZz wZz cLf @@ -109182,7 +109235,7 @@ rhS jeY dCM btl -qax +rJs cpG uwI lpe @@ -109664,7 +109717,7 @@ utT gcs bND its -aqV +wfN gVx cLs bND @@ -109702,7 +109755,7 @@ vdZ rgI kyh qOY -jJx +vAj ryC cLf cLf @@ -110689,7 +110742,7 @@ cnS gvR bND bND -gAk +dAo fTX deX rAW @@ -110920,7 +110973,7 @@ jTB wKR wKR vFL -pJZ +xvo mSe nCo tGW @@ -110981,7 +111034,7 @@ gyq gyq gyq iNa -gWW +nva cpG fJn aYf @@ -111184,7 +111237,7 @@ tvB tRZ nkM vxZ -drT +dyS lfq mDx gOY @@ -111468,13 +111521,13 @@ kBN mVf kUX lXI -kMF +mRu eeo kUX -kMF -kMF -kMF -kMF +mRu +mRu +mRu +mRu kUX uFC jsL @@ -111487,7 +111540,7 @@ oDn wCm wCm avx -plE +lZc tAQ hfU eMk @@ -111944,7 +111997,7 @@ uOo aku aku pkw -uql +hhd bEz laD laD @@ -112201,8 +112254,8 @@ uOo aku aku aku -miP -xnh +ajs +pIk dpA rPh gOY @@ -112458,10 +112511,10 @@ aku aku aku aku -ozo +vjB psQ cmn -iDd +czC gOY gAV hFz @@ -112983,7 +113036,7 @@ dcc uvx mna gXw -fwx +gHL jGy moe dUc @@ -113489,7 +113542,7 @@ tsz lJq obA vfJ -svE +egt nZW moe tLh @@ -119421,9 +119474,9 @@ tsX xfJ tMz jQS -sjS -rWJ -wMs +cxH +aEj +hii jQS qoj axB @@ -121475,13 +121528,13 @@ jQS jQS jQS jQS -nOd +mbA jQS tMz inz fUp jQS -bPU +poF jQS jQS jQS @@ -125061,7 +125114,7 @@ cLf dUc xUA uuN -ncs +oJv dUc cLf cLf @@ -139473,7 +139526,7 @@ hhX hhX hhX hhX -biK +urC jrm qyq qyq @@ -139730,7 +139783,7 @@ hhX hhX hhX hhX -biK +urC nYj qyq wUH @@ -139987,7 +140040,7 @@ hhX hhX hhX hhX -biK +urC nYj mua qyq @@ -140244,7 +140297,7 @@ hhX hhX hhX hhX -biK +urC jrm qyq xfa @@ -140501,7 +140554,7 @@ hhX hhX hhX hhX -biK +urC jrm qyq sRq @@ -140758,7 +140811,7 @@ hhX hhX hhX hhX -biK +urC jrm pJF bcg @@ -141015,7 +141068,7 @@ hhX hhX hhX hhX -biK +urC jrm qyq bDN @@ -141788,9 +141841,9 @@ hhX hhX hhX vYz -kYD -kYD -kYD +nck +nck +nck aUf aUf aUf @@ -146441,7 +146494,7 @@ lil vvY mkc kzS -fda +uym fnh vxX vxX @@ -147951,7 +148004,7 @@ rXd qqL mUi fpx -blL +rDE uIx dCv fxF @@ -148205,7 +148258,7 @@ oZQ oZQ oZQ rXd -gcY +gGp mUi rxK tCm @@ -148427,7 +148480,7 @@ mIW mIW kng lLO -nUM +ioZ dOG wum tYI @@ -148462,7 +148515,7 @@ sYb sYb hCJ wOU -mAR +aqw hSA mBY rLb @@ -148497,7 +148550,7 @@ evQ evQ evQ igq -pkK +rcy cIi siK fnh @@ -149000,8 +149053,8 @@ ahq cDD cDD cDD -cwF -cwF +vhz +vhz cDD cDD krj @@ -149968,11 +150021,11 @@ tIr idB mQo kUG -aLM +dkq tgv peD vjA -iuQ +pIF wrx pBS vWF @@ -150021,7 +150074,7 @@ auB quz bGk ebk -xcS +jPs hEV dpT bGk @@ -150228,7 +150281,7 @@ eLe xOO lJw lJw -tXO +oIr mIW xtp oPN @@ -150260,7 +150313,7 @@ kQJ xXo xXo qSG -wmA +pCT kjh xiF nXe @@ -150517,7 +150570,7 @@ ahV xXo xXo qSG -lef +fSq tiv pIa gBu @@ -150743,7 +150796,7 @@ sUM rhc uMo hED -noI +kqV wow ylZ buu @@ -150774,7 +150827,7 @@ cBz xXo xXo uPi -wmA +pCT ydC pWg jLV @@ -151313,9 +151366,9 @@ xhJ xhJ xhJ gvw -qTb +gws iYB -qTb +gws gvw xhJ dpe @@ -152083,14 +152136,14 @@ xhJ oVn fwU gvw -xfs +wYo cLD nzb xnq pTw xhJ oZt -ycr +fQG oZt oZt oZt @@ -152594,7 +152647,7 @@ igq rJg tDm xhJ -kOj +kpP gvw gvw oRR @@ -152606,7 +152659,7 @@ xhJ mfP xOF dgS -oDM +kzI cNk gtO gcy @@ -153372,7 +153425,7 @@ gjt jEf kQV uKv -nCi +evg gvw vxX vxX @@ -155953,7 +156006,7 @@ gMk gMk alx scS -bWB +ejH unk hhX hhX @@ -156209,7 +156262,7 @@ gMk vxX vxX ent -hnR +bCg unk unk hhX @@ -159004,7 +159057,7 @@ oCB oJI hCs vCL -qlK +bHb pco lIr mGo @@ -159512,9 +159565,9 @@ gYW pny eht vFg -vJt +oxh hCs -pQk +tEn reU mYU iIY @@ -159768,8 +159821,8 @@ tXp gYW gYW gYW -wmE -vJt +sbn +oxh hCs wxv mnP @@ -160284,7 +160337,7 @@ cjp gYW wjI hCs -ukb +vKR kSO jVF cAg @@ -160541,7 +160594,7 @@ kIB pEO wjI hCs -nZg +cnT kSO rRd gbS @@ -160800,11 +160853,11 @@ jIU hCs hCs gUu -dxq -ain -ain -iLK -hbn +ban +eJB +eJB +eCb +rZC eOY gcN usr @@ -161045,7 +161098,7 @@ vxX fne dTe dTe -oBY +nMj nfj tAa gYW @@ -161055,14 +161108,14 @@ mpZ wAv wjI hCs -nCV +dDb kSO oqs gbS gbS oqs dAS -qPS +tkR oxU xIN rDg @@ -161312,14 +161365,14 @@ gYW gYW wjI hCs -ljm +fle kSO abo abo abo fXH dAS -tyA +kZS gcN xIN rDg @@ -161530,7 +161583,7 @@ lFG oDK uOs kse -pNn +qmp qyG tot pWn @@ -161570,7 +161623,7 @@ cjp wjI hCs hCs -nEX +urx rRd rRd rRd @@ -161827,7 +161880,7 @@ cjp wjI wjI azV -kih +hPk mnP xFT etB @@ -162042,7 +162095,7 @@ pXn aLK xFt lFG -xuc +voI wOK dby qPX @@ -162084,7 +162137,7 @@ cjp wAv fld hCs -hOG +dBU rgT fgt jhl @@ -162827,7 +162880,7 @@ jhj cnZ vaC nIS -bvZ +xzp brV brV brV @@ -163109,8 +163162,8 @@ vxX vxX vxX gYW -meZ -cKf +imU +mhD dTe wAv apQ @@ -163881,7 +163934,7 @@ gMk vxX vxX oSk -cqF +nlZ dTe dTe apQ @@ -163890,7 +163943,7 @@ jLp pGq lAG apQ -xln +bBb lvj rce mCr @@ -165379,7 +165432,7 @@ hhX hhX wOo wOo -lrp +kpD vtg xJA wOo @@ -166170,7 +166223,7 @@ vxX vxX vxX vxX -mnq +ura syX qIA cGl @@ -167977,7 +168030,7 @@ tqD gQu gvF vxX -jLm +bKL gMk gMk rZg @@ -168720,9 +168773,9 @@ pYw wHJ hfH sIW -ort +hNC gQs -ort +hNC sIW gBx wHJ @@ -168977,9 +169030,9 @@ udf tIS hfH sIW -jWH -sxe -uFA +uKA +puP +fnO sIW vHA fqi @@ -169234,9 +169287,9 @@ eaW wHJ dqA sIW -eDl +ciR ilq -eDl +ciR sIW dfd wHJ @@ -169266,7 +169319,7 @@ vxX vxX gMk cgu -hKT +yjm vxX vxX gMk @@ -169493,7 +169546,7 @@ lEa lmo sIW sIW -nMb +lUF lmo xAR wHJ @@ -169772,7 +169825,7 @@ noO vzj vzj vzj -mFY +oka nas bbe ycq @@ -170006,7 +170059,7 @@ kWb lWW kBh upw -sgt +pRm kWb lWW lWW @@ -170035,7 +170088,7 @@ hOa jnw gKt gTf -dOx +dOg kqf ipx ipx @@ -170291,7 +170344,7 @@ hOa ukx xGY gKt -pak +oGQ aIX oSG tzy @@ -170548,7 +170601,7 @@ nas nas vwd gKt -fvQ +xNo suw fdN tQI @@ -170826,7 +170879,7 @@ vxX vxX vxX gMk -cEo +vkv vxX dtQ vxX @@ -171543,17 +171596,17 @@ uVI pFE kWb kWb -nVA +xWR qDl qDl kdR kWb -dvK +nzT kWb mjq qDl qDl -oUG +aKU kWb kWb vxX @@ -172584,7 +172637,7 @@ kWb kWb kWb kWb -xrZ +rqC hhX hhX hhX @@ -172598,7 +172651,7 @@ lAc lAc kuX nIu -iDo +frt gYY vRA vRA @@ -172852,7 +172905,7 @@ fYe lJq raz lAc -faL +irf tsy jCT rin @@ -173179,7 +173232,7 @@ smh tHE fOP xlv -ugt +anf cKc nCu bco @@ -173604,7 +173657,7 @@ vxX hhX hhX jVV -srw +nQm jVV hhX hhX @@ -173623,7 +173676,7 @@ fYe lJq jmY lAc -gOB +ejP yiW gFg pQz @@ -174141,7 +174194,7 @@ qvP tOO jXb sMl -uIV +amn jxa jxa jxa @@ -174438,7 +174491,7 @@ kHU kHU ouG fst -sct +dBp bPH dUi lFJ @@ -175169,7 +175222,7 @@ vfJ lno krg oQW -fRx +bjp fmK fwM pDd @@ -175226,7 +175279,7 @@ uca eVA mYb oZC -gNf +aKj wje sCp mog @@ -175986,7 +176039,7 @@ vkN qdV iZa qMw -leJ +aJz mog mog mog @@ -175996,7 +176049,7 @@ wje wtH kjR buk -vXQ +ygJ wtH wje sCp @@ -176453,7 +176506,7 @@ jmY uba agO vfJ -ndL +hHW uba raz nzk @@ -176491,7 +176544,7 @@ btZ djW oas muw -fLY +dLW iZa dhH pMG @@ -176736,7 +176789,7 @@ dsP gXh ohk uab -kRm +gcA cuz qpt rbw @@ -176744,7 +176797,7 @@ rbw cZf bDk ovD -ggq +mio jgs nep pMG @@ -176993,11 +177046,11 @@ dsP nQs ohk ohk -wPE +mPW uXe fUL kwh -cjv +ylm vEE dSN iZa @@ -177232,7 +177285,7 @@ hEi hEi wFI mmU -svq +ibE wts uaw uaw @@ -177260,15 +177313,15 @@ nUS qhG sqA kUX -kMF -kMF -kMF +mRu +mRu +mRu kUX -kMF -kMF -kMF -kMF -kMF +mRu +mRu +mRu +mRu +mRu kUX vxX vxX @@ -179802,7 +179855,7 @@ mNZ lhc rGg wkG -ron +mcv moe rGg rGg @@ -185727,11 +185780,11 @@ qWt qXj lKY hQH -xme +cAq csf oIh pPY -iLu +iPf gCP lKY dzL @@ -185981,17 +186034,17 @@ wBd hAL jQS jQS -ged -pii -fzb +gvj +gMy +gwx jQS wmO wmO wmO jQS -vqZ -iMy -kUH +xDf +gtE +hMf jQS jQS cku @@ -186246,7 +186299,7 @@ wqG wqG wqG wmO -jNb +rmi lKY dzL tsm @@ -186754,7 +186807,7 @@ jQS qZX qXj lKY -oKG +qGD wmO wqG wqG @@ -187521,7 +187574,7 @@ hhX hhX fZF jQS -gDU +cCr fXW xCs awy @@ -187535,7 +187588,7 @@ awy awy oVS mCT -tFo +okf jQS fZF hhX @@ -187779,7 +187832,7 @@ hhX fZF jQS uCr -wVo +ikp hLP cWc wnA diff --git a/_maps/shuttles/arrival_northstar.dmm b/_maps/shuttles/arrival_northstar.dmm new file mode 100644 index 0000000000000..fadde8f9df42b --- /dev/null +++ b/_maps/shuttles/arrival_northstar.dmm @@ -0,0 +1,278 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/shuttle/arrival) +"c" = ( +/obj/machinery/door/airlock/survival_pod/glass{ + name = "Arrivals Shuttle Airlock" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/shuttle/arrival) +"d" = ( +/obj/machinery/requests_console/directional/north{ + department = "Arrivals shuttle"; + name = "Arrival Shuttle Requests Console" + }, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/storage/medkit/regular{ + pixel_y = 4 + }, +/obj/item/storage/toolbox/emergency, +/turf/open/floor/pod/dark, +/area/shuttle/arrival) +"g" = ( +/obj/machinery/power/shuttle_engine/propulsion/burst/right{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/arrival) +"j" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/pod/dark, +/area/shuttle/arrival) +"k" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/storage/medkit/o2, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/turf/open/floor/pod/dark, +/area/shuttle/arrival) +"n" = ( +/obj/effect/turf_decal/trimline/red/warning{ + dir = 1 + }, +/turf/open/floor/pod/dark, +/area/shuttle/arrival) +"q" = ( +/obj/structure/closet/wardrobe/grey, +/turf/open/floor/pod/dark, +/area/shuttle/arrival) +"r" = ( +/obj/effect/turf_decal/trimline/red/warning{ + dir = 8 + }, +/turf/open/floor/pod/dark, +/area/shuttle/arrival) +"s" = ( +/obj/effect/turf_decal/trimline/red/corner{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/shuttle/arrival) +"t" = ( +/turf/closed/wall/mineral/titanium/survival, +/area/shuttle/arrival) +"u" = ( +/obj/effect/turf_decal/trimline/red/corner, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 8 + }, +/turf/open/floor/pod, +/area/shuttle/arrival) +"v" = ( +/obj/structure/closet/wardrobe/mixed, +/turf/open/floor/pod/dark, +/area/shuttle/arrival) +"w" = ( +/obj/machinery/power/shuttle_engine/propulsion/burst/left{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/arrival) +"y" = ( +/obj/effect/turf_decal/trimline/red/corner{ + dir = 8 + }, +/turf/open/floor/pod/dark, +/area/shuttle/arrival) +"z" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/trimline/red/warning{ + dir = 1 + }, +/turf/open/floor/pod/dark, +/area/shuttle/arrival) +"A" = ( +/obj/effect/turf_decal/trimline/red/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/warning{ + dir = 4 + }, +/turf/open/floor/pod, +/area/shuttle/arrival) +"C" = ( +/obj/effect/turf_decal/trimline/red/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 1 + }, +/turf/open/floor/pod, +/area/shuttle/arrival) +"D" = ( +/obj/machinery/power/shuttle_engine/propulsion{ + dir = 4 + }, +/obj/docking_port/mobile/arrivals{ + name = "northstar arrivals shuttle" + }, +/turf/open/floor/plating/airless, +/area/shuttle/arrival) +"E" = ( +/obj/effect/turf_decal/trimline/red/warning{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/shuttle/arrival) +"F" = ( +/obj/structure/chair/comfy/shuttle, +/obj/machinery/light/red/directional/north, +/turf/open/floor/catwalk_floor/iron_dark, +/area/shuttle/arrival) +"H" = ( +/obj/machinery/power/shuttle_engine/propulsion{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/arrival) +"J" = ( +/obj/effect/turf_decal/trimline/red/warning{ + dir = 1 + }, +/obj/machinery/light/red/directional/south, +/turf/open/floor/pod/dark, +/area/shuttle/arrival) +"L" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/turf/open/floor/plating/airless, +/area/shuttle/arrival) +"M" = ( +/obj/effect/turf_decal/trimline/red/corner{ + dir = 1 + }, +/turf/open/floor/pod/dark, +/area/shuttle/arrival) +"N" = ( +/obj/structure/chair/comfy/shuttle, +/turf/open/floor/catwalk_floor/iron_dark, +/area/shuttle/arrival) +"P" = ( +/obj/effect/turf_decal/trimline/red/warning, +/turf/open/floor/pod, +/area/shuttle/arrival) +"V" = ( +/obj/structure/chair/comfy/shuttle, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/catwalk_floor/iron_dark, +/area/shuttle/arrival) +"W" = ( +/obj/effect/turf_decal/trimline/red/corner, +/turf/open/floor/pod/dark, +/area/shuttle/arrival) +"Z" = ( +/obj/effect/spawner/structure/window/survival_pod, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plating, +/area/shuttle/arrival) + +(1,1,1) = {" +a +t +Z +Z +t +a +"} +(2,1,1) = {" +t +t +v +q +t +t +"} +(3,1,1) = {" +t +k +W +E +s +t +"} +(4,1,1) = {" +t +F +P +b +z +t +"} +(5,1,1) = {" +t +N +P +b +n +Z +"} +(6,1,1) = {" +t +d +u +A +C +c +"} +(7,1,1) = {" +t +N +P +b +n +Z +"} +(8,1,1) = {" +t +V +P +b +J +t +"} +(9,1,1) = {" +t +j +y +r +M +t +"} +(10,1,1) = {" +t +L +L +L +L +t +"} +(11,1,1) = {" +t +g +D +H +w +t +"} diff --git a/_maps/shuttles/cargo_northstar.dmm b/_maps/shuttles/cargo_northstar.dmm new file mode 100644 index 0000000000000..8eb2df120090b --- /dev/null +++ b/_maps/shuttles/cargo_northstar.dmm @@ -0,0 +1,295 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"b" = ( +/obj/machinery/power/shuttle_engine/propulsion/burst/right, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"c" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/shuttle/supply) +"d" = ( +/obj/machinery/button/door/directional/east{ + id = "QMLoaddoor"; + name = "Loading Doors"; + pixel_y = -8 + }, +/obj/machinery/button/door/directional/east{ + id = "QMLoaddoor2"; + name = "Loading Doors"; + pixel_y = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/conveyor_switch/oneway{ + id = "QMLoad" + }, +/turf/open/floor/iron/smooth, +/area/shuttle/supply) +"f" = ( +/obj/machinery/conveyor{ + dir = 5; + id = "QMLoad" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/shuttle/supply) +"g" = ( +/obj/machinery/door/poddoor{ + id = "QMLoaddoor2"; + name = "Supply Dock Loading Door" + }, +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/shuttle/supply) +"h" = ( +/turf/closed/wall/mineral/titanium/survival/nodiagonal, +/area/shuttle/supply) +"i" = ( +/turf/closed/wall/mineral/titanium/survival, +/area/shuttle/supply) +"j" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/shuttle/supply) +"k" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/smooth, +/area/shuttle/supply) +"n" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/iron/smooth, +/area/shuttle/supply) +"o" = ( +/obj/machinery/power/shuttle_engine/propulsion/burst/left, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"q" = ( +/obj/machinery/power/shuttle_engine/heater{ + icon_state = "router" + }, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"s" = ( +/turf/template_noop, +/area/template_noop) +"u" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"v" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/shuttle/supply) +"w" = ( +/obj/effect/spawner/structure/window/survival_pod, +/turf/open/floor/plating, +/area/shuttle/supply) +"x" = ( +/turf/open/floor/catwalk_floor/iron_smooth, +/area/shuttle/supply) +"B" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/shuttle/supply) +"C" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/shuttle/supply) +"D" = ( +/obj/machinery/power/shuttle_engine/heater, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"G" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/light/red/directional/west, +/turf/open/floor/iron/smooth, +/area/shuttle/supply) +"I" = ( +/obj/machinery/power/shuttle_engine/heater, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"K" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor"; + name = "Supply Dock Loading Door" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/shuttle/supply) +"M" = ( +/obj/machinery/power/shuttle_engine/heater, +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"N" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/smooth, +/area/shuttle/supply) +"O" = ( +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/machinery/door/airlock/survival_pod/glass{ + name = "Supply Shuttle Airlock" + }, +/obj/docking_port/mobile/supply, +/turf/open/floor/catwalk_floor/iron, +/area/shuttle/supply) +"Q" = ( +/obj/machinery/conveyor{ + dir = 9; + id = "QMLoad" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/shuttle/supply) +"V" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/iron/smooth, +/area/shuttle/supply) +"Y" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/shuttle/supply) +"Z" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/light/red/directional/west, +/turf/open/floor/iron/smooth, +/area/shuttle/supply) + +(1,1,1) = {" +h +h +i +i +i +i +i +i +i +i +s +"} +(2,1,1) = {" +h +f +Q +G +v +v +Z +C +x +I +o +"} +(3,1,1) = {" +w +c +j +Y +k +N +k +n +D +q +u +"} +(4,1,1) = {" +w +c +j +Y +N +k +N +n +M +q +u +"} +(5,1,1) = {" +h +c +j +d +B +B +B +V +x +I +b +"} +(6,1,1) = {" +h +g +K +h +O +w +w +h +h +i +s +"} diff --git a/_maps/shuttles/emergency_cruise.dmm b/_maps/shuttles/emergency_cruise.dmm index 13b160b653190..a04903b6a3a0d 100644 --- a/_maps/shuttles/emergency_cruise.dmm +++ b/_maps/shuttles/emergency_cruise.dmm @@ -1,457 +1,772 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "ab" = ( -/obj/effect/turf_decal/trimline/blue/line{ - dir = 5 +/obj/machinery/computer/communications, +/obj/effect/turf_decal/tile/dark_blue/half{ + dir = 1 }, -/obj/effect/turf_decal/trimline/blue/mid_joiner{ +/turf/open/floor/iron/dark/smooth_edge{ dir = 1 }, -/obj/machinery/stasis, -/turf/open/floor/iron/white/smooth_large, /area/shuttle/escape) -"ak" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/chair/sofa/bench/left{ - dir = 8 +"ag" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 }, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 8 +/obj/effect/turf_decal/trimline/red/filled/mid_joiner{ + dir = 4 }, -/turf/open/floor/iron/dark, -/area/shuttle/escape) -"as" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 + }, +/area/shuttle/escape/brig) +"ah" = ( +/obj/effect/turf_decal/trimline/red/filled/corner{ dir = 1 }, -/turf/template_noop, +/turf/open/floor/iron/dark, +/area/shuttle/escape/brig) +"ak" = ( +/obj/structure/chair/sofa/corp{ + dir = 8 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/carpet/stellar, /area/shuttle/escape) "at" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/flora/bush/fullgrass/style_random, -/obj/structure/flora/bush/lavendergrass/style_random, -/obj/structure/flora/bush/flowers_yw/style_random, -/turf/open/floor/grass, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood/large, /area/shuttle/escape) "av" = ( -/obj/machinery/status_display/evac/directional/south, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 + }, +/area/shuttle/escape) +"aC" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, /area/shuttle/escape) "aD" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 6 +/obj/structure/table/wood/shuttle_bar{ + boot_dir = 4 }, -/turf/template_noop, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood/large, /area/shuttle/escape) "ba" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/delivery/white, -/obj/structure/closet/emcloset/anchored, -/turf/open/floor/iron/dark, +/obj/structure/chair/sofa/left/maroon{ + dir = 4 + }, +/turf/open/floor/carpet/green, /area/shuttle/escape) -"bn" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Upper Floors" +"bg" = ( +/obj/effect/turf_decal/tile/neutral/half{ + dir = 1 + }, +/obj/item/kirbyplants/organic/plant21, +/turf/open/floor/iron/edge{ + dir = 1 }, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/turf/open/floor/catwalk_floor/iron_dark, /area/shuttle/escape) -"bX" = ( -/obj/machinery/light/directional/south, +"bj" = ( +/obj/structure/sign/painting/library{ + pixel_x = 32 + }, /turf/open/floor/carpet/red, /area/shuttle/escape) -"cA" = ( -/obj/structure/lattice/catwalk, -/obj/structure/closet/lasertag/blue, -/turf/template_noop, +"bn" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/carpet/cyan, /area/shuttle/escape) -"cB" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/siding/wood{ +"bP" = ( +/obj/structure/sign/painting/large/library{ + dir = 4 + }, +/turf/open/floor/carpet/red, +/area/shuttle/escape) +"bR" = ( +/obj/structure/chair/office/light{ + dir = 1; + name = "Captain's Station" + }, +/turf/open/floor/iron/dark/side{ dir = 5 }, -/obj/machinery/light/directional/north, -/turf/open/floor/wood/parquet, /area/shuttle/escape) -"cK" = ( -/obj/structure/lattice/catwalk, -/obj/structure/closet/lasertag/red, -/turf/template_noop, +"bX" = ( +/obj/machinery/light/warm/directional/east, +/turf/open/floor/carpet/red, /area/shuttle/escape) -"cO" = ( -/obj/structure/chair/sofa/corp{ +"ca" = ( +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/tile/neutral/half{ + dir = 4 + }, +/turf/open/floor/iron/edge{ dir = 4 }, -/obj/machinery/light/directional/west, -/turf/open/floor/carpet/executive, /area/shuttle/escape) -"cQ" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 9 +"ch" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ + dir = 4 + }, +/turf/open/floor/iron/white/smooth_edge{ + dir = 4 }, -/turf/template_noop, /area/shuttle/escape) -"cY" = ( -/obj/machinery/smartfridge/food, -/obj/effect/turf_decal/bot_white, -/obj/machinery/light/directional/north, +"co" = ( +/obj/machinery/door/airlock/shuttle, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "cruisesw2" + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/smooth_large, /area/shuttle/escape) -"dg" = ( -/obj/structure/table/reinforced, -/obj/machinery/reagentgrinder{ - pixel_y = 12; - pixel_x = -4 - }, -/obj/item/reagent_containers/condiment/enzyme{ - pixel_x = 7; - pixel_y = 7 +"cx" = ( +/obj/effect/turf_decal/siding/thinplating_new/corner{ + dir = 1 }, -/obj/item/reagent_containers/cup/beaker/large, -/obj/item/reagent_containers/cup/rag{ - pixel_x = 6 +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/turf/open/floor/iron/kitchen/herringbone, +/turf/open/floor/iron, /area/shuttle/escape) -"dp" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2{ +"cA" = ( +/obj/effect/turf_decal/siding/wood/corner{ dir = 8 }, -/turf/open/floor/iron/white, +/turf/open/floor/wood/large, /area/shuttle/escape) -"du" = ( -/obj/effect/turf_decal/trimline/blue/line{ - dir = 6 +"cK" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood/large, +/area/shuttle/escape) +"cO" = ( +/obj/structure/chair/sofa/corp/left{ + dir = 4 }, -/obj/effect/turf_decal/trimline/blue/mid_joiner, -/obj/effect/turf_decal/trimline/blue/mid_joiner{ +/obj/machinery/newscaster/directional/west, +/turf/open/floor/carpet/stellar, +/area/shuttle/escape) +"cQ" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/beer/fullupgrade{ dir = 4 }, -/mob/living/basic/bot/medbot/stationary{ - damage_type_healer = "all_damage"; - heal_amount = 5; - heal_threshold = 0; - skin = "advanced"; - name = "Doctor Rumack" +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood/large, +/area/shuttle/escape) +"dp" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2{ + dir = 8 + }, +/obj/effect/turf_decal/bot_white{ + color = "#52B4E9" }, /turf/open/floor/iron/white/smooth_large, /area/shuttle/escape) -"dw" = ( -/obj/effect/turf_decal/tile/blue/half/contrasted, -/obj/effect/turf_decal/trimline/blue/filled/line{ +"dr" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/mid_joiner{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 8 + }, +/area/shuttle/escape/brig) +"dy" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/siding/thinplating_new/dark{ dir = 1 }, -/turf/open/floor/iron/white, +/obj/effect/turf_decal/delivery/white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/textured_large, /area/shuttle/escape) -"dE" = ( -/obj/machinery/computer/communications, -/obj/effect/turf_decal/trimline/dark_blue/filled/corner{ +"dA" = ( +/obj/effect/turf_decal/siding/thinplating_new{ dir = 4 }, -/turf/open/floor/iron, +/obj/structure/chair/sofa/bench/left{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/half{ + dir = 8 + }, +/turf/open/floor/iron/edge{ + dir = 8 + }, +/area/shuttle/escape) +"dC" = ( +/obj/effect/turf_decal/siding/dark_red, +/turf/open/floor/iron/dark/herringbone, +/area/shuttle/escape/brig) +"dE" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/defibrillator/compact/combat/loaded/nanotrasen{ + combat = 0; + safety = 1; + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/healthanalyzer/advanced{ + pixel_x = 4; + pixel_y = -1 + }, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/effect/turf_decal/siding/wideplating_new/light{ + dir = 6 + }, +/obj/effect/turf_decal/tile/blue/anticorner, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/iron/white/smooth_corner{ + dir = 1 + }, /area/shuttle/escape) "dG" = ( /obj/machinery/door/airlock/shuttle, -/obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "cruisene1" }, /turf/open/floor/noslip, /area/shuttle/escape) "dL" = ( -/obj/structure/chair/sofa/corp/corner{ - dir = 1 - }, -/turf/open/floor/carpet/executive, -/area/shuttle/escape) -"dS" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 +/obj/structure/chair/sofa/corp{ + dir = 4 }, -/obj/structure/bed, -/obj/item/bedsheet/nanotrasen, -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/wood/parquet, +/obj/machinery/light/small/blacklight/directional/west, +/turf/open/floor/carpet/stellar, /area/shuttle/escape) -"ec" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/wood/tile, +"dY" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/iron, /area/shuttle/escape) "en" = ( /obj/effect/spawner/structure/window/reinforced/shuttle, /turf/open/floor/plating, /area/shuttle/escape) -"es" = ( -/turf/open/floor/iron/kitchen/herringbone, -/area/shuttle/escape) -"ez" = ( -/turf/open/floor/iron/dark/textured_large, +"ey" = ( +/obj/structure/railing/corner/end/flip, +/turf/open/floor/carpet/red, /area/shuttle/escape) -"eM" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4 +"eD" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/storage/fancy/donut_box, +/obj/effect/turf_decal/siding/dark_red{ + dir = 8 }, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 5 +/turf/open/floor/iron/dark/herringbone, +/area/shuttle/escape/brig) +"eI" = ( +/obj/structure/railing/corner/end{ + dir = 1 }, -/turf/open/floor/iron/dark/smooth_large, -/area/shuttle/escape) -"eY" = ( -/obj/effect/turf_decal/trimline/blue/line{ +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, /turf/open/floor/iron, /area/shuttle/escape) -"eZ" = ( -/obj/structure/sign/directions/medical/directional/north, -/obj/structure/sign/directions/command/directional/north{ - pixel_y = 38 +"eM" = ( +/obj/machinery/light/warm/directional/west, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/carpet/red, +/area/shuttle/escape) +"eR" = ( +/obj/effect/spawner/random/vending/snackvend, +/obj/effect/turf_decal/tile/neutral/full, +/turf/open/floor/iron/large, +/area/shuttle/escape) +"eY" = ( +/obj/structure/table/optable, +/obj/machinery/light/cold/directional/north, +/obj/effect/turf_decal/siding/wideplating_new/light{ + dir = 1 }, -/obj/structure/sign/directions/arrival/directional/north{ - pixel_y = 26 +/obj/effect/turf_decal/tile/blue/half{ + dir = 1 }, -/obj/effect/turf_decal/trimline/white/line{ - dir = 8 +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/bot_white{ + color = "#52B4E9" + }, +/turf/open/floor/iron/white/smooth_edge{ + dir = 1 }, -/obj/item/kirbyplants/random, -/turf/open/floor/iron, /area/shuttle/escape) -"fL" = ( -/obj/machinery/vending/boozeomat, -/turf/open/floor/carpet/executive, +"fI" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/food/sundae{ + pixel_x = -3; + pixel_y = 14 + }, +/obj/item/food/sundae{ + pixel_x = 0; + pixel_y = 8 + }, +/obj/item/food/sundae{ + pixel_x = 4; + pixel_y = 2 + }, +/turf/open/floor/carpet/red, /area/shuttle/escape) -"fY" = ( -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 4 +"fL" = ( +/obj/structure/chair/sofa/corp{ + dir = 8 }, +/obj/machinery/light/small/blacklight/directional/east, +/turf/open/floor/carpet/stellar, +/area/shuttle/escape) +"fQ" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/delivery, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, +/turf/open/floor/iron, /area/shuttle/escape) -"gb" = ( -/obj/machinery/light/directional/west, -/obj/effect/turf_decal/trimline/white/line{ +"fY" = ( +/obj/structure/table, +/obj/item/storage/box/drinkingglasses{ + pixel_x = -5; + pixel_y = 9 + }, +/obj/item/storage/box/drinkingglasses{ + pixel_x = -5; + pixel_y = 1 + }, +/obj/effect/turf_decal/siding/wood{ dir = 4 }, -/turf/open/floor/iron, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = 9; + pixel_y = 11 + }, +/obj/item/reagent_containers/cup/glass/shaker{ + pixel_x = 9; + pixel_y = 4 + }, +/turf/open/floor/wood/large, /area/shuttle/escape) "gm" = ( -/obj/effect/turf_decal/tile/blue/anticorner/contrasted, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ dir = 4 }, -/turf/open/floor/iron/white, +/obj/structure/table/reinforced/rglass, +/obj/machinery/light/cold/directional/south, +/obj/item/storage/medkit/advanced{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/storage/medkit/emergency{ + pixel_x = 4; + pixel_y = -1 + }, +/obj/machinery/vending/wallmed/directional/east, +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner, +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ + dir = 4 + }, +/turf/open/floor/iron/white/smooth_corner{ + dir = 1 + }, +/area/shuttle/escape) +"gn" = ( +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/tile/neutral/half, +/obj/item/kirbyplants/organic/plant21, +/turf/open/floor/iron/edge, /area/shuttle/escape) "gq" = ( -/obj/effect/turf_decal/tile/blue/half/contrasted{ +/obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ +/obj/structure/sink/directional/east, +/turf/open/floor/wood/large, +/area/shuttle/escape) +"gr" = ( +/obj/machinery/computer/security{ dir = 8 }, -/obj/machinery/door/window/brigdoor/right/directional/south{ - name = "Treatment Room"; - req_access = list("medical") +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/half{ + dir = 4 }, -/turf/open/floor/iron/white, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 + }, +/area/shuttle/escape) +"gv" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/food/roast_slice_lizzy{ + pixel_x = 0; + pixel_y = 11 + }, +/obj/item/food/roast_slice_lizzy{ + pixel_x = 2; + pixel_y = 5 + }, +/obj/item/food/roast_slice_lizzy{ + pixel_x = 4; + pixel_y = -1 + }, +/turf/open/floor/carpet/red, +/area/shuttle/escape) +"gH" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/food/frenchtoast{ + pixel_x = -3; + pixel_y = 8 + }, +/obj/item/food/frenchtoast{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/food/frenchtoast{ + pixel_x = -3; + pixel_y = -1 + }, +/turf/open/floor/carpet/red, /area/shuttle/escape) "gJ" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - name = "Captain's Quarters Privacy Shutters"; - dir = 8; - id = "cqpriv" +/obj/structure/table/reinforced/rglass, +/obj/item/storage/medkit/brute{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/item/storage/medkit/fire{ + pixel_x = 5; + pixel_y = -4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ + dir = 1 + }, +/turf/open/floor/iron/white/smooth_edge{ + dir = 1 }, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/iron/dark/smooth_large, /area/shuttle/escape) "gL" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/siding/wood{ - dir = 6 +/obj/structure/table/reinforced/rglass, +/obj/item/surgery_tray/full/advanced, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/effect/turf_decal/siding/wideplating_new/light{ + dir = 9 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/effect/turf_decal/tile/blue/anticorner{ + dir = 1 }, -/turf/open/floor/wood/parquet, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/white/smooth_corner, /area/shuttle/escape) -"gU" = ( -/obj/effect/turf_decal/trimline/dark_blue/corner, -/turf/open/floor/iron, +"gT" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/food/waffles{ + pixel_x = -6; + pixel_y = 14 + }, +/obj/item/food/waffles{ + pixel_x = 0; + pixel_y = 6 + }, +/obj/item/food/waffles{ + pixel_x = 5; + pixel_y = -2 + }, +/turf/open/floor/carpet/red, /area/shuttle/escape) -"gY" = ( -/obj/structure/chair/sofa/corp{ +"gU" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/wideplating_new/dark{ dir = 1 }, -/obj/machinery/status_display/evac/directional/south, -/turf/open/floor/carpet/executive, +/obj/machinery/cell_charger, +/turf/open/floor/iron/dark, /area/shuttle/escape) -"hf" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/siding/wood{ - dir = 10 +"gY" = ( +/turf/open/floor/carpet/stellar, +/area/shuttle/escape) +"gZ" = ( +/obj/machinery/door/airlock/command{ + name = "Shuttle Bridge" }, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/tile/neutral/half{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/iron/edge{ dir = 4 }, +/area/shuttle/escape) +"hg" = ( +/obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/wood/parquet, /area/shuttle/escape) -"hi" = ( -/obj/structure/sign/poster/official/here_for_your_safety/directional/east, -/obj/machinery/light/directional/east, -/turf/open/floor/iron, +"hl" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/instrument/trombone{ + pixel_x = 5; + pixel_y = 8 + }, +/turf/open/floor/carpet/red, /area/shuttle/escape) "hp" = ( -/obj/machinery/door/airlock/command{ - name = "Corporate Lounge" +/obj/machinery/jukebox/no_access, +/obj/machinery/camera/directional/east{ + c_tag = "NTSS Independence Ballroom" + }, +/turf/open/floor/carpet/red, +/area/shuttle/escape) +"hz" = ( +/obj/structure/railing/corner/end, +/obj/effect/turf_decal/tile/neutral/half{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/edge{ + dir = 8 }, -/obj/effect/mapping_helpers/airlock/access/any/command/general, -/turf/open/floor/iron/dark, /area/shuttle/escape) "hB" = ( -/obj/machinery/chem_master/condimaster{ - desc = "Looks like a knock-off chem-master. Perhaps useful for separating liquids when mixing drinks precisely. Also dispenses condiments."; - name = "HoochMaster Deluxe" +/obj/structure/table/wood/shuttle_bar{ + boot_dir = 4 + }, +/obj/item/reagent_containers/cup/rag{ + pixel_x = -3; + pixel_y = 1 }, /obj/effect/turf_decal/siding/wood{ - dir = 1 + dir = 4 }, -/turf/open/floor/wood/parquet, -/area/shuttle/escape) -"hH" = ( -/obj/effect/turf_decal/trimline/blue/line{ +/obj/effect/turf_decal/siding/wood{ dir = 8 }, -/obj/machinery/vending/wallmed/directional/west, -/turf/open/floor/iron, +/turf/open/floor/wood/large, /area/shuttle/escape) +"hG" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/filled/mid_joiner{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 1 + }, +/area/shuttle/escape/brig) "hL" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/flora/bush/fullgrass/style_random, -/obj/structure/flora/bush/ferny/style_random, -/obj/structure/flora/bush/jungle/a/style_random, -/turf/open/floor/grass, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/wood/large, /area/shuttle/escape) -"hR" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ - dir = 5 +"hP" = ( +/obj/machinery/camera/directional/south{ + c_tag = "NTSS Independence Fore Starboard Entrance" }, -/obj/machinery/computer/crew{ +/turf/open/floor/iron/dark/smooth_edge{ dir = 8 }, -/turf/open/floor/iron, -/area/shuttle/escape) -"ie" = ( -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 4 - }, -/turf/open/floor/iron, /area/shuttle/escape) "ii" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/machinery/computer/station_alert, +/obj/effect/turf_decal/tile/yellow/half{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 1 }, -/turf/open/floor/carpet/red, /area/shuttle/escape) "ij" = ( /obj/machinery/door/airlock/shuttle, /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "cruisene2" }, -/turf/open/floor/iron/dark, -/area/shuttle/escape) -"ik" = ( -/obj/effect/turf_decal/trimline/brown/filled/warning{ +/obj/effect/turf_decal/siding/wood{ dir = 8 }, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/smooth_large, /area/shuttle/escape) "il" = ( -/obj/structure/chair/stool/bar/directional/north, -/turf/open/floor/carpet/red, +/obj/machinery/sleeper/syndie/fullupgrade/nt, +/obj/structure/sign/warning/no_smoking/circle/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "NTSS Independence Infirmary" + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ + dir = 4 + }, +/turf/open/floor/iron/white/smooth_corner{ + dir = 8 + }, /area/shuttle/escape) -"ix" = ( -/obj/machinery/jukebox, +"in" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/red/filled/mid_joiner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/filled/mid_joiner{ + dir = 8 + }, +/obj/machinery/digital_clock/directional/north, +/obj/structure/closet/secure_closet{ + req_access = list("brig"); + name = "temporary evidence storage"; + desc = "It's a secure locker for holding evidence and contraband." + }, +/turf/open/floor/iron/dark/smooth_corner, +/area/shuttle/escape/brig) +"iG" = ( +/obj/machinery/light/directional/west, /turf/open/floor/iron, /area/shuttle/escape) -"iA" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/turf_decal/delivery/white, -/obj/structure/sign/warning/vacuum/directional/north, -/obj/structure/tank_dispenser, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, +"iH" = ( +/obj/structure/railing/corner/end, +/turf/open/floor/carpet/red, +/area/shuttle/escape) +"iI" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/mid_joiner{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 8 + }, +/area/shuttle/escape/brig) +"iJ" = ( +/obj/machinery/door/airlock/shuttle, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "cruisese2" + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_large, /area/shuttle/escape) "iR" = ( -/obj/machinery/status_display/evac/directional/south, -/turf/open/floor/iron, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 9 + }, +/obj/effect/turf_decal/tile/blue/anticorner{ + dir = 1 + }, +/obj/item/paper_bin/carbon, +/obj/item/pen, +/turf/open/floor/iron/dark/smooth_corner, +/area/shuttle/escape) +"ja" = ( +/obj/machinery/light/warm/directional/south, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/carpet/red, /area/shuttle/escape) "je" = ( -/obj/machinery/button/door/directional/west{ - id = "cqpriv"; - name = "Privacy Shutters Control" +/obj/structure/table/wood/shuttle_bar{ + boot_dir = 6 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 }, -/obj/effect/turf_decal/siding/wood/end{ +/obj/effect/turf_decal/siding/wood/corner{ dir = 1 }, -/turf/open/floor/wood/parquet, +/turf/open/floor/wood/large, /area/shuttle/escape) "jt" = ( /turf/closed/wall/mineral/titanium, /area/shuttle/escape) "jy" = ( -/obj/machinery/sleeper/syndie/fullupgrade/nt{ - dir = 8 +/obj/machinery/shower/directional/west, +/obj/structure/fluff/shower_drain, +/obj/effect/turf_decal/bot_white{ + color = "#52B4E9" }, /turf/open/floor/iron/dark/small, /area/shuttle/escape) -"jz" = ( -/obj/machinery/computer/emergency_shuttle, -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ - dir = 5 - }, -/turf/open/floor/iron, +"jC" = ( +/obj/effect/turf_decal/trimline/blue/corner, +/turf/open/floor/iron/white, /area/shuttle/escape) -"jF" = ( -/obj/machinery/door/airlock/shuttle, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "cruisesw2" +"jH" = ( +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/item/kirbyplants/organic/plant21, +/obj/effect/turf_decal/tile/neutral/half{ + dir = 8 + }, +/turf/open/floor/iron/edge{ + dir = 8 }, -/turf/open/floor/iron/dark, /area/shuttle/escape) "jL" = ( -/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/south{ + pixel_y = -3 + }, +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, /obj/effect/turf_decal/delivery/white, -/obj/structure/closet/emcloset/anchored, -/turf/open/floor/iron/dark, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/textured_large, /area/shuttle/escape) "jU" = ( -/obj/machinery/button{ - name = "Lift Call Button"; - pixel_y = 24; - req_access = list("cent_captain") +/obj/structure/chair/sofa/corp/right{ + dir = 1 }, -/turf/open/floor/catwalk_floor/iron_dark, +/turf/open/floor/carpet/stellar, /area/shuttle/escape) "kd" = ( /turf/template_noop, /area/template_noop) -"kh" = ( -/obj/structure/closet/secure_closet/freezer/meat, -/obj/effect/turf_decal/trimline/white/warning{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/shuttle/escape) "ki" = ( /obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ dir = 1 @@ -459,122 +774,165 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/machinery/button/door/directional/north{ + name = "Cryogenics Exit Button"; + normaldoorcontrol = 1; + id = "cruise_cryo" + }, /turf/open/floor/iron/white, /area/shuttle/escape) "kn" = ( -/obj/effect/turf_decal/tile/blue/half/contrasted{ +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ dir = 8 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ +/turf/open/floor/iron/white/smooth_edge{ + dir = 8 + }, +/area/shuttle/escape) +"ku" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/fakespace, +/area/shuttle/escape) +"kv" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/food/bbqribs{ + pixel_x = -3; + pixel_y = 13 + }, +/obj/item/food/bbqribs{ + pixel_x = 0; + pixel_y = 9 + }, +/obj/item/food/bbqribs{ + pixel_x = 2; + pixel_y = 5 + }, +/turf/open/floor/carpet/red, +/area/shuttle/escape) +"kD" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/wideplating_new/dark, +/obj/effect/turf_decal/tile/red, +/obj/machinery/status_display/ai/directional/south, +/obj/item/folder/red{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/folder/red{ + pixel_x = 3; + pixel_y = -1 + }, +/obj/item/phone{ + pixel_x = 17; + pixel_y = 3 + }, +/obj/item/storage/toolbox/emergency{ + pixel_x = -16; + pixel_y = 2 + }, +/turf/open/floor/iron/dark, +/area/shuttle/escape) +"kL" = ( +/obj/structure/railing/corner/end/flip, +/obj/effect/turf_decal/tile/neutral/half{ + dir = 4 + }, +/turf/open/floor/iron/edge{ dir = 4 }, -/obj/structure/sign/poster/official/moth_epi/directional/west, -/turf/open/floor/iron/white, /area/shuttle/escape) -"ku" = ( -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 1 +"lc" = ( +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 8 }, -/obj/effect/turf_decal/trimline/blue/filled/corner, -/turf/open/floor/iron/white, -/area/shuttle/escape) -"ky" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/door/window/brigdoor/right/directional/north{ - name = "Captain's Bed"; - req_access = list("captain") +/obj/effect/turf_decal/tile/red/half{ + dir = 8 }, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/wood/parquet, -/area/shuttle/escape) -"kz" = ( -/obj/machinery/vending/cola/pwr_game, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/iron, -/area/shuttle/escape) -"kC" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - name = "Captain's Quarters Privacy Shutters"; - dir = 8; - id = "cqpriv" +/obj/effect/turf_decal/tile/red{ + dir = 4 }, -/obj/machinery/door/window/brigdoor/left/directional/west{ - name = "Captain's Desk"; - req_access = list("captain") +/obj/machinery/flasher/directional/west{ + id = "shuttle_flasher" }, -/obj/item/folder/blue, -/turf/open/floor/iron/dark/smooth_large, -/area/shuttle/escape) -"kP" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/siding/wood{ +/turf/open/floor/iron/dark/smooth_edge{ dir = 8 }, -/turf/open/floor/wood/parquet, -/area/shuttle/escape) -"kV" = ( -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/iron/kitchen/herringbone, -/area/shuttle/escape) -"le" = ( -/obj/structure/chair/comfy/shuttle{ +/area/shuttle/escape/brig) +"lk" = ( +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 6 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/shuttle/escape) -"lq" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/mineral/titanium, +/turf/open/floor/iron, /area/shuttle/escape) -"lu" = ( -/obj/effect/turf_decal/trimline/blue/line{ - dir = 9 +"lw" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/effect/turf_decal/siding/wideplating_new/light{ + dir = 10 }, -/obj/effect/turf_decal/trimline/blue/mid_joiner{ - dir = 1 +/obj/effect/turf_decal/tile/blue/anticorner{ + dir = 8 }, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/table/reinforced, -/obj/item/surgery_tray/full/advanced, -/obj/item/book/manual/wiki/surgery, -/obj/item/stack/medical/mesh/advanced, -/obj/item/stack/medical/gauze/twelve, -/obj/item/stack/medical/suture/medicated, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/item/defibrillator/compact/combat/loaded/nanotrasen{ - combat = 0; - safety = 1 +/turf/open/floor/iron/white/smooth_corner{ + dir = 4 }, -/obj/item/healthanalyzer/advanced, -/turf/open/floor/iron/white/smooth_large, -/area/shuttle/escape) -"lw" = ( -/obj/machinery/light/directional/south, -/turf/open/floor/iron, /area/shuttle/escape) "lz" = ( -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 8 +/obj/structure/table/reinforced/rglass, +/obj/item/stack/medical/gauze/twelve{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/stack/medical/mesh/advanced{ + pixel_x = 8; + pixel_y = 0 + }, +/obj/item/stack/medical/suture/medicated{ + pixel_x = 0; + pixel_y = -5 + }, +/obj/machinery/button/door/directional/west{ + name = "Infirmary Exit Button"; + normaldoorcontrol = 1; + id = "cruise_med" }, /obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ + dir = 8 + }, +/turf/open/floor/iron/white/smooth_edge{ + dir = 8 + }, +/area/shuttle/escape) +"lC" = ( +/obj/effect/turf_decal/trimline/blue/corner{ dir = 4 }, /turf/open/floor/iron/white, /area/shuttle/escape) -"lF" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/dark, -/area/shuttle/escape) "lP" = ( /obj/machinery/door/airlock/shuttle, /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "cruisenw1" }, -/turf/open/floor/iron/dark, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_large, /area/shuttle/escape) "ma" = ( /obj/machinery/door/airlock/shuttle, @@ -584,132 +942,138 @@ /turf/open/floor/noslip, /area/shuttle/escape) "mj" = ( -/obj/structure/sink/kitchen/directional/west, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/kitchen/herringbone, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 9 + }, +/obj/structure/chair/sofa/bench/right{ + dir = 8 + }, +/obj/machinery/vending/wallmed/directional/east, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, /area/shuttle/escape) "mk" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 4 }, +/obj/effect/turf_decal/stripes/white/line, /turf/open/floor/iron/white, /area/shuttle/escape) -"mr" = ( +"ms" = ( /obj/structure/table/reinforced, -/obj/machinery/chem_dispenser/drinks/beer/fullupgrade{ - pixel_y = 8 +/obj/machinery/recharger, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 }, -/turf/open/floor/wood/parquet, +/turf/open/floor/iron/dark/smooth_large, /area/shuttle/escape) -"mB" = ( -/obj/structure/chair/sofa/corp/left{ +"mK" = ( +/obj/item/kirbyplants/organic/plant21, +/obj/effect/turf_decal/siding/thinplating_new{ dir = 4 }, -/turf/open/floor/carpet/executive, +/obj/effect/turf_decal/tile/neutral/half{ + dir = 8 + }, +/turf/open/floor/iron/edge{ + dir = 8 + }, /area/shuttle/escape) -"mN" = ( -/obj/machinery/door/airlock/shuttle, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "cruisene1" +"mL" = ( +/obj/effect/turf_decal/loading_area/white{ + dir = 8 + }, +/obj/machinery/light/small/directional/north, +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/noslip, /area/shuttle/escape) -"mR" = ( -/obj/effect/turf_decal/trimline/dark_red/filled/corner{ +"mM" = ( +/obj/effect/turf_decal/tile/neutral/anticorner{ dir = 1 }, -/obj/machinery/light/directional/west, -/turf/open/floor/iron, +/turf/open/floor/iron/corner, /area/shuttle/escape) -"mW" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/delivery/white, -/obj/structure/closet/firecloset/full, -/turf/open/floor/iron/dark, +"mR" = ( +/obj/machinery/door/airlock/shuttle, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "cruisese1" + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/escape) +"mT" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/carpet/red, /area/shuttle/escape) "nb" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 4 +/obj/structure/table/wood/shuttle_bar{ + boot_dir = 4 }, -/turf/template_noop, -/area/shuttle/escape) -"ng" = ( -/obj/machinery/button{ - name = "Lift Call Button"; - pixel_y = -41; - req_access = list("cent_captain") +/obj/item/storage/box/coffeepack/robusta{ + pixel_x = -5; + pixel_y = 7 }, -/obj/item/paper{ - default_raw_text = "The lift to the dorms is currently down for maintenance. Nanotrasen is sorry for any inconveniences this may cause."; - name = "Lift Notice" +/obj/item/storage/box/coffeepack{ + pixel_x = -1; + pixel_y = 3 }, -/obj/structure/noticeboard/directional/south{ - pixel_y = -26 +/obj/effect/turf_decal/siding/wood{ + dir = 4 }, -/turf/open/floor/iron, +/obj/machinery/light/warm/directional/north, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/wood/large, /area/shuttle/escape) "ni" = ( -/turf/open/floor/light/colour_cycle/dancefloor_b, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner, +/turf/open/floor/iron/white/smooth_edge, /area/shuttle/escape) "nk" = ( /obj/structure/chair/wood, /turf/open/floor/carpet/red, /area/shuttle/escape) -"nq" = ( -/obj/effect/turf_decal/siding/wood{ +"nw" = ( +/obj/structure/railing/corner/end/flip{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral/half{ dir = 8 }, -/turf/open/floor/wood/parquet, -/area/shuttle/escape) -"nM" = ( -/obj/machinery/status_display/ai/directional/west, -/obj/effect/turf_decal/trimline/blue/line{ +/turf/open/floor/iron/edge{ dir = 8 }, -/turf/open/floor/iron, +/area/shuttle/escape) +"nL" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/tile/neutral/full, +/turf/open/floor/iron/large, /area/shuttle/escape) "nP" = ( -/obj/machinery/washing_machine, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/chair/sofa/corp/left{ + dir = 1 }, -/obj/effect/turf_decal/bot_white, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, +/turf/open/floor/carpet/stellar, /area/shuttle/escape) "nQ" = ( -/obj/machinery/oven/range, -/obj/effect/turf_decal/bot_red, -/turf/open/floor/iron/dark/smooth_large, -/area/shuttle/escape) -"od" = ( -/obj/structure/table/wood/fancy/black, -/obj/item/flashlight/flare/candle{ - pixel_y = 6 - }, -/turf/open/floor/carpet/red, -/area/shuttle/escape) -"oe" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/shuttle/escape) -"on" = ( -/obj/machinery/status_display/evac/directional/south, +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/delivery, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, +/turf/open/floor/iron, /area/shuttle/escape) -"oA" = ( -/obj/structure/sign/nanotrasen{ - pixel_x = -32; - pixel_y = 32 - }, -/turf/open/floor/carpet/red, +"od" = ( +/turf/open/floor/mineral/gold, /area/shuttle/escape) "oB" = ( /obj/item/toy/plush/lizard_plushie/green{ @@ -717,192 +1081,271 @@ }, /turf/open/floor/plating/elevatorshaft, /area/shuttle/escape) -"oW" = ( +"oE" = ( +/obj/effect/turf_decal/tile/neutral/half{ + dir = 1 + }, +/turf/open/floor/iron/edge{ + dir = 1 + }, +/area/shuttle/escape) +"pg" = ( /obj/effect/turf_decal/loading_area/white{ dir = 8 }, +/obj/machinery/light/small/directional/south, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/shuttle/escape) -"px" = ( -/obj/machinery/vending/coffee, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron, -/area/shuttle/escape) -"pI" = ( -/obj/effect/turf_decal/loading_area/white{ +/turf/open/floor/iron/dark/smooth_edge{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, /area/shuttle/escape) -"qb" = ( -/obj/structure/disposalpipe/trunk{ +"ph" = ( +/turf/open/floor/iron/dark/side{ dir = 1 }, -/obj/structure/disposaloutlet{ - name = "dirty dishposal outlet" +/area/shuttle/escape) +"pl" = ( +/obj/machinery/door/airlock/shuttle, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "cruisene2" }, -/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/smooth_large, /area/shuttle/escape) -"qc" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/chair/sofa/bench/right{ - dir = 8 +"px" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/dark_blue{ + dir = 4 }, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 8 +/obj/item/phone{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/paper_bin/bundlenatural{ + pixel_x = 7; + pixel_y = 1 + }, +/obj/item/pen/fountain{ + pixel_x = 0; + pixel_y = -3 }, /turf/open/floor/iron/dark, /area/shuttle/escape) -"qm" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 +"py" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 }, -/obj/machinery/portable_atmospherics/canister/anesthetic_mix, -/turf/open/floor/iron/dark/small, -/area/shuttle/escape) -"qp" = ( -/obj/effect/turf_decal/trimline/white/line{ - dir = 10 +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ + dir = 8 + }, +/turf/open/floor/iron/white/smooth_edge{ + dir = 8 }, -/turf/open/floor/iron, -/area/shuttle/escape) -"qt" = ( -/turf/open/floor/iron, /area/shuttle/escape) -"qM" = ( -/obj/effect/turf_decal/trimline/dark_red/filled/corner{ - dir = 1 +"qb" = ( +/obj/machinery/button/door/directional/south{ + req_access = list("inaccessible"); + name = "Lift Call Button" }, -/obj/structure/chair/office/tactical{ +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, /turf/open/floor/iron, /area/shuttle/escape) -"qV" = ( -/obj/structure/lattice, -/turf/template_noop, -/area/shuttle/escape) -"qX" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, +"qc" = ( +/turf/open/floor/carpet/cyan, /area/shuttle/escape) -"rc" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/delivery/white, -/obj/structure/closet/firecloset/full, -/obj/structure/disposalpipe/segment{ - dir = 6 +"qm" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 }, -/turf/open/floor/iron/dark, +/obj/machinery/portable_atmospherics/canister/anesthetic_mix, +/obj/effect/turf_decal/bot_white{ + color = "#52B4E9" + }, +/turf/open/floor/iron/dark/small, +/area/shuttle/escape) +"qt" = ( +/turf/open/floor/iron, /area/shuttle/escape) -"rd" = ( -/obj/structure/chair/sofa/middle/maroon, -/turf/open/floor/wood/tile, +"qM" = ( +/obj/structure/railing/corner/end{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral/half{ + dir = 4 + }, +/turf/open/floor/iron/edge{ + dir = 4 + }, /area/shuttle/escape) -"rz" = ( -/obj/machinery/computer/records/security{ +"qV" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/fullupgrade{ dir = 4 }, -/obj/effect/turf_decal/trimline/dark_red/filled/line{ - dir = 9 +/obj/effect/turf_decal/siding/wood{ + dir = 4 }, -/turf/open/floor/iron, +/turf/open/floor/wood/large, +/area/shuttle/escape) +"rc" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/delivery/white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/textured_large, /area/shuttle/escape) "rC" = ( /obj/effect/turf_decal/loading_area/white{ dir = 4 }, /obj/machinery/light/small/directional/south, -/turf/open/floor/iron/dark, +/obj/machinery/camera/directional/south{ + c_tag = "NTSS Independence Fore Port Entrance" + }, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 8 + }, /area/shuttle/escape) -"rG" = ( -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ +"rE" = ( +/obj/structure/closet/secure_closet{ + req_access = list("brig"); + name = "temporary evidence storage"; + desc = "It's a secure locker for holding evidence and contraband." + }, +/obj/machinery/camera/directional/north{ + c_tag = "NTSS Independence Security Office" + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/red/filled/mid_joiner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/filled/mid_joiner{ dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ +/turf/open/floor/iron/dark/smooth_corner{ dir = 8 }, -/obj/structure/table/optable, -/obj/machinery/light/directional/north, -/turf/open/floor/iron/white, +/area/shuttle/escape/brig) +"rG" = ( +/obj/machinery/stasis, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ + dir = 4 + }, +/turf/open/floor/iron/white/smooth_edge{ + dir = 4 + }, /area/shuttle/escape) -"rJ" = ( -/obj/effect/turf_decal/caution/red{ +"rR" = ( +/obj/structure/chair/office/light{ dir = 4; - pixel_x = 18 + name = "Security Station" }, -/turf/open/floor/iron/dark/textured_large, +/turf/open/floor/carpet/royalblue, /area/shuttle/escape) -"rM" = ( -/obj/machinery/vending/snack, -/turf/open/floor/iron, -/area/shuttle/escape) -"rU" = ( -/obj/structure/chair/stool/bar/directional/west, -/obj/structure/disposalpipe/segment{ - dir = 9 +"rS" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/food/garlicbread{ + pixel_x = -2; + pixel_y = 9 + }, +/obj/item/food/garlicbread{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/item/food/garlicbread{ + pixel_x = -5; + pixel_y = 0 }, /turf/open/floor/carpet/red, /area/shuttle/escape) -"sr" = ( -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 1 +"rW" = ( +/turf/open/floor/iron/dark/smooth_edge{ + dir = 8 }, -/turf/open/floor/iron/dark, +/area/shuttle/escape) +"rX" = ( +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"sw" = ( +/obj/structure/chair/office/light{ + dir = 8; + name = "Crew Station" + }, +/turf/open/floor/carpet/royalblue, /area/shuttle/escape) "sz" = ( -/obj/machinery/shuttle_manipulator{ - desc = "A holographic display of the cruise shuttle we're on right now."; - max_integrity = 99999; - name = "shuttle holographic display" +/obj/machinery/door/window/left/directional/north{ + name = "The Starlight Lounge" }, -/turf/open/floor/carpet/executive, +/obj/structure/curtain/bounty, +/turf/open/floor/glass, /area/shuttle/escape) -"sK" = ( -/obj/structure/chair/sofa/right/maroon{ +"sA" = ( +/obj/structure/railing/corner/end{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral/half{ + dir = 4 + }, +/obj/machinery/status_display/evac/directional/east, +/turf/open/floor/iron/edge{ dir = 4 }, -/turf/open/floor/wood/tile, /area/shuttle/escape) "sW" = ( /obj/machinery/power/shuttle_engine/huge, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/shuttle/escape) -"sZ" = ( -/obj/structure/sign/directions/engineering/directional/east, -/obj/structure/rack, -/obj/effect/turf_decal/trimline/brown/filled/corner, -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 1 - }, -/obj/machinery/light/small/directional/north, +"sY" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"th" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/delivery, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, +/turf/open/floor/iron, /area/shuttle/escape) -"ta" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +"tn" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 4 }, -/obj/structure/chair/office/light{ - dir = 8 +/obj/effect/turf_decal/tile/red/half{ + dir = 4 }, -/turf/open/floor/wood/parquet, -/area/shuttle/escape) -"tk" = ( -/obj/machinery/door/airlock/command{ - name = "Bridge" +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 }, -/obj/effect/mapping_helpers/airlock/access/any/command/general, -/turf/open/floor/iron/textured_half, /area/shuttle/escape) -"tp" = ( -/obj/structure/railing/corner{ +"tv" = ( +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 5 + }, +/obj/structure/chair/sofa/bench/left{ dir = 4 }, +/obj/structure/sign/departments/security/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /turf/open/floor/iron, /area/shuttle/escape) "tC" = ( @@ -918,271 +1361,392 @@ }, /turf/open/floor/iron/stairs/medium, /area/shuttle/escape) -"tP" = ( -/obj/structure/sign/directions/command/directional/north{ - pixel_y = 38 +"tR" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 }, -/obj/structure/sign/directions/arrival/directional/north{ - pixel_y = 26 +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 }, -/obj/structure/sign/directions/medical/directional/east{ - pixel_x = 0; - pixel_y = 32 +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner, +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ + dir = 8 }, -/obj/effect/turf_decal/trimline/white/line{ +/turf/open/floor/iron/white/smooth_corner{ dir = 4 }, -/obj/item/kirbyplants/random, -/turf/open/floor/iron, /area/shuttle/escape) "tT" = ( -/obj/structure/railing, +/obj/machinery/light/warm/directional/south, /turf/open/floor/carpet/red, /area/shuttle/escape) "tZ" = ( -/obj/structure/table/wood/fancy/black, -/obj/item/flashlight/flare/candle{ - pixel_x = 1; - pixel_y = 10 +/obj/structure/chair/sofa/corp/corner{ + dir = 8 }, -/turf/open/floor/carpet/red, +/turf/open/floor/carpet/stellar, /area/shuttle/escape) -"uo" = ( -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/effect/turf_decal/trimline/white/warning{ - dir = 9 +"ua" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/stairs/left{ + dir = 1 }, -/turf/open/floor/iron/dark, /area/shuttle/escape) "ur" = ( -/obj/structure/table/reinforced, -/obj/machinery/processor{ - pixel_y = 12 +/obj/structure/table/wood/shuttle_bar{ + boot_dir = 2 }, -/turf/open/floor/iron/kitchen/herringbone, -/area/shuttle/escape) -"ut" = ( -/obj/effect/turf_decal/delivery/white, -/turf/open/floor/iron/dark, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, /area/shuttle/escape) "uu" = ( -/mob/living/basic/alien/maid/barmaid, -/turf/open/floor/wood/parquet, +/obj/structure/table/wood/fancy/black, +/obj/item/food/crunchy_peanut_butter_tart{ + pixel_x = -3; + pixel_y = 10 + }, +/obj/item/food/crunchy_peanut_butter_tart{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/food/crunchy_peanut_butter_tart{ + pixel_x = -4; + pixel_y = -1 + }, +/turf/open/floor/carpet/red, /area/shuttle/escape) -"uy" = ( -/obj/machinery/washing_machine, -/obj/structure/disposalpipe/segment{ - dir = 10 +"uE" = ( +/obj/effect/turf_decal/tile/neutral/half{ + dir = 4 }, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/edge{ + dir = 4 + }, +/area/shuttle/escape) +"uH" = ( +/obj/machinery/door/window/brigdoor/right/directional/east{ + name = "AI Connection Port"; + req_access = list("command") + }, +/turf/open/floor/iron/recharge_floor, /area/shuttle/escape) "uN" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/corner{ +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 5 + }, +/obj/effect/turf_decal/tile/red/half{ dir = 4 }, -/obj/effect/turf_decal/trimline/dark_blue/corner, -/obj/effect/turf_decal/trimline/dark_blue/corner{ - dir = 8 +/obj/machinery/status_display/evac/directional/east, +/obj/machinery/photocopier/gratis, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 }, -/obj/machinery/light/directional/east, -/turf/open/floor/iron, /area/shuttle/escape) -"uR" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 +"uS" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 }, -/turf/open/floor/wood/parquet, +/turf/open/floor/plating/airless, /area/shuttle/escape) "uU" = ( /obj/machinery/door/airlock/shuttle, /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "cruisesw1" }, -/turf/open/floor/iron/dark, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_large, /area/shuttle/escape) "uV" = ( /turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/escape) -"vn" = ( -/obj/structure/chair/sofa/left/maroon, -/obj/structure/sign/warning/yes_smoking/circle/directional/north, -/turf/open/floor/wood/tile, +"vb" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, /area/shuttle/escape) "vw" = ( /obj/machinery/cryo_cell{ dir = 8 }, +/obj/effect/turf_decal/delivery/white, /turf/open/floor/iron/dark/small, /area/shuttle/escape) "vy" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/wood/large, +/area/shuttle/escape) +"vJ" = ( /obj/machinery/door/airlock/shuttle{ - name = "Outdoor Play Area" + name = "Starboard Storage" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "cruisefun" +/obj/effect/turf_decal/siding/wideplating_new{ + dir = 1 }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/structure/barricade/wooden/crude, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/noslip, -/area/shuttle/escape) -"vA" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/carpet/red, +/turf/open/floor/iron/textured_half, /area/shuttle/escape) -"vJ" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Laundry Room" +"vP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/turf/open/floor/iron/dark, +/turf/open/floor/iron, /area/shuttle/escape) "vR" = ( -/obj/structure/reagent_dispensers/plumbed, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/iron/dark/smooth_large, +/obj/machinery/smartfridge/drinks, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood/large, /area/shuttle/escape) -"vW" = ( -/obj/machinery/door/airlock/shuttle, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "cruisesw1" +"vZ" = ( +/obj/structure/table/wood/fancy/black, +/obj/machinery/camera/directional/south{ + c_tag = "NTSS Independence Starlight Lounge" }, -/turf/open/floor/iron/dark, +/obj/item/toy/cards/deck/cas{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/toy/cards/deck/cas/black{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/glass, /area/shuttle/escape) -"vX" = ( -/obj/machinery/door/airlock/command{ - name = "Captain's Quarters" +"wl" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/fakespace, +/area/shuttle/escape) +"wJ" = ( +/obj/effect/turf_decal/loading_area/white{ + dir = 4 }, -/obj/effect/mapping_helpers/airlock/access/any/command/captain, -/obj/effect/turf_decal/trimline/dark_blue/arrow_cw{ +/obj/machinery/light/small/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "NTSS Independence Aft Port Entrance" + }, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 8 + }, +/area/shuttle/escape) +"wY" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/table/wood/fancy, +/obj/item/lighter{ + pixel_x = -7; + pixel_y = -3 + }, +/obj/item/storage/fancy/cigarettes/cigpack_robust{ + pixel_x = 2; + pixel_y = 8 + }, +/obj/item/storage/fancy/cigarettes/cigpack_robustgold{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/wood, +/area/shuttle/escape) +"xa" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"xj" = ( +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"xk" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/food/kebab/fiesta{ + pixel_x = -3; + pixel_y = 11 + }, +/obj/item/food/kebab/fiesta{ + pixel_x = 0; + pixel_y = 5 + }, +/obj/item/food/kebab/fiesta{ + pixel_x = 3; + pixel_y = -1 + }, +/turf/open/floor/carpet/red, +/area/shuttle/escape) +"xm" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/machinery/computer/records/medical{ dir = 4 }, -/obj/effect/turf_decal/trimline/dark_blue/arrow_ccw{ +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue/half{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 8 + }, +/area/shuttle/escape) +"xH" = ( +/obj/machinery/light/small/directional/north, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/iron, +/area/shuttle/escape) +"xP" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/food/full_english{ + pixel_x = -1; + pixel_y = 9 + }, +/obj/item/food/full_english{ + pixel_x = 0; + pixel_y = 4 + }, +/obj/item/food/full_english{ + pixel_x = 1; + pixel_y = -1 + }, +/turf/open/floor/carpet/red, +/area/shuttle/escape) +"xV" = ( +/obj/machinery/status_display/evac/directional/south, +/turf/open/floor/carpet/red, +/area/shuttle/escape) +"xX" = ( +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/shuttle/escape) +"xY" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/chisel{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/stack/sheet/mineral/gold{ + amount = 10; + pixel_x = 0; + pixel_y = 5 + }, +/obj/item/stack/sheet/mineral/silver{ + pixel_x = -9; + pixel_y = 5; + amount = 10 + }, +/turf/open/floor/carpet/red, +/area/shuttle/escape) +"yA" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 10 + }, +/obj/effect/turf_decal/tile/blue/half{ dir = 8 }, -/obj/effect/turf_decal/siding/thinplating/corner, -/turf/open/floor/iron, -/area/shuttle/escape) -"vZ" = ( -/obj/structure/lattice/catwalk{ - name = "Industrial Lift" +/obj/item/storage/fancy/donut_box{ + pixel_x = 8; + pixel_y = 3 }, -/obj/item/paper{ - default_raw_text = "Hey, Engineer. Lift is broken. We try to fix but could not. Sorry for troubles."; - name = "Engineering Notice" +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 8 }, -/turf/open/floor/plating/elevatorshaft, /area/shuttle/escape) -"wb" = ( -/obj/machinery/button/door/directional/north{ - id = "cruisekitchen"; - name = "Kitchen Shutter Control" - }, -/obj/machinery/vending/dinnerware, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/iron/dark/smooth_large, +"yC" = ( +/turf/open/floor/glass, /area/shuttle/escape) -"wj" = ( +"yQ" = ( /obj/machinery/door/airlock/shuttle{ name = "Portside Lounge" }, -/turf/open/floor/iron/dark/textured_large, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, /area/shuttle/escape) -"wl" = ( -/obj/structure/table/reinforced, -/obj/machinery/chem_dispenser/drinks/fullupgrade{ +"yS" = ( +/obj/effect/turf_decal/siding/wood{ dir = 8 }, -/turf/open/floor/carpet/executive, +/turf/open/floor/wood/large, /area/shuttle/escape) -"wJ" = ( -/obj/effect/turf_decal/loading_area/white{ +"yZ" = ( +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/item/kirbyplants/organic/plant21, +/obj/effect/turf_decal/tile/neutral/half{ dir = 4 }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/dark, -/area/shuttle/escape) -"xj" = ( -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"xx" = ( -/obj/machinery/vending/cola/red, -/turf/open/floor/iron, -/area/shuttle/escape) -"xH" = ( -/obj/structure/sign/directions/engineering/directional/west, -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 8 +/turf/open/floor/iron/edge{ + dir = 4 }, -/obj/machinery/light/small/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, /area/shuttle/escape) -"xL" = ( +"ze" = ( /obj/effect/turf_decal/loading_area/white{ dir = 8 }, -/obj/machinery/light/small/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/shuttle/escape) -"yc" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/machinery/modular_computer/preset/command{ - dir = 1 +/obj/machinery/light/small/directional/south, +/obj/machinery/status_display/evac/directional/south, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 }, -/turf/open/floor/wood/parquet, /area/shuttle/escape) -"ye" = ( -/obj/structure/table/wood/fancy/black, -/obj/item/flashlight/flare/candle{ - pixel_y = 10 +"zf" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 }, -/turf/open/floor/carpet/red, -/area/shuttle/escape) -"yC" = ( -/turf/open/floor/carpet/executive, +/turf/open/floor/wood/large, /area/shuttle/escape) -"yS" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Outdoor Play Area" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "cruisefun" +"zj" = ( +/obj/structure/window/reinforced/spawner/directional/north{ + pixel_y = 3 }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/structure/barricade/wooden/crude, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/delivery/white, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/textured_large, /area/shuttle/escape) -"ze" = ( -/obj/effect/turf_decal/loading_area/white{ +"zp" = ( +/obj/machinery/computer/aifixer, +/obj/effect/turf_decal/tile/yellow/half{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ dir = 8 }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/dark, -/area/shuttle/escape) -"zf" = ( -/obj/structure/disposaloutlet, -/obj/structure/disposalpipe/trunk{ +/turf/open/floor/iron/dark/smooth_edge{ dir = 1 }, -/obj/structure/lattice/catwalk, -/turf/template_noop, /area/shuttle/escape) "zv" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id = "cruisekitchen" - }, -/obj/machinery/door/window/brigdoor/right/directional/north{ - req_access = list("kitchen") +/obj/structure/chair/wood/wings{ + dir = 8 }, -/turf/open/floor/iron/dark/smooth_large, +/turf/open/floor/carpet/red, /area/shuttle/escape) "zy" = ( /obj/machinery/door/airlock/shuttle, @@ -1191,23 +1755,17 @@ }, /turf/open/floor/noslip, /area/shuttle/escape) -"zA" = ( -/obj/structure/table/reinforced, -/obj/item/food/dough, -/obj/item/food/dough, -/obj/item/food/dough, -/turf/open/floor/iron/kitchen/herringbone, -/area/shuttle/escape) -"zE" = ( -/obj/structure/sign/poster/official/work_for_a_future/directional/west, -/obj/machinery/light/directional/west, -/turf/open/floor/iron, -/area/shuttle/escape) -"zH" = ( -/obj/machinery/duct, -/obj/structure/sign/warning/no_smoking/circle/directional/west, -/obj/machinery/light/directional/west, -/turf/open/floor/iron/kitchen/herringbone, +"zB" = ( +/obj/structure/chair/office/light{ + dir = 1; + name = "Engineer's Station" + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, /area/shuttle/escape) "zP" = ( /obj/machinery/power/shuttle_engine/heater{ @@ -1215,57 +1773,109 @@ }, /turf/open/floor/plating/airless, /area/shuttle/escape) -"zW" = ( -/obj/effect/turf_decal/trimline/white/line{ +"zX" = ( +/mob/living/basic/drone/snowflake/bardrone, +/turf/open/floor/wood/parquet, +/area/shuttle/escape) +"Ac" = ( +/obj/machinery/light/cold/directional/east, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 }, -/obj/item/kirbyplants/random, -/turf/open/floor/iron, -/area/shuttle/escape) -"zX" = ( -/obj/effect/turf_decal/trimline/white/line{ - dir = 6 +/obj/effect/turf_decal/trimline/red/filled/mid_joiner{ + dir = 4 }, -/turf/open/floor/iron, -/area/shuttle/escape) -"Am" = ( -/obj/structure/sign/directions/dorms/directional/south, -/turf/open/floor/iron, -/area/shuttle/escape) -"Av" = ( -/obj/structure/railing, -/obj/machinery/light/directional/north, -/turf/open/floor/iron/stairs{ +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 + }, +/area/shuttle/escape/brig) +"Aj" = ( +/obj/machinery/door/window/survival_pod/left/directional/west{ + name = "Bridge Office"; + req_access = list("command") + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue/half{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_edge{ dir = 8 }, /area/shuttle/escape) -"AD" = ( -/obj/machinery/door/airlock/shuttle, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "cruisesw1" +"Ap" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 }, -/turf/open/floor/noslip, +/mob/living/basic/bot/medbot/stationary{ + damage_type_healer = "all_damage"; + heal_amount = 5; + heal_threshold = 0; + skin = "adv"; + name = "Doctor Rumack" + }, +/turf/open/floor/iron/white, /area/shuttle/escape) -"AF" = ( -/turf/open/floor/wood/parquet, +"Ax" = ( +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 9 + }, +/turf/open/floor/iron, /area/shuttle/escape) -"AL" = ( -/obj/structure/table/reinforced, -/obj/machinery/chem_dispenser/drinks/fullupgrade{ +"AR" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"AS" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/food/honeybun{ + pixel_x = -5; pixel_y = 8 }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/item/food/honeybun{ + pixel_x = 4; + pixel_y = 3 }, -/turf/open/floor/wood/parquet, +/obj/item/food/honeybun{ + pixel_x = -8; + pixel_y = -1 + }, +/turf/open/floor/carpet/red, +/area/shuttle/escape) +"AT" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/machinery/computer/records/security/laptop{ + dir = 8 + }, +/obj/effect/turf_decal/siding/dark_red{ + dir = 4 + }, +/turf/open/floor/iron/dark/herringbone, +/area/shuttle/escape/brig) +"AV" = ( +/obj/machinery/camera/directional/north{ + c_tag = "NTSS Independence Aft Starboard Entrance" + }, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 8 + }, +/area/shuttle/escape) +"AW" = ( +/obj/structure/sign/painting/library{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/carpet/red, /area/shuttle/escape) "Bb" = ( -/obj/machinery/light/directional/north, /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 6 }, -/obj/structure/table/reinforced, +/obj/structure/table/reinforced/rglass, /obj/item/wrench/medical{ pixel_x = -5 }, @@ -1281,297 +1891,592 @@ pixel_x = -7; pixel_y = 3 }, +/obj/machinery/digital_clock/directional/north, /turf/open/floor/iron/white, /area/shuttle/escape) -"Bd" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/wood/tile, +"Bc" = ( +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 6 + }, +/obj/structure/chair/sofa/bench/right{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, /area/shuttle/escape) -"Bm" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/siding/wood{ +"Bd" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Shuttle Security Office" + }, +/obj/effect/turf_decal/siding/dark_red{ dir = 4 }, -/turf/open/floor/wood/parquet, +/obj/effect/turf_decal/siding/dark_red{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/shuttle/escape/brig) +"Bm" = ( +/obj/structure/window/reinforced/spawner/directional/north{ + pixel_y = 3 + }, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/textured_large, /area/shuttle/escape) "Bn" = ( -/turf/open/floor/iron/dark, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, /area/shuttle/escape) "Bv" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/effect/turf_decal/delivery/white, -/obj/structure/rack, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/dark, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood/large, /area/shuttle/escape) -"Bw" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id = "cruisekitchen" +"By" = ( +/obj/item/paper{ + default_raw_text = "The lift to the dorms is currently down for maintenance. Nanotrasen is sorry for any inconveniences this may cause."; + name = "Lift Notice" }, -/obj/machinery/door/window/brigdoor/left/directional/north{ - req_access = list("kitchen") +/obj/structure/noticeboard/directional/south{ + pixel_y = -26 }, -/turf/open/floor/iron/dark/smooth_large, -/area/shuttle/escape) -"By" = ( -/obj/machinery/door/airlock/shuttle, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "cruisene1" +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 }, -/turf/open/floor/iron/dark, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/camera/directional/south{ + c_tag = "NTSS Independence Central Hall Aft" + }, +/turf/open/floor/iron, /area/shuttle/escape) -"Bz" = ( -/obj/structure/table/reinforced, -/obj/machinery/microwave{ - pixel_y = 8 +"BD" = ( +/obj/structure/table/wood/shuttle_bar{ + boot_dir = 4 }, -/obj/effect/turf_decal/bot_red, -/turf/open/floor/iron/dark/smooth_large, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass{ + pixel_x = -2; + pixel_y = 1 + }, +/turf/open/floor/wood/large, /area/shuttle/escape) "BF" = ( /obj/machinery/door/airlock/shuttle, /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "cruisese1" }, -/turf/open/floor/iron/dark, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_large, /area/shuttle/escape) "BI" = ( -/obj/structure{ - density = 1; - icon = 'icons/obj/machines/shuttle_manipulator.dmi'; - icon_state = "hologram_on"; - light_color = "#2cb2e8"; - light_range = 2; - max_integrity = 7500; - mouse_opacity = 0; - name = "holographic projection"; - pixel_x = -32; - pixel_y = 17 - }, -/obj/structure{ - desc = "This is the shuttle we're on. It's amazing what Nanotrasen can do once they actually put more than ten seconds of effort into their projects."; - icon = 'icons/obj/machines/shuttle_manipulator.dmi'; - icon_state = "hologram_whiteship"; - light_color = "#2cb2e8"; - light_range = 7; - max_integrity = 75000; - name = "Cruise Shuttle Hologram"; - pixel_x = -32; - pixel_y = 27 - }, -/turf/open/floor/carpet/executive, +/obj/machinery/door/window/right/directional/north{ + name = "The Starlight Lounge" + }, +/obj/structure/curtain/bounty, +/turf/open/floor/glass, /area/shuttle/escape) -"BZ" = ( -/obj/machinery/duct, -/turf/open/floor/iron/kitchen/herringbone, +"BP" = ( +/obj/machinery/sleeper/syndie/fullupgrade/nt, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ + dir = 8 + }, +/turf/open/floor/iron/white/smooth_corner, /area/shuttle/escape) -"Cl" = ( -/obj/structure/chair/stool/bar/directional/east, -/obj/structure/disposalpipe/junction{ +"BW" = ( +/obj/effect/turf_decal/siding/wood{ dir = 8 }, -/turf/open/floor/carpet/red, +/obj/structure/closet/crate/bin, +/turf/open/floor/wood, /area/shuttle/escape) -"Cm" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ +"BZ" = ( +/obj/machinery/door/window/survival_pod/left/directional/west{ + name = "Emergency Surgery"; + req_access = list("surgery") + }, +/obj/effect/turf_decal/siding/wideplating_new/light{ dir = 8 }, -/turf/template_noop, +/obj/effect/turf_decal/tile/blue/half{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/white/smooth_edge{ + dir = 8 + }, +/area/shuttle/escape) +"Ca" = ( +/obj/item/radio/intercom/directional/east, +/turf/open/floor/carpet/red, +/area/shuttle/escape) +"Cf" = ( +/obj/structure/railing/corner/end/flip, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, /area/shuttle/escape) +"Cq" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/item/flashlight/seclite{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/effect/turf_decal/siding/dark_red{ + dir = 1 + }, +/turf/open/floor/iron/dark/herringbone, +/area/shuttle/escape/brig) "Cr" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer{ dir = 4 }, +/obj/machinery/vending/wallmed/directional/south, /turf/open/floor/iron/dark/small, /area/shuttle/escape) "Cu" = ( -/obj/effect/turf_decal/bot_white, -/turf/open/floor/iron/dark, +/obj/structure/railing/corner/end{ + dir = 1 + }, +/turf/open/floor/carpet/cyan, /area/shuttle/escape) -"CN" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"CE" = ( +/obj/effect/spawner/random/vending/colavend, +/obj/effect/turf_decal/tile/neutral/full, +/turf/open/floor/iron/large, +/area/shuttle/escape) +"CM" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/food/baked_potato{ + pixel_x = -2; + pixel_y = 12 }, -/turf/closed/wall/mineral/titanium, +/obj/item/food/baked_potato{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/item/food/baked_potato{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/food/butter{ + pixel_x = 9; + pixel_y = -5 + }, +/turf/open/floor/carpet/red, +/area/shuttle/escape) +"Db" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/wideplating_new/dark, +/obj/structure/sign/calendar/directional/south, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/pen, +/turf/open/floor/iron/dark, +/area/shuttle/escape) +"Dr" = ( +/turf/open/floor/carpet/green, /area/shuttle/escape) "Dx" = ( /obj/machinery/light/small/directional/south, -/turf/open/floor/iron/dark, +/obj/structure/closet/crate/internals, +/obj/effect/turf_decal/bot, +/obj/item/storage/toolbox/emergency{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/storage/toolbox/emergency{ + pixel_x = 2; + pixel_y = -4 + }, +/obj/item/flashlight/flare, +/obj/item/flashlight/flare{ + pixel_x = -1; + pixel_y = -3 + }, +/obj/item/flashlight/flare{ + pixel_x = -2; + pixel_y = -6 + }, +/obj/item/radio{ + pixel_x = -7; + pixel_y = -4 + }, +/obj/item/radio{ + pixel_x = -3; + pixel_y = -4 + }, +/obj/item/radio{ + pixel_x = 1; + pixel_y = -4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, /area/shuttle/escape) "DA" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/siding/wood, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/machinery/chem_master/condimaster{ + desc = "Looks like a knock-off chem-master. Perhaps useful for separating liquids when mixing drinks precisely. Also dispenses condiments."; + name = "HoochMaster Deluxe" }, -/obj/effect/fun_balloon/sentience/emergency_shuttle{ - group_name = "bar staff on the NTTS Independence" +/obj/machinery/light/warm/directional/west, +/obj/effect/turf_decal/siding/wood{ + dir = 4 }, -/turf/open/floor/wood/parquet, +/turf/open/floor/wood/large, /area/shuttle/escape) "DF" = ( /obj/machinery/door/airlock/shuttle{ - name = "Cargo Hold" + name = "Port Storage" + }, +/obj/effect/turf_decal/siding/wideplating_new{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/textured_half, +/area/shuttle/escape) +"DK" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/folder/blue{ + pixel_x = 4; + pixel_y = 1 + }, +/obj/item/folder/blue{ + pixel_x = 7; + pixel_y = -1 + }, +/obj/item/folder/white{ + pixel_x = -1; + pixel_y = -3 }, -/obj/effect/mapping_helpers/airlock/access/any/supply/general, -/obj/effect/mapping_helpers/airlock/unres, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, /turf/open/floor/iron/dark, /area/shuttle/escape) -"DH" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 +"DQ" = ( +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 10 }, -/obj/effect/turf_decal/siding/wood{ +/obj/structure/chair/sofa/bench/left{ dir = 8 }, -/turf/open/floor/wood/parquet, -/area/shuttle/escape) -"DK" = ( -/obj/machinery/status_display/ai/directional/south, +/obj/structure/sign/departments/medbay/alt/directional/east, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /turf/open/floor/iron, /area/shuttle/escape) -"DL" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/effect/turf_decal/delivery/white, -/obj/structure/closet/firecloset/full, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/shuttle/escape) "DU" = ( -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 +/obj/machinery/door/airlock/command{ + name = "Shuttle Bridge" + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/tile/neutral/half{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/iron/edge{ + dir = 8 }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/computer/operating, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron/white, /area/shuttle/escape) "DV" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ dir = 8 }, +/obj/effect/turf_decal/stripes/white/line, +/obj/machinery/light/cold/directional/west, /turf/open/floor/iron/white, /area/shuttle/escape) -"En" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/mineral/titanium/nodiagonal, +"DW" = ( +/obj/effect/turf_decal/tile/neutral/half{ + dir = 4 + }, +/obj/machinery/camera/directional/east{ + c_tag = "NTSS Independence Aft Hall Port" + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/edge{ + dir = 4 + }, +/area/shuttle/escape) +"Ef" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/thinplating_new/dark/end, +/obj/item/radio{ + pixel_x = 7; + pixel_y = 12 + }, +/obj/item/radio{ + pixel_x = 3; + pixel_y = 7 + }, +/obj/item/assembly/flash/handheld{ + pixel_x = -8; + pixel_y = 9 + }, +/obj/item/restraints/handcuffs{ + pixel_x = -3; + pixel_y = -4 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/escape) +"Em" = ( +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/structure/chair/sofa/bench/left{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/half{ + dir = 4 + }, +/turf/open/floor/iron/edge{ + dir = 4 + }, /area/shuttle/escape) -"Eu" = ( -/obj/effect/turf_decal/trimline/white/line{ +"En" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/reagent_containers/cup/bottle/morphine{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = -1; + pixel_y = -3 + }, +/obj/item/reagent_containers/blood/o_minus{ + pixel_x = 9; + pixel_y = 9 + }, +/obj/effect/turf_decal/siding/wideplating_new/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue/half{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/machinery/light/directional/south, -/turf/open/floor/iron, +/turf/open/floor/iron/white/smooth_edge{ + dir = 4 + }, /area/shuttle/escape) +"Et" = ( +/turf/open/floor/iron/dark/herringbone, +/area/shuttle/escape/brig) "Ew" = ( /obj/structure/railing{ dir = 8 }, /turf/open/floor/iron/stairs/medium, /area/shuttle/escape) -"EA" = ( -/obj/machinery/griddle, -/obj/effect/turf_decal/bot_red, -/turf/open/floor/iron/dark/smooth_large, +"Fb" = ( +/obj/structure/chair/sofa/middle/maroon{ + dir = 1 + }, +/turf/open/floor/carpet/green, /area/shuttle/escape) "Ff" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/status_display/evac/directional/south, -/turf/open/floor/iron/dark, +/mob/living/basic/alien/maid/barmaid, +/turf/open/floor/wood/parquet, /area/shuttle/escape) -"Fp" = ( -/obj/structure/railing/corner{ +"Fk" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/machinery/recharger{ + pixel_x = 6; + pixel_y = 0 + }, +/obj/effect/turf_decal/siding/dark_red{ + dir = 9 + }, +/obj/machinery/recharger{ + pixel_x = -6; + pixel_y = 0 + }, +/turf/open/floor/iron/dark/herringbone, +/area/shuttle/escape/brig) +"Fq" = ( +/obj/structure/sign/nanotrasen{ + pixel_x = 32; + pixel_y = 32 + }, +/turf/open/floor/carpet/red, +/area/shuttle/escape) +"FC" = ( +/obj/effect/turf_decal/siding/thinplating_new/corner{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, /turf/open/floor/iron, /area/shuttle/escape) -"Fu" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/flora/bush/fullgrass/style_random, -/obj/structure/flora/bush/lavendergrass/style_random, -/obj/structure/flora/bush/flowers_br/style_random, -/turf/open/floor/grass, -/area/shuttle/escape) -"FA" = ( -/obj/machinery/door/airlock/shuttle, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "cruisesw2" +"FH" = ( +/obj/machinery/vending/boozeomat, +/obj/effect/turf_decal/siding/wood{ + dir = 4 }, -/turf/open/floor/noslip, +/turf/open/floor/wood/large, /area/shuttle/escape) -"FD" = ( -/obj/machinery/light/directional/west, +"FJ" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/storage/toolbox/electrical{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/storage/toolbox/emergency{ + pixel_x = 4; + pixel_y = -4 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/shuttle/escape) -"FH" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing, -/turf/template_noop, +"FO" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/camera/directional/north{ + c_tag = "NTSS Independence Portside Lounge" + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/wood, /area/shuttle/escape) -"Gg" = ( -/obj/structure/lattice/catwalk, -/obj/structure/barricade/sandbags, -/obj/structure/railing{ +"FQ" = ( +/obj/effect/turf_decal/tile/neutral/anticorner{ + dir = 8 + }, +/turf/open/floor/iron/corner{ + dir = 4 + }, +/area/shuttle/escape) +"FX" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/siding/thinplating_new/dark{ dir = 1 }, -/turf/template_noop, +/obj/effect/turf_decal/delivery/white, +/obj/structure/window/reinforced/spawner/directional/south{ + pixel_y = -3 + }, +/turf/open/floor/iron/dark/textured_large, /area/shuttle/escape) -"GA" = ( -/obj/structure/disposalpipe/segment{ +"Gg" = ( +/obj/structure/musician/piano, +/turf/open/floor/carpet/red, +/area/shuttle/escape) +"Gl" = ( +/obj/effect/turf_decal/siding/thinplating_new{ dir = 4 }, -/obj/structure/chair/comfy/shuttle{ - dir = 4 +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/tile/neutral/half{ + dir = 8 }, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 6 +/turf/open/floor/iron/edge{ + dir = 8 }, -/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/escape) +"Gn" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/tank_dispenser/oxygen, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, /area/shuttle/escape) "GD" = ( /obj/machinery/door/airlock/shuttle, /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "cruisene1" }, -/turf/open/floor/iron/dark, -/area/shuttle/escape) -"GZ" = ( -/obj/structure/table/wood/fancy/black, -/obj/item/flashlight/flare/candle{ - pixel_y = 8; - pixel_x = -1 +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, -/turf/open/floor/carpet/red, +/turf/open/floor/iron/dark/smooth_large, /area/shuttle/escape) +"GP" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/storage/box/handcuffs{ + pixel_x = -6; + pixel_y = 11 + }, +/obj/item/storage/box/handcuffs{ + pixel_x = -6; + pixel_y = 3 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 9 + }, +/obj/effect/turf_decal/tile/red/anticorner{ + dir = 1 + }, +/obj/item/book/manual/wiki/security_space_law{ + pixel_x = 9; + pixel_y = 1 + }, +/turf/open/floor/iron/dark/smooth_corner, +/area/shuttle/escape/brig) +"GT" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/effect/turf_decal/siding/wideplating_new/dark, +/obj/effect/turf_decal/tile/red/half, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_edge, +/area/shuttle/escape/brig) "Hk" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - name = "Captain's Quarters Privacy Shutters"; - dir = 8; - id = "cqpriv" +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/item/kirbyplants/organic/plant22, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue/half{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 8 }, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/recharger, -/turf/open/floor/iron/dark/smooth_large, /area/shuttle/escape) "HD" = ( -/obj/machinery/light/directional/south, -/turf/open/floor/iron/dark, -/area/shuttle/escape) -"HH" = ( -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 1 - }, -/turf/open/floor/iron, +/turf/open/floor/mineral/silver, /area/shuttle/escape) "HK" = ( /obj/effect/turf_decal/stripes/line{ @@ -1583,22 +2488,38 @@ /obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ dir = 4 }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 8 + }, +/obj/machinery/meter, /turf/open/floor/iron/white, /area/shuttle/escape) -"HR" = ( -/obj/item/paper{ - default_raw_text = "Due to safety hazards, the outdoor laser tag arena has been closed until further notice."; - name = "NOTICE" +"HQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, +/turf/open/floor/iron, /area/shuttle/escape) "Ig" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, -/obj/effect/turf_decal/trimline/white/warning{ - dir = 8 - }, -/turf/open/floor/iron/dark, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/fakespace, +/area/shuttle/escape) +"Ih" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/sign/clock/directional/north, +/turf/open/floor/wood, +/area/shuttle/escape) +"Ix" = ( +/obj/machinery/recharge_station, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, /area/shuttle/escape) "IO" = ( /obj/structure/railing/corner{ @@ -1607,17 +2528,46 @@ /turf/open/floor/carpet/red, /area/shuttle/escape) "IR" = ( -/obj/structure/chair/sofa/corner/maroon{ +/obj/structure/chair/sofa/corp{ dir = 4 }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/wood/tile, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/carpet/stellar, /area/shuttle/escape) -"Ja" = ( -/obj/effect/turf_decal/trimline/white/line{ - dir = 1 +"IS" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/wood, +/area/shuttle/escape) +"IT" = ( +/obj/machinery/door/window/survival_pod/left/directional/east{ + req_access = list("brig"); + name = "Holding Cell" + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/half{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 + }, +/area/shuttle/escape/brig) +"IY" = ( +/obj/effect/turf_decal/loading_area/white{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/obj/machinery/status_display/evac/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 8 }, -/turf/open/floor/iron, /area/shuttle/escape) "Jc" = ( /obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, @@ -1627,44 +2577,74 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/structure/sign/warning/no_smoking/circle/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "NTSS Independence Infirmary Cryogenics" + }, /turf/open/floor/iron/white, /area/shuttle/escape) +"Jh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 + }, +/area/shuttle/escape) "Jj" = ( -/obj/structure/sign/directions/supply/directional/south, -/obj/effect/turf_decal/trimline/white/line{ - dir = 1 +/obj/structure/table/wood/shuttle_bar{ + boot_dir = 4 }, -/turf/open/floor/iron, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/storage/fancy/cigarettes/cigars/havana, +/obj/item/lighter{ + pixel_x = 9; + pixel_y = -9 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood/large, /area/shuttle/escape) "Jk" = ( -/obj/structure/table/reinforced, -/obj/machinery/chem_dispenser/drinks/beer/fullupgrade{ +/obj/structure/chair/sofa/corp/right{ dir = 8 }, -/obj/machinery/light/directional/east, -/turf/open/floor/carpet/executive, -/area/shuttle/escape) -"Jl" = ( -/mob/living/basic/bot/vibebot, -/turf/open/floor/iron, +/obj/structure/sign/clock/directional/east, +/turf/open/floor/carpet/stellar, /area/shuttle/escape) "Jo" = ( /obj/effect/turf_decal/loading_area/white{ dir = 4 }, -/turf/open/floor/iron/dark, -/area/shuttle/escape) -"Jq" = ( -/obj/effect/turf_decal/trimline/white/corner{ +/turf/open/floor/iron/dark/smooth_edge{ dir = 8 }, +/area/shuttle/escape) +"Jx" = ( +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/shuttle/escape) "JJ" = ( -/obj/structure/chair/wood{ +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/shuttle/escape) +"JK" = ( +/obj/effect/turf_decal/loading_area/white{ dir = 8 }, -/turf/open/floor/carpet/red, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 + }, /area/shuttle/escape) "JS" = ( /obj/machinery/door/airlock/shuttle, @@ -1673,150 +2653,246 @@ }, /turf/open/floor/noslip, /area/shuttle/escape) -"JU" = ( -/obj/structure/sign/poster/official/help_others/directional/west, -/obj/machinery/light/directional/west, +"JY" = ( +/obj/machinery/power/shuttle_engine/huge, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"JZ" = ( +/obj/structure/railing/corner/end, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /turf/open/floor/iron, /area/shuttle/escape) "Kn" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/siding/thinplating/dark{ +/obj/structure/chair/comfy/shuttle{ dir = 4 }, -/turf/open/floor/iron/dark, -/area/shuttle/escape) -"Kq" = ( -/obj/effect/turf_decal/trimline/white/line{ - dir = 5 +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 9 }, -/turf/open/floor/iron, +/obj/effect/turf_decal/trimline/red/filled/mid_joiner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/filled/mid_joiner{ + dir = 8 + }, +/obj/machinery/button/flasher{ + id = "shuttle_flasher"; + pixel_x = -24 + }, +/turf/open/floor/iron/dark/smooth_corner, +/area/shuttle/escape/brig) +"Ks" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/food/nigiri_sushi{ + pixel_x = -4; + pixel_y = 12 + }, +/obj/item/food/nigiri_sushi{ + pixel_x = 0; + pixel_y = 6 + }, +/obj/item/food/nigiri_sushi{ + pixel_x = 4; + pixel_y = 0 + }, +/turf/open/floor/carpet/red, /area/shuttle/escape) "Kw" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/corner{ - dir = 4 +/obj/machinery/computer/emergency_shuttle, +/obj/effect/turf_decal/tile/dark_blue/half{ + dir = 1 }, -/obj/structure/chair/office/tactical{ +/turf/open/floor/iron/dark/smooth_edge{ dir = 1 }, -/turf/open/floor/iron, /area/shuttle/escape) "KH" = ( -/obj/effect/turf_decal/trimline/white/line{ - dir = 4 +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 }, -/turf/open/floor/iron, +/obj/effect/turf_decal/delivery/white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/textured_large, /area/shuttle/escape) "KR" = ( -/obj/structure/lattice/catwalk, -/obj/structure/barricade/sandbags, -/turf/template_noop, +/obj/structure/table, +/obj/machinery/coffeemaker/impressa, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/status_display/evac/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "NTSS Independence Bar" + }, +/turf/open/floor/wood/large, /area/shuttle/escape) -"KW" = ( -/obj/machinery/deepfryer, -/obj/effect/turf_decal/bot_red, -/turf/open/floor/iron/dark/smooth_large, +"KT" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/food/honey_roll{ + pixel_x = -5; + pixel_y = 11 + }, +/obj/item/food/honey_roll{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/food/honey_roll{ + pixel_x = -7; + pixel_y = 3 + }, +/turf/open/floor/carpet/red, /area/shuttle/escape) "KY" = ( -/obj/structure/chair/wood{ +/obj/effect/turf_decal/siding/wood/corner{ dir = 4 }, -/turf/open/floor/carpet/red, +/turf/open/floor/wood/large, /area/shuttle/escape) "La" = ( /turf/open/floor/carpet/red, /area/shuttle/escape) "Ld" = ( -/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/north{ + pixel_y = 3 + }, +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/siding/thinplating_new/dark, /obj/effect/turf_decal/delivery/white, -/obj/structure/closet/emcloset/anchored, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/textured_large, /area/shuttle/escape) -"Ll" = ( -/obj/machinery/disposal/bin{ - name = "dirty dishposal" +"Lf" = ( +/obj/structure/railing/corner/end/flip{ + dir = 1 }, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/carpet/red, -/area/shuttle/escape) -"Lx" = ( -/obj/machinery/status_display/ai/directional/east, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 4 +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, /turf/open/floor/iron, /area/shuttle/escape) -"Ly" = ( -/obj/machinery/door/window/brigdoor/left/directional/east{ - req_access = list("kitchen"); - name = "Dirty Dish Delivery" - }, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/effect/turf_decal/delivery/white, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark/smooth_large, +"Ll" = ( +/obj/structure/chair/stool/bar/directional/west, +/turf/open/floor/carpet/red, /area/shuttle/escape) -"LB" = ( -/obj/effect/turf_decal/trimline/dark_blue/arrow_cw{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/dark_blue/corner{ +"LA" = ( +/obj/effect/turf_decal/siding/dark_red{ dir = 1 }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 6 +/turf/open/floor/iron/dark/herringbone, +/area/shuttle/escape/brig) +"LE" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/item/folder/red, +/obj/item/folder/red{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/assembly/flash/handheld{ + pixel_x = -12; + pixel_y = 1 + }, +/obj/effect/turf_decal/siding/dark_red{ + dir = 5 + }, +/turf/open/floor/iron/dark/herringbone, +/area/shuttle/escape/brig) +"LF" = ( +/obj/effect/turf_decal/tile/neutral/anticorner{ + dir = 4 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/corner{ + dir = 8 }, -/obj/structure/railing, -/turf/open/floor/iron, /area/shuttle/escape) -"LD" = ( -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 +"LG" = ( +/obj/effect/turf_decal/trimline/blue/end{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8 }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/stasis, /turf/open/floor/iron/white, /area/shuttle/escape) +"LQ" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/vending/cigarette, +/turf/open/floor/wood, +/area/shuttle/escape) "LU" = ( /obj/machinery/door/airlock/shuttle, /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "cruisenw2" }, -/turf/open/floor/iron/dark, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_large, /area/shuttle/escape) +"Mb" = ( +/obj/structure/chair/comfy/shuttle, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 1 + }, +/obj/machinery/light/cold/directional/north, +/obj/effect/turf_decal/tile/red/half{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 1 + }, +/area/shuttle/escape/brig) "Md" = ( /obj/structure/railing{ dir = 4 }, /turf/open/floor/iron/stairs/right, /area/shuttle/escape) -"Mg" = ( -/obj/effect/turf_decal/trimline/blue/line{ - dir = 10 +"Mp" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/food/baguette{ + pixel_x = -2; + pixel_y = 9 }, -/obj/effect/turf_decal/trimline/blue/mid_joiner, -/obj/effect/turf_decal/trimline/blue/mid_joiner{ - dir = 8 +/obj/item/food/baguette{ + pixel_x = 0; + pixel_y = 2 }, -/obj/machinery/iv_drip, -/obj/item/reagent_containers/blood/o_minus, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron/white/smooth_large, +/obj/item/food/baguette{ + pixel_x = 2; + pixel_y = -5 + }, +/turf/open/floor/carpet/red, /area/shuttle/escape) "Mt" = ( -/obj/machinery/status_display/evac/directional/north, -/turf/open/floor/iron/dark, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 8 + }, /area/shuttle/escape) "Mv" = ( -/mob/living/basic/drone/snowflake/bardrone, -/turf/open/floor/wood/parquet, +/obj/machinery/modular_computer/preset/id{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_blue/half{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 + }, /area/shuttle/escape) "Mz" = ( -/obj/effect/turf_decal/trimline/white/line{ - dir = 8 +/obj/structure/railing/corner{ + dir = 4 }, -/turf/open/floor/iron, +/turf/open/floor/carpet/cyan, /area/shuttle/escape) "MK" = ( /obj/machinery/door/airlock/shuttle, @@ -1825,14 +2901,25 @@ }, /turf/open/floor/noslip, /area/shuttle/escape) -"MS" = ( -/obj/structure/chair/comfy/shuttle{ +"MN" = ( +/obj/effect/turf_decal/siding/thinplating_new{ dir = 8 }, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 10 +/obj/structure/chair/sofa/bench/right{ + dir = 8 }, -/turf/open/floor/iron/dark/smooth_large, +/obj/effect/turf_decal/tile/neutral/half{ + dir = 4 + }, +/turf/open/floor/iron/edge{ + dir = 4 + }, +/area/shuttle/escape) +"MS" = ( +/obj/structure/railing/corner/end/flip{ + dir = 1 + }, +/turf/open/floor/carpet/cyan, /area/shuttle/escape) "MV" = ( /obj/structure/railing{ @@ -1840,15 +2927,53 @@ }, /turf/open/floor/iron/stairs/left, /area/shuttle/escape) -"Nf" = ( -/obj/machinery/status_display/evac/directional/north, +"Nq" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/clothing/suit/hazardvest{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/item/clothing/suit/hazardvest{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/clothing/suit/hazardvest{ + pixel_x = 0; + pixel_y = -1 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + pixel_x = -1; + pixel_y = 0 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + pixel_x = 1; + pixel_y = -3 + }, +/obj/item/flashlight{ + pixel_x = 9; + pixel_y = 11 + }, +/obj/item/flashlight{ + pixel_x = 9; + pixel_y = 5 + }, +/obj/item/flashlight{ + pixel_x = 9; + pixel_y = -1 + }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, +/turf/open/floor/iron, /area/shuttle/escape) -"NA" = ( -/obj/structure/chair/stool/bar/directional/east, -/obj/structure/disposalpipe/segment, -/turf/open/floor/carpet/red, +"Nt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, /area/shuttle/escape) "NF" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ @@ -1856,119 +2981,227 @@ }, /turf/closed/wall/mineral/titanium, /area/shuttle/escape) -"Ok" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/wood/parquet, -/area/shuttle/escape) -"Oq" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/trimline/dark_red/filled/corner{ - dir = 1 +"Oc" = ( +/turf/open/floor/iron/dark/side{ + dir = 4 }, -/obj/machinery/cell_charger, -/turf/open/floor/iron, /area/shuttle/escape) "Ox" = ( -/obj/structure/lattice/catwalk{ - name = "Industrial Lift" +/obj/structure/table/wood/fancy/black, +/obj/item/toy/cards/deck{ + pixel_x = -5; + pixel_y = 4 }, -/obj/machinery/button{ - name = "Lift Button"; - pixel_y = 24; - req_access = list("cent_captain") +/obj/item/toy/cards/deck/kotahi{ + pixel_x = 3; + pixel_y = 1 }, -/turf/open/floor/plating/elevatorshaft, +/turf/open/floor/glass, /area/shuttle/escape) "OH" = ( -/obj/structure/railing/corner, -/obj/machinery/light/directional/south, -/turf/open/floor/carpet/red, +/obj/machinery/light/cold/directional/west, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ + dir = 8 + }, +/obj/item/kirbyplants/organic/plant10, +/turf/open/floor/iron/white/smooth_edge{ + dir = 8 + }, /area/shuttle/escape) "OJ" = ( -/turf/open/floor/light/colour_cycle/dancefloor_a, +/obj/item/kirbyplants/organic/plant21, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/half{ + dir = 4 + }, +/obj/machinery/camera/directional/north{ + c_tag = "NTSS Independence Central Hall Fore" + }, +/turf/open/floor/iron/edge{ + dir = 4 + }, /area/shuttle/escape) "OT" = ( /obj/machinery/door/airlock/shuttle, /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "cruisese2" }, -/turf/open/floor/iron/dark, -/area/shuttle/escape) -"OW" = ( -/obj/machinery/status_display/ai/directional/south, -/turf/open/floor/carpet/executive, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/smooth_large, /area/shuttle/escape) -"Pm" = ( -/obj/effect/turf_decal/trimline/blue/line{ +"Pp" = ( +/obj/structure/railing/corner/end/flip{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral/half{ + dir = 8 + }, +/obj/machinery/status_display/ai/directional/west, +/turf/open/floor/iron/edge{ dir = 8 }, -/turf/open/floor/iron, /area/shuttle/escape) "Pv" = ( /turf/open/floor/plating/elevatorshaft, /area/shuttle/escape) "Py" = ( /obj/machinery/door/airlock/medical/glass{ - name = "Infirmary" - }, -/obj/effect/mapping_helpers/airlock/access/any/medical/general, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 4 + name = "Shuttle Infirmary"; + id_tag = "cruise_med" }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ +/obj/effect/turf_decal/siding/blue{ dir = 8 }, -/obj/effect/mapping_helpers/airlock/unres{ +/obj/effect/turf_decal/siding/blue{ dir = 4 }, -/turf/open/floor/iron/white/textured, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/turf/open/floor/iron/white/textured_half{ + dir = 1 + }, /area/shuttle/escape) "PK" = ( /obj/machinery/door/airlock/shuttle, /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "cruisesw2" }, -/turf/open/floor/iron/dark, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/escape) +"PY" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/food/oven_baked_corn{ + pixel_x = -2; + pixel_y = 14 + }, +/obj/item/food/oven_baked_corn{ + pixel_x = 3; + pixel_y = 8 + }, +/obj/item/food/oven_baked_corn{ + pixel_x = 0; + pixel_y = 2 + }, +/obj/item/knife/kitchen{ + name = "butter knife"; + force = 3; + throwforce = 6; + desc = "A butter knife, created with the sole purpose of slicing butter."; + pixel_x = -10; + pixel_y = 5 + }, +/obj/item/food/butter{ + pixel_x = 8; + pixel_y = -5 + }, +/turf/open/floor/carpet/red, /area/shuttle/escape) -"PM" = ( -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/trimline/brown/filled/corner{ +"Qc" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 6 + }, +/obj/effect/turf_decal/tile/red/anticorner, +/turf/open/floor/iron/dark/smooth_corner{ + dir = 1 + }, +/area/shuttle/escape/brig) +"Qy" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 10 + }, +/obj/effect/turf_decal/tile/red/anticorner{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/smooth_corner{ + dir = 4 + }, +/area/shuttle/escape/brig) +"QB" = ( +/obj/structure/chair/sofa/corp/corner{ + dir = 1 + }, +/turf/open/floor/carpet/stellar, /area/shuttle/escape) -"PO" = ( -/obj/machinery/vending/cigarette/beach, -/turf/open/floor/carpet/executive, +"QD" = ( +/obj/machinery/iv_drip, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/effect/turf_decal/siding/wideplating_new/light, +/obj/effect/turf_decal/tile/blue/half, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/iron/white/smooth_edge, /area/shuttle/escape) -"Qa" = ( -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/trimline/white/line, -/turf/open/floor/iron, +"QF" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/machinery/computer/crew{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue/half{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 8 + }, /area/shuttle/escape) -"QB" = ( -/turf/open/floor/catwalk_floor/iron_dark, +"QI" = ( +/obj/machinery/light/warm/directional/east, +/obj/structure/table/wood/fancy/black, +/obj/item/storage/fancy/candle_box{ + pixel_x = -4; + pixel_y = 9 + }, +/obj/item/storage/fancy/candle_box{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/item/lighter{ + pixel_x = 8; + pixel_y = 1 + }, +/turf/open/floor/carpet/red, /area/shuttle/escape) "QP" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/flora/bush/fullgrass/style_random, -/obj/structure/flora/bush/flowers_pp/style_random, -/turf/open/floor/grass, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/wood/large, +/area/shuttle/escape) +"QQ" = ( +/obj/effect/turf_decal/tile/neutral/half, +/turf/open/floor/iron/edge, /area/shuttle/escape) "Ra" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Kitchen" +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor5" }, -/obj/effect/mapping_helpers/airlock/access/any/service/kitchen, -/turf/open/floor/iron/dark/textured_large, -/area/shuttle/escape) -"Rm" = ( -/obj/structure/sign/poster/official/get_your_legs/directional/east, -/obj/machinery/light/directional/east, /turf/open/floor/iron, /area/shuttle/escape) "Rz" = ( @@ -1978,6 +3211,12 @@ }, /turf/open/floor/noslip, /area/shuttle/escape) +"RJ" = ( +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/shuttle/escape) "RY" = ( /obj/docking_port/mobile/emergency{ name = "The NTSS Independence" @@ -1992,53 +3231,97 @@ /obj/machinery/door/poddoor{ name = "Lift Access" }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, /turf/open/floor/noslip, /area/shuttle/escape) "Sb" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/structure/sign/warning/deathsposal/directional/north, -/obj/effect/turf_decal/delivery/white, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, +/area/shuttle/escape/brig) +"Sm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner, +/turf/open/floor/iron/white/smooth_edge, /area/shuttle/escape) -"Si" = ( -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 8 +"Sp" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/paper_bin{ + pixel_x = 4; + pixel_y = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 4 +/obj/item/pen, +/obj/machinery/newscaster/directional/south, +/obj/effect/turf_decal/siding/dark_red{ + dir = 6 }, -/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark/herringbone, +/area/shuttle/escape/brig) +"Sr" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, /turf/open/floor/iron/white, /area/shuttle/escape) -"Sm" = ( -/obj/effect/turf_decal/tile/blue/half/contrasted, -/obj/effect/turf_decal/trimline/blue/filled/line{ +"Ss" = ( +/obj/effect/turf_decal/tile/red/opposingcorners{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ - dir = 6 +/turf/open/floor/iron/dark, +/area/shuttle/escape/brig) +"SC" = ( +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/structure/chair/sofa/bench/right{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/half{ + dir = 8 + }, +/turf/open/floor/iron/edge{ + dir = 8 }, -/turf/open/floor/iron/white, /area/shuttle/escape) -"SW" = ( -/obj/structure/lattice/catwalk, -/turf/template_noop, +"SO" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/delivery/white, +/obj/structure/window/reinforced/spawner/directional/south{ + pixel_y = -3 + }, +/turf/open/floor/iron/dark/textured_large, /area/shuttle/escape) -"SY" = ( -/obj/effect/turf_decal/bot_white, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, +"SU" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/food/omelette{ + pixel_x = -4; + pixel_y = 10 + }, +/obj/item/food/omelette{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/item/food/omelette{ + pixel_x = -4; + pixel_y = 4 + }, +/turf/open/floor/carpet/red, +/area/shuttle/escape) +"SW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, /area/shuttle/escape) "Tb" = ( /obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/components/unary/passive_vent{ - name = "carbon dioxide exhaust"; - dir = 8 +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + name = "carbon dioxide exhaust" }, /turf/template_noop, /area/shuttle/escape) @@ -2054,305 +3337,392 @@ }, /turf/open/floor/noslip, /area/shuttle/escape) -"Tp" = ( -/obj/effect/turf_decal/trimline/white/line, +"Tq" = ( +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 5 + }, /turf/open/floor/iron, /area/shuttle/escape) -"Tv" = ( -/obj/effect/turf_decal/loading_area/white{ - dir = 8 +"Tw" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/instrument/violin{ + pixel_x = -7; + pixel_y = 0 }, -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, +/obj/item/instrument/saxophone{ + pixel_x = 14; + pixel_y = 0 + }, +/turf/open/floor/carpet/red, /area/shuttle/escape) "Tz" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/siding/wood, -/obj/structure/disposalpipe/segment{ +/obj/structure/railing{ dir = 4 }, -/turf/open/floor/wood/parquet, -/area/shuttle/escape) -"TB" = ( -/obj/effect/turf_decal/trimline/blue/corner, -/turf/open/floor/iron, -/area/shuttle/escape) -"TG" = ( -/obj/machinery/smartfridge/drinks, -/obj/effect/turf_decal/siding/wood{ +/turf/open/floor/iron/stairs/right{ dir = 1 }, -/turf/open/floor/wood/parquet, /area/shuttle/escape) -"Uj" = ( -/obj/machinery/door/airlock/shuttle, +"TK" = ( +/obj/structure/window/reinforced/spawner/directional/north{ + pixel_y = 3 + }, +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/delivery/white, /obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "cruisene2" +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"TV" = ( +/obj/effect/turf_decal/tile/neutral/half{ + dir = 8 + }, +/turf/open/floor/iron/edge{ + dir = 8 + }, +/area/shuttle/escape) +"Ub" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 6 + }, +/obj/effect/turf_decal/tile/red/anticorner, +/turf/open/floor/iron/dark/smooth_corner{ + dir = 1 }, -/turf/open/floor/noslip, /area/shuttle/escape) "Um" = ( -/obj/effect/turf_decal/tile/blue/half/contrasted{ +/obj/structure/sink/directional/west, +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ + dir = 4 + }, +/turf/open/floor/iron/white/smooth_edge{ + dir = 4 + }, +/area/shuttle/escape) +"Uo" = ( +/obj/effect/turf_decal/tile/neutral/half{ dir = 8 }, -/obj/machinery/vending/wallmed/directional/east{ - name = "\improper NanoMed" +/obj/machinery/camera/directional/west{ + c_tag = "NTSS Independence Aft Hall Starboard" + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/edge{ + dir = 8 }, -/turf/open/floor/iron/white, /area/shuttle/escape) "Up" = ( -/obj/machinery/light/directional/west, -/obj/effect/turf_decal/trimline/blue/line{ +/obj/structure/table/reinforced/rglass, +/obj/item/storage/medkit/o2{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/item/storage/medkit/toxin{ + pixel_x = 5; + pixel_y = -4 + }, +/obj/machinery/digital_clock/directional/east, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ + dir = 4 + }, +/turf/open/floor/iron/white/smooth_corner{ dir = 8 }, -/turf/open/floor/iron, /area/shuttle/escape) -"Uq" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/chair/sofa/bench/left{ - dir = 4 +"Ux" = ( +/obj/machinery/computer/operating, +/obj/effect/turf_decal/siding/wideplating_new/light{ + dir = 5 }, -/obj/effect/turf_decal/siding/thinplating/dark{ +/obj/effect/turf_decal/tile/blue/anticorner{ dir = 4 }, -/turf/open/floor/iron/dark, -/area/shuttle/escape) -"Ut" = ( -/obj/structure/sign/directions/dorms/directional/south{ - pixel_y = -38 +/obj/effect/turf_decal/delivery/white{ + color = "#52B4E9" }, -/obj/structure/sign/directions/supply/directional/south, -/obj/structure/sign/directions/medical/directional/south{ - pixel_y = -26 +/turf/open/floor/iron/white/smooth_corner{ + dir = 8 }, -/turf/open/floor/iron, -/area/shuttle/escape) -"Ux" = ( -/obj/structure/table/wood/fancy/black, -/turf/open/floor/iron, /area/shuttle/escape) -"Uy" = ( -/obj/structure/chair/stool/bar/directional/west, -/obj/structure/disposalpipe/segment, +"UQ" = ( +/obj/structure/chair/wood{ + dir = 1 + }, /turf/open/floor/carpet/red, /area/shuttle/escape) -"UO" = ( -/obj/machinery/light/directional/east, -/obj/effect/turf_decal/trimline/white/line{ +"Vd" = ( +/obj/item/radio/intercom/directional/south, +/obj/item/kirbyplants/organic/plant22, +/obj/effect/turf_decal/siding/dark_red, +/turf/open/floor/iron/dark/herringbone, +/area/shuttle/escape/brig) +"Vq" = ( +/turf/open/floor/carpet/royalblue, +/area/shuttle/escape) +"Vs" = ( +/obj/effect/turf_decal/loading_area/white{ dir = 8 }, -/turf/open/floor/iron, -/area/shuttle/escape) -"UQ" = ( -/obj/structure/chair/wood{ - dir = 1 +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 + }, +/area/shuttle/escape) +"Vu" = ( +/obj/structure/closet/crate/medical, +/obj/effect/turf_decal/bot, +/obj/item/lazarus_injector, +/obj/item/storage/medkit/regular{ + pixel_x = 3; + pixel_y = -4 + }, +/obj/item/storage/medkit/regular{ + pixel_x = -1; + pixel_y = -7 + }, +/obj/item/healthanalyzer{ + pixel_x = 0; + pixel_y = -3 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/shuttle/escape) +"Vy" = ( +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/half{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 }, -/turf/open/floor/carpet/red, /area/shuttle/escape) -"UY" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/siding/thinplating/dark{ +"VC" = ( +/obj/machinery/computer/records/security{ dir = 8 }, -/turf/open/floor/iron/dark, -/area/shuttle/escape) -"UZ" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/chair/sofa/bench/right{ +/obj/effect/turf_decal/siding/wideplating_new/dark{ dir = 4 }, -/obj/effect/turf_decal/siding/thinplating/dark{ +/obj/effect/turf_decal/tile/red/half{ dir = 4 }, -/turf/open/floor/iron/dark, -/area/shuttle/escape) -"Vs" = ( -/obj/effect/turf_decal/loading_area/white{ - dir = 8 +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 }, -/turf/open/floor/iron/dark, /area/shuttle/escape) -"VC" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/structure/closet/crate{ - name = "FUN BOX - PROPERTY OF THE CAPTAIN" - }, -/obj/item/toy/spinningtoy, -/obj/item/toy/figure/engineer, -/obj/item/toy/figure/clown, -/obj/item/toy/figure/mime, -/obj/item/toy/figure/ce, -/obj/item/toy/figure/captain, -/obj/item/toy/figure/hop, -/obj/item/toy/figure/bartender, -/obj/item/toy/figure/chef, -/obj/item/toy/figure/assistant, -/obj/item/toy/cards/deck/cas, -/obj/item/toy/cards/deck/cas/black, -/obj/item/toy/cards/deck, -/obj/item/toy/captainsaid/collector, -/obj/item/toy/ammo/gun, -/obj/item/toy/gun, -/obj/item/toy/nuke, -/obj/item/toy/windup_toolbox, -/obj/item/toy/eightball/haunted, +"VM" = ( /turf/open/floor/wood/parquet, /area/shuttle/escape) -"VM" = ( -/obj/structure/table/wood/fancy/black, -/obj/item/flashlight/flare/candle{ - pixel_y = 7; - pixel_x = -6 +"VV" = ( +/obj/structure/railing/corner/end, +/obj/effect/turf_decal/tile/neutral/half{ + dir = 8 + }, +/obj/machinery/digital_clock/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "NTSS Independence Bridge" + }, +/turf/open/floor/iron/edge{ + dir = 8 }, -/turf/open/floor/carpet/red, /area/shuttle/escape) -"VW" = ( -/obj/structure/chair/sofa/corp/right{ - dir = 1 +"VY" = ( +/obj/effect/turf_decal/trimline/blue/end{ + dir = 8 }, -/turf/open/floor/carpet/executive, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 4 + }, +/turf/open/floor/iron/white, /area/shuttle/escape) -"WC" = ( -/obj/effect/turf_decal/trimline/white/line{ - dir = 9 +"Wu" = ( +/obj/structure/sign/painting/library{ + pixel_y = -32 }, -/turf/open/floor/iron, +/turf/open/floor/carpet/red, /area/shuttle/escape) "WK" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Cryogenics" - }, -/obj/effect/mapping_helpers/airlock/access/any/medical/general, -/obj/effect/mapping_helpers/airlock/unres, /obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, -/turf/open/floor/iron/white/textured, -/area/shuttle/escape) -"WX" = ( -/obj/machinery/status_display/ai, -/turf/closed/wall/mineral/titanium, +/obj/machinery/door/airlock/medical{ + name = "Cryogenics"; + id_tag = "cruise_cryo" + }, +/obj/effect/turf_decal/siding/blue, +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/turf/open/floor/iron/white/textured_half, /area/shuttle/escape) "WZ" = ( -/obj/machinery/light/directional/east, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 4 - }, -/turf/open/floor/iron, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, /area/shuttle/escape) "Xa" = ( -/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/south{ + pixel_y = -3 + }, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, /obj/effect/turf_decal/delivery/white, -/obj/structure/closet/firecloset/full, -/turf/open/floor/iron/dark, -/area/shuttle/escape) -"Xb" = ( -/turf/open/floor/iron/stairs/right, +/turf/open/floor/iron/dark/textured_large, /area/shuttle/escape) -"Xk" = ( -/obj/structure/lattice/catwalk, -/obj/structure/barricade/sandbags, -/obj/structure/railing, -/turf/template_noop, +"Xo" = ( +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, /area/shuttle/escape) -"Xu" = ( -/obj/machinery/vending/boozeomat, -/obj/effect/turf_decal/siding/wood{ +"Xx" = ( +/obj/structure/chair/sofa/right/maroon{ dir = 1 }, -/turf/open/floor/wood/parquet, -/area/shuttle/escape) -"XJ" = ( -/obj/structure/sign/directions/command/directional/north, -/turf/open/floor/carpet/red, +/obj/machinery/light/small/directional/south, +/turf/open/floor/carpet/green, /area/shuttle/escape) -"XK" = ( -/obj/machinery/washing_machine, -/obj/structure/disposalpipe/segment{ +"XP" = ( +/obj/structure/table/wood/shuttle_bar{ + boot_dir = 4 + }, +/obj/effect/fun_balloon/sentience/emergency_shuttle{ + group_name = "bar staff on the NTTS Independence" + }, +/obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/iron/dark, -/area/shuttle/escape) -"XL" = ( -/obj/effect/turf_decal/trimline/blue/corner{ +/obj/effect/turf_decal/siding/wood{ dir = 8 }, -/turf/open/floor/iron, -/area/shuttle/escape) -"XN" = ( -/obj/structure/table/reinforced, -/turf/open/floor/wood/tile, -/area/shuttle/escape) -"XP" = ( -/turf/open/floor/iron/stairs/left, +/turf/open/floor/wood/large, /area/shuttle/escape) -"XX" = ( -/obj/structure/chair/comfy/shuttle{ +"Yz" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/chair/comfy/shuttle, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 5 + }, +/obj/effect/turf_decal/tile/red/anticorner{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 9 +/turf/open/floor/iron/dark/smooth_corner{ + dir = 8 }, -/turf/open/floor/iron/dark/smooth_large, -/area/shuttle/escape) -"Yi" = ( -/obj/machinery/light/directional/east, -/turf/open/floor/iron, +/area/shuttle/escape/brig) +"YB" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/machinery/light/cold/directional/south, +/obj/structure/reagent_dispensers/wall/peppertank/directional/west, +/obj/item/storage/lockbox/loyalty{ + pixel_x = -4; + pixel_y = 11 + }, +/obj/effect/turf_decal/siding/dark_red{ + dir = 10 + }, +/obj/item/restraints/handcuffs{ + pixel_x = 3; + pixel_y = 0 + }, +/turf/open/floor/iron/dark/herringbone, +/area/shuttle/escape/brig) +"YT" = ( +/obj/machinery/light/warm/directional/north, +/obj/structure/sign/clock/directional/north, +/obj/structure/table/wood/fancy/black, +/obj/item/instrument/trumpet{ + pixel_x = -4; + pixel_y = -3 + }, +/turf/open/floor/carpet/red, /area/shuttle/escape) -"YL" = ( -/obj/effect/turf_decal/trimline/white/line{ +"YX" = ( +/obj/machinery/door/airlock/shuttle, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "cruisene1" + }, +/obj/effect/turf_decal/siding/wood{ dir = 8 }, -/obj/item/kirbyplants/random, -/turf/open/floor/iron, -/area/shuttle/escape) -"YT" = ( -/obj/effect/turf_decal/trimline/white/corner, -/turf/open/floor/iron, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/smooth_large, /area/shuttle/escape) "YY" = ( /obj/structure/railing/corner, /turf/open/floor/carpet/red, /area/shuttle/escape) -"Zn" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/siding/wood{ - dir = 9 +"Zc" = ( +/obj/effect/turf_decal/loading_area/white{ + dir = 4 + }, +/obj/machinery/light/small/directional/north, +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 8 }, -/obj/machinery/light/directional/north, -/turf/open/floor/wood/parquet, /area/shuttle/escape) -"Zs" = ( -/obj/structure/table/reinforced, -/obj/item/storage/bag/tray, -/obj/item/kitchen/rollingpin{ - pixel_x = 1 +"Zd" = ( +/obj/structure/chair/office/tactical{ + dir = 4 + }, +/turf/open/floor/iron/dark/herringbone, +/area/shuttle/escape/brig) +"Zr" = ( +/obj/effect/turf_decal/tile/neutral/anticorner, +/turf/open/floor/iron/corner{ + dir = 1 }, -/turf/open/floor/iron/kitchen/herringbone, /area/shuttle/escape) -"Zy" = ( -/obj/machinery/computer/warrant, -/obj/effect/turf_decal/trimline/dark_red/filled/line{ - dir = 9 +"ZB" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/obj/structure/fireaxecabinet/directional/west, +/turf/open/floor/iron/dark/corner{ + dir = 1 }, -/turf/open/floor/iron, /area/shuttle/escape) "ZD" = ( /obj/effect/turf_decal/loading_area/white{ dir = 8 }, /obj/machinery/light/small/directional/north, -/turf/open/floor/iron/dark, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 + }, /area/shuttle/escape) "ZE" = ( -/turf/open/floor/wood/tile, +/obj/structure/chair/sofa/corner/maroon{ + dir = 1 + }, +/turf/open/floor/carpet/green, +/area/shuttle/escape) +"ZY" = ( +/obj/machinery/status_display/evac/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "NTSS Independence Dining Hall" + }, +/turf/open/floor/carpet/red, /area/shuttle/escape) (1,1,1) = {" @@ -2365,6 +3735,7 @@ kd kd kd kd +kd jt Tj RY @@ -2387,10 +3758,10 @@ kd kd jt MK -AD +MK jt jt -FA +ma ma jt jt @@ -2403,19 +3774,20 @@ kd "} (2,1,1) = {" kd -cQ -Cm -Cm -Cm -Cm -Cm -Cm -qV +kd +kd jt -wJ +jt +en +en +en +en +jt +jt +Zc Jo -jL -ba +SO +sY Jo rC jt @@ -2433,14 +3805,14 @@ en en jt wJ -pI -jL -Ld Jo -rC +KH +TK +Jo +IY jt -ut -Cu +nQ +fQ uV jt kd @@ -2449,44 +3821,45 @@ kd "} (3,1,1) = {" kd -Gg -KR -FH -kd -kd -qV -kd kd jt -Mt -Bn -Xa -rc -lF -Ff -lq -qb -Ly -vR +uV +FH +fY +gq +qV +cQ +DA jt +av +av +FX +AR +av +av jt +GP +lc +Qy +uV en en en jt -IR -sK -XN jt -Nf -Bn -Xa -mW -oe -on +LQ +ba +ZE +jt +av +Jh +dy +zj +av +av jt -SY Bn +Nq uV jt jt @@ -2495,44 +3868,45 @@ kd "} (4,1,1) = {" kd -as -SW -FH -kd kd -en -en -en jt +vR +VM +VM +VM +VM +VM +hg +uV lP lP jt -CN +jt LU LU jt -cY -es -BZ -BZ -zH -nQ -ez -Bz +Mb +Ss +GT +Kn +iI +Fk +eD +YB jt -rd -ZE -ZE +FO +Dr +Fb jt uU -vW +uU jt jt -jF PK +co jt -Cu -Dx +Bn +FJ uV jt jt @@ -2541,44 +3915,45 @@ jt "} (5,1,1) = {" kd -as +kd +jt KR -Xk -qV -en -en -nk VM -UQ +VM +Ff +zX +VM +VM +ur La La eM -GA La La -uV -wb -es -Zs -ur -BZ -EA -rJ -KW +Wu +jt +Yz +IT +Qc +hG +Sb +LA +Et +dC jt -vn -ZE -ZE +Ih +Dr +Xx jt -YT -KH -eM -le -KH -KH +oE +qt +iG +qt +qt +QQ jt -PM -Bn +Ra +vb Td zP xj @@ -2587,136 +3962,139 @@ sW "} (6,1,1) = {" kd -as +kd +jt nb +BD +hB +XP +Jj aD -kd -en -KY -La -La +aD +je La La La La -ii La La -Bw -XP -es -zA -dg -BZ -Bn -Bn -HD jt -Bd -ZE -ec +in +dr +dr +ah +Sb +Cq +Zd +Vd jt -Qa -qt -qt -qt +IS +BW +wY +jt +oE qt qt +Jx +uE +Zr DF -sr +Bn Bn Td zP xj xj -xj +WZ "} (7,1,1) = {" kd -as -kd -qV kd en -ye -La -La Ll -vA -vA -NA -Cl -La +Ll +Ll +Ll +Ll +Ll +Ll +Ll La -zv -Xb -es -es -kV -mj -uo -Ig -kh +nk +gH +SU +UQ +ZY jt +rE +ag +Ac +ag +ag +LE +AT +Sp jt -wj +yQ jt jt -Tp +uV +bg qt -WC -Mz -UO -YL +qt +QQ +nL +eR jt -sZ -fY +xH +Ix Td zP xj -xj -xj +rX +Nt "} (8,1,1) = {" kd -as kd -jt -iA -jt -JJ +en +mT La -bX -jt -Zn -nq -kP -hf -il La -uV -jt -jt -Ra -jt -jt -jt -jt +La +La +La +La +La +La +nk +xP +gT +UQ +tT jt +en +en uV -tP -KH -KH -KH -zX +Bd +Bd +uV +en +en +uV +mM +hz +ua +ua +Lf qt -Jj +qt +gn uV jt jt jt -uV -bn +jt Td xj xj @@ -2725,135 +4103,138 @@ kd "} (9,1,1) = {" kd -as -SW +kd +en +Tw vy -HR yS -La -La -La +yS +yS +yS +yS hL -TG -AF -AF -Tz -il -OH -jt -tp -FD -qt -XL -Pm -nM -hH -Up -HH -qt -Yi -qt -qt -qt -qt -Ja +La +nk +Mp +CM +UQ +Wu jt -mB +mK +dA +Bc +qc +qc +tv +SC +jH +Gl +FC +Cf +Tz +Tz +sA +DW +lk +QQ +wl cO dL -jt +IR QB Td xj xj -xj +WZ kd "} (10,1,1) = {" kd -as kd -jt +en +hl +SW Bv -jt +cK +cK +cK KY +at La -KY -Fu -mr -AF -AF -Tz -il -IO +nk +rS +PY +UQ +iH MV -Fp -qt -qt -hi -qt -qt -qt -qt -Rm -Am +MV +MS +qc +qc +qc +qc +qc +qc +qc +Tq +qb uV jt jt uV -px -Ja -hp -yC -yC +oE +QQ +Ig +gY +gY gY -jt jU Td xj xj -xj +WZ kd "} (11,1,1) = {" kd -as -kd -qV kd -en +jt +YT +SW +at +HD od +HD +SW +at +La +La +La +La La -GZ -WX -hB -AF -Mv -Tz -il YY tG -tp -qt -qt -jt -UY +tG +Mz +qc +qc +qc +qc +qc +qc +qc +qc qc -ak -UY -jt -qt RZ Pv Pv jt -xx -Eu -jt +oE +QQ sz yC -VW -jt +yC +yC Ox uV uV @@ -2863,43 +4244,44 @@ kd "} (12,1,1) = {" kd -as -SW +kd +jt +Gg SW cA -en -JJ -La +yS +yS +yS JJ at -AL -AF -AF -DA -il +La +La +La +La +La IO Ew -Fp -qt -qt -jt -Kn -Uq -UZ -Kn -jt -qt +Ew +bn +qc +qc +qc +qc +qc +qc +qc +qc +qc RZ Pv oB jt -rM -Eu -jt +oE +QQ BI yC -PO -jt +yC +yC vZ uV uV @@ -2909,44 +4291,45 @@ kd "} (13,1,1) = {" kd -as -SW -SW +kd +jt +zv +zf +cK +cK +cK +cK cK -en -La -KY -La QP -Xu -AF -uu -Tz -il -YY +La +nk +kv +xk +UQ +ey Md -tp -qt -qt -zE -qt -qt -qt -qt -JU -ng +Md +Cu +qc +qc +qc +qc +qc +qc +qc +Ax +By uV jt jt uV -kz -Ja -hp -yC -yC -OW -jt -jU +oE +QQ +ku +gY +gY +gY +nP Td xj xj @@ -2955,179 +4338,183 @@ kd "} (14,1,1) = {" kd -qV -kd -kd -kd en +uV +uV +xY +AW La -tZ -bX +bP +bj +QI +hp +Fq +nk +gv +Ks +UQ +Wu jt -cB -uR -Bm -gL -il -tT -ni OJ -ni -qt -TB -eY -Lx -eY -WZ -ie -qt -FD -qt -qt -qt -qt -Ja -jt +MN +DQ +qc +qc +mj +Em +yZ +ca +cx +JZ +ua +ua +Pp +Uo +vP +QQ wl Jk fL -jt -QB +ak +tZ Td xj xj -xj +WZ kd "} (15,1,1) = {" -kd en en +uH +uV +jt +jt +jt +jt jt jt uV La -JJ -La -Ll -vA -vA -Uy -rU -La -tT -OJ -ni -OJ -Ut +nk +fI +uu +UQ +ja +jt +en +en uV Py -jt -jt -jt +Py uV -eZ -Mz -Mz -Mz -qp +en +en +uV +LF +kL +Tz +Tz +eI qt -Ja +qt +gn uV jt jt jt -uV -bn +jt Td xj xj -xj +WZ kd "} (16,1,1) = {" en -en -rz -mR -tk -XP -oA -La -La -La -La -La -La -La +zp +zB +ZB +VV +ua +nw +TV +TV +TV +DU La -tT -ni -OJ -ni -qt +nk +AS +KT +UQ +xV jt -ku +BP +py +OH +py +py lz kn -Si +tR jt jt jt jt -jt -Tp +uV +bg qt -Kq -KH -gb -zW +qt +QQ +eR +CE jt -xH -ik +Gn +Ix Td zP xj -xj -sW +uS +JY "} (17,1,1) = {" en -Zy +ii +ph +Jx +kL +Tz qM -qt -tk -Xb +uE +uE +uE +gZ La La La La La La -La -La -La -tT -OJ -ni -OJ -qt jt -LD -du -ab -dw +il +ch +ch +Ap +jC +VY +lC +ni jt Bb DV qm jt -Qa -qt -qt -qt +oE qt qt +HQ +TV +FQ vJ Bn Bn @@ -3135,79 +4522,81 @@ Td zP xj xj -xj +WZ "} (18,1,1) = {" en -Oq -qt +ms +Ef +QQ iR -jt -uV +xm +QF Hk -kC -gJ +Aj +yA uV -XJ La -XX -MS La -tT -ix -qt -qt -lw +bX +Ca +La +Wu jt -DU -Mg -lu +gL +BZ +lw +gJ +xX +LG +RJ Sm WK dp mk Cr jt -Jq -Mz -XX -MS -Mz -Mz +oE +qt +dY +qt +qt +QQ jt -Sb -Bn +Xo +Vu Td zP xj xj -xj +WZ "} (19,1,1) = {" en -dE -qt +ab +ph +HQ DK +sw +Vq +Vq +Vq +Db jt -je -DH -ta -yc -jt -By GD +YX jt jt ij -ij -jt -qt -Jl -qt +pl jt +eY +Sr +QD +Up rG Um -gq +rG gm jt ki @@ -3215,13 +4604,13 @@ HK Jc jt BF -BF +mR jt jt OT -OT +iJ jt -XK +Bn Dx uV jt @@ -3231,44 +4620,45 @@ jt "} (20,1,1) = {" en -jz Kw +bR +Oc gU -jt -Av -Ok -AF -ky +Vq +Vq +Vq +rR +kD jt Mt -Bn -DL -mW -oe -on +rW +Xa +rc +Mt +hP jt Ux -Ux -Ux -jt -jt -jt -jt +En +dE +uV +en +en +en NF jt vw jy vw jt +AV +Mt +xa +Bm +Mt Mt -oe -Xa -mW -Bn -av jt -nP Bn +aC uV jt jt @@ -3278,20 +4668,21 @@ kd (21,1,1) = {" en en -hR +Mv +px uN -vX -LB +Vy +tn VC -uR -dS +gr +Ub jt -xL -oW +mL +JK jL -Ld -Vs -Tv +sY +JK +pg jt en en @@ -3308,16 +4699,16 @@ jt jt ZD Vs -jL +KH Ld -oW +Vs ze jt -uy -qX -En -lq -zf +th +th +uV +jt +kd kd kd "} @@ -3325,18 +4716,19 @@ kd kd en en -jt -jt +en jt en en en +en +jt jt -mN +dG dG jt jt -Uj +Rz Rz jt kd diff --git a/_maps/shuttles/hunter_mi13_foodtruck.dmm b/_maps/shuttles/hunter_mi13_foodtruck.dmm index 4dca72eaae8c3..155aacf820ac6 100644 --- a/_maps/shuttles/hunter_mi13_foodtruck.dmm +++ b/_maps/shuttles/hunter_mi13_foodtruck.dmm @@ -104,14 +104,6 @@ /obj/item/binoculars{ pixel_y = 10 }, -/obj/item/traitor_bug{ - pixel_y = 6; - pixel_x = 6 - }, -/obj/item/traitor_bug{ - pixel_y = 3; - pixel_x = -5 - }, /obj/item/storage/box/zipties{ pixel_y = -4; pixel_x = 4 diff --git a/_maps/shuttles/mining_common_northstar.dmm b/_maps/shuttles/mining_common_northstar.dmm new file mode 100644 index 0000000000000..5e24739c363d5 --- /dev/null +++ b/_maps/shuttles/mining_common_northstar.dmm @@ -0,0 +1,163 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"d" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/turf/open/floor/pod/light, +/area/shuttle/mining) +"e" = ( +/obj/machinery/power/shuttle_engine/heater, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/turf/open/floor/plating/airless, +/area/shuttle/mining) +"k" = ( +/obj/effect/turf_decal/caution/stand_clear/red{ + dir = 4 + }, +/turf/open/floor/pod/light, +/area/shuttle/mining) +"l" = ( +/obj/effect/spawner/structure/window/survival_pod, +/turf/open/floor/plating, +/area/shuttle/mining) +"q" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/mining) +"r" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/structure/sign/poster/official/plasma_effects/directional/south, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/turf/open/floor/pod/light, +/area/shuttle/mining) +"t" = ( +/turf/open/floor/pod/light, +/area/shuttle/mining) +"v" = ( +/turf/closed/wall/mineral/titanium/survival, +/area/shuttle/mining) +"z" = ( +/obj/structure/closet/crate, +/obj/effect/turf_decal/trimline/brown, +/obj/effect/turf_decal/siding/dark{ + dir = 1 + }, +/obj/machinery/light/small/red/directional/south, +/turf/open/floor/pod/dark, +/area/shuttle/mining) +"A" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/corner{ + dir = 8 + }, +/turf/open/floor/pod/light, +/area/shuttle/mining) +"C" = ( +/obj/machinery/door/airlock/survival_pod/glass{ + name = "Public Mining Shuttle" + }, +/obj/effect/turf_decal/bot_red, +/obj/docking_port/mobile{ + dir = 4; + name = "lavaland shuttle"; + port_direction = 8; + shuttle_id = "mining_common" + }, +/turf/open/floor/pod/light, +/area/shuttle/mining) +"D" = ( +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/emergency, +/turf/open/floor/pod/light, +/area/shuttle/mining) +"E" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/mineral/titanium/survival, +/area/shuttle/mining) +"G" = ( +/obj/structure/ore_box, +/obj/effect/turf_decal/trimline/brown, +/obj/effect/turf_decal/siding/dark{ + dir = 5 + }, +/turf/open/floor/pod/dark, +/area/shuttle/mining) +"J" = ( +/obj/effect/turf_decal/trimline/neutral/line, +/turf/open/floor/pod/light, +/area/shuttle/mining) +"P" = ( +/obj/machinery/computer/shuttle/mining/common, +/turf/open/floor/pod/light, +/area/shuttle/mining) +"T" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/turf/open/floor/pod/light, +/area/shuttle/mining) +"U" = ( +/obj/structure/table/reinforced, +/obj/item/radio, +/obj/machinery/light/small/red/directional/north, +/turf/open/floor/pod/light, +/area/shuttle/mining) + +(1,1,1) = {" +v +l +l +C +l +v +a +"} +(2,1,1) = {" +l +P +T +k +z +v +v +"} +(3,1,1) = {" +l +D +J +t +G +e +q +"} +(4,1,1) = {" +v +U +A +d +r +v +v +"} +(5,1,1) = {" +v +l +l +E +l +v +a +"} diff --git a/_maps/shuttles/mining_northstar.dmm b/_maps/shuttles/mining_northstar.dmm new file mode 100644 index 0000000000000..48c194b6d4582 --- /dev/null +++ b/_maps/shuttles/mining_northstar.dmm @@ -0,0 +1,271 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/effect/turf_decal/bot_red, +/obj/machinery/door/airlock/survival_pod{ + name = "Mining Shuttle" + }, +/obj/docking_port/mobile{ + dir = 4; + name = "mining shuttle"; + port_direction = 8; + shuttle_id = "mining" + }, +/turf/open/floor/pod/light, +/area/shuttle/mining) +"c" = ( +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/emergency, +/obj/structure/sign/warning/xeno_mining/directional/north, +/obj/machinery/light/small/red/directional/north, +/turf/open/floor/pod/light, +/area/shuttle/mining) +"d" = ( +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/structure/closet/crate/internals, +/obj/item/pickaxe/emergency, +/obj/item/pickaxe/emergency, +/obj/effect/turf_decal/siding/brown{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown, +/obj/machinery/light/small/red/directional/south, +/turf/open/floor/pod/dark, +/area/shuttle/mining) +"j" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/end{ + dir = 8 + }, +/turf/open/floor/pod/light, +/area/shuttle/mining) +"l" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 5 + }, +/obj/structure/sign/poster/official/work_for_a_future/directional/north, +/obj/machinery/light/small/red/directional/north, +/turf/open/floor/pod/light, +/area/shuttle/mining) +"m" = ( +/obj/effect/turf_decal/caution/stand_clear/red{ + dir = 4 + }, +/turf/open/floor/pod/light, +/area/shuttle/mining) +"s" = ( +/obj/machinery/computer/shuttle/mining, +/turf/open/floor/pod/light, +/area/shuttle/mining) +"z" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/brown, +/turf/open/floor/pod/dark, +/area/shuttle/mining) +"A" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/turf/open/floor/plating, +/area/shuttle/mining) +"D" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/end, +/obj/machinery/light/small/red/directional/south, +/turf/open/floor/pod/light, +/area/shuttle/mining) +"F" = ( +/obj/structure/table/reinforced, +/obj/item/wrench, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/crowbar/red, +/obj/item/clothing/mask/gas, +/turf/open/floor/pod/light, +/area/shuttle/mining) +"G" = ( +/turf/open/floor/pod/light, +/area/shuttle/mining) +"I" = ( +/turf/closed/wall/mineral/titanium/survival, +/area/shuttle/mining) +"K" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/purple/line, +/turf/open/floor/pod/light, +/area/shuttle/mining) +"P" = ( +/turf/template_noop, +/area/template_noop) +"R" = ( +/obj/effect/spawner/structure/window/survival_pod, +/turf/open/floor/plating, +/area/shuttle/mining) +"S" = ( +/obj/machinery/power/shuttle_engine/heater, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/turf/open/floor/plating, +/area/shuttle/mining) +"W" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown, +/obj/structure/ore_box, +/turf/open/floor/pod/dark, +/area/shuttle/mining) +"X" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/mineral/titanium/survival, +/area/shuttle/mining) +"Z" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/turf/open/floor/pod/light, +/area/shuttle/mining) + +(1,1,1) = {" +P +I +R +a +R +I +P +"} +(2,1,1) = {" +I +I +c +m +d +I +I +"} +(3,1,1) = {" +R +s +j +G +W +S +A +"} +(4,1,1) = {" +R +F +K +G +z +S +A +"} +(5,1,1) = {" +I +I +l +Z +D +I +I +"} +(6,1,1) = {" +P +I +R +X +R +I +P +"} diff --git a/_maps/virtual_domains/meta_central.dmm b/_maps/virtual_domains/meta_central.dmm index 3fc4ed7f21e1f..76f90e2c88bb6 100644 --- a/_maps/virtual_domains/meta_central.dmm +++ b/_maps/virtual_domains/meta_central.dmm @@ -1339,13 +1339,6 @@ /obj/item/pickaxe/rusted, /turf/open/floor/iron, /area/virtual_domain) -"lx" = ( -/obj/structure/barricade/sandbags, -/obj/machinery/deployable_turret{ - dir = 1 - }, -/turf/open/floor/plating, -/area/virtual_domain) "lC" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -7784,7 +7777,7 @@ LG uS hd Ol -lx +wN vU hp lu diff --git a/code/__DEFINES/ai/ai_blackboard.dm b/code/__DEFINES/ai/ai_blackboard.dm index 161f9973b36c3..b5169934a85d9 100644 --- a/code/__DEFINES/ai/ai_blackboard.dm +++ b/code/__DEFINES/ai/ai_blackboard.dm @@ -77,6 +77,13 @@ #define BB_TARGET_WOUNDED_ONLY "BB_target_wounded_only" /// What typepath the holding object targeting strategy should look for #define BB_TARGET_HELD_ITEM "BB_target_held_item" +/// How likely is this mob to move when idle per tick? +#define BB_BASIC_MOB_IDLE_WALK_CHANCE "BB_basic_idle_walk_chance" + +/// Minimum range to keep target within +#define BB_RANGED_SKIRMISH_MIN_DISTANCE "BB_ranged_skirmish_min_distance" +/// Maximum range to keep target within +#define BB_RANGED_SKIRMISH_MAX_DISTANCE "BB_ranged_skirmish_max_distance" /// Blackboard key storing how long your targeting strategy has held a particular target #define BB_BASIC_MOB_HAS_TARGET_TIME "BB_basic_mob_has_target_time" diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 1374f97a08bdc..f6e9f1bbb2fe6 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -24,11 +24,19 @@ #define FUGITIVE_RESULT_FUGITIVE_VICTORY 7 #define FUGITIVE_RESULT_MAJOR_FUGITIVE 8 +// Wizard's contract school types #define APPRENTICE_DESTRUCTION "destruction" #define APPRENTICE_BLUESPACE "bluespace" #define APPRENTICE_ROBELESS "robeless" #define APPRENTICE_HEALING "healing" +#define ALL_APPRENTICE_TYPES list( \ + APPRENTICE_DESTRUCTION, \ + APPRENTICE_BLUESPACE, \ + APPRENTICE_ROBELESS, \ + APPRENTICE_HEALING, \ +) + //Pirates ///Minimum amount the pirates will demand diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm index ead6717bcbe07..bfbaf57d9c65a 100644 --- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm @@ -53,6 +53,10 @@ #define COMSIG_MOVABLE_THROW_LANDED "movable_throw_landed" ///from base of atom/movable/on_changed_z_level(): (turf/old_turf, turf/new_turf, same_z_layer) #define COMSIG_MOVABLE_Z_CHANGED "movable_ztransit" +/// from /atom/movable/can_z_move(): (turf/start, turf/destination) +#define COMSIG_CAN_Z_MOVE "movable_can_z_move" + /// Return to block z movement + #define COMPONENT_CANT_Z_MOVE (1<<0) ///called before hearing a message from atom/movable/Hear(): #define COMSIG_MOVABLE_PRE_HEAR "movable_pre_hear" ///cancel hearing the message because we're doing something else presumably diff --git a/code/__DEFINES/dcs/signals/signals_fish.dm b/code/__DEFINES/dcs/signals/signals_fish.dm index 08a38fc02ab2e..3dda733df1c73 100644 --- a/code/__DEFINES/dcs/signals/signals_fish.dm +++ b/code/__DEFINES/dcs/signals/signals_fish.dm @@ -60,9 +60,6 @@ /// Sent to the fisherman when the reward is dispensed: (reward) #define COMSIG_FISH_SOURCE_REWARD_DISPENSED "fish_source_reward_dispensed" -/// Called when you try to use fishing rod on anything -#define COMSIG_PRE_FISHING "pre_fishing" - /// Called when an ai-controlled mob interacts with the fishing spot #define COMSIG_NPC_FISHING "npc_fishing" #define NPC_FISHING_SPOT 1 diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm index 5d9ce528c652f..bea25d515663f 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm @@ -165,6 +165,10 @@ #define COMSIG_CARBON_LIMPING "mob_limp_check" #define COMPONENT_CANCEL_LIMP (1<<0) +/// from /obj/item/toy/crayon/spraycan/use_on(target, user, modifiers): (atom/target, mob/user) +#define COMSIG_CARBON_SPRAYPAINTED "comsig_carbon_spraypainted" + #define COMPONENT_CANCEL_SPRAYPAINT (1<<0) + ///Called from on_acquiring(mob/living/carbon/human/acquirer) #define COMSIG_MUTATION_GAINED "mutation_gained" ///Called from on_losing(mob/living/carbon/human/owner) diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm index 3569b9af1e61d..b687ef5ace2a2 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm @@ -43,7 +43,7 @@ #define COMSIG_LIVING_REVIVE "living_revive" ///from base of mob/living/set_buckled(): (new_buckled) #define COMSIG_LIVING_SET_BUCKLED "living_set_buckled" -///from base of mob/living/set_body_position() +///from base of mob/living/set_body_position(): (new_position, old_position) #define COMSIG_LIVING_SET_BODY_POSITION "living_set_body_position" /// Sent to a mob being injected with a syringe when the do_after initiates #define COMSIG_LIVING_TRY_SYRINGE_INJECT "living_try_syringe_inject" diff --git a/code/__DEFINES/dcs/signals/signals_traitor.dm b/code/__DEFINES/dcs/signals/signals_traitor.dm index 2752ab2363e2a..0a221dbd068e1 100644 --- a/code/__DEFINES/dcs/signals/signals_traitor.dm +++ b/code/__DEFINES/dcs/signals/signals_traitor.dm @@ -1,30 +1,5 @@ -/// Called when the hack_comm_console objective is completed. -#define COMSIG_GLOB_TRAITOR_OBJECTIVE_COMPLETED "!traitor_objective_completed" - /// Called whenever the uplink handler receives any sort of update. Used by uplinks to update their UI. No arguments passed #define COMSIG_UPLINK_HANDLER_ON_UPDATE "uplink_handler_on_update" -/// Sent from the uplink handler when the traitor uses the syndicate uplink beacon to order a replacement uplink. -#define COMSIG_UPLINK_HANDLER_REPLACEMENT_ORDERED "uplink_handler_replacement_ordered" - -/// Called before the traitor objective is generated -#define COMSIG_TRAITOR_OBJECTIVE_PRE_GENERATE "traitor_objective_pre_generate" - #define COMPONENT_TRAITOR_OBJECTIVE_ABORT_GENERATION (1<<0) -/// Called whenever the traitor objective is completed -#define COMSIG_TRAITOR_OBJECTIVE_COMPLETED "traitor_objective_completed" -/// Called whenever the traitor objective is failed -#define COMSIG_TRAITOR_OBJECTIVE_FAILED "traitor_objective_failed" - -/// Called when a traitor bug is planted in an area -#define COMSIG_TRAITOR_BUG_PLANTED_GROUND "traitor_bug_planted_area" -/// Called when a traitor bug is planted -#define COMSIG_TRAITOR_BUG_PLANTED_OBJECT "traitor_bug_planted_object" -/// Called before a traitor bug is planted, where it can still be overrided -#define COMSIG_TRAITOR_BUG_PRE_PLANTED_OBJECT "traitor_bug_planted_pre_object" - #define COMPONENT_FORCE_PLACEMENT (1<<0) - #define COMPONENT_FORCE_FAIL_PLACEMENT (1<<1) - -/// Called when a machine a traitor has booby trapped triggers its payload -#define COMSIG_TRAITOR_MACHINE_TRAP_TRIGGERED "traitor_machine_trap_triggered" /// Called when a device a traitor has planted effects someone's mood. Pass the mind of the viewer. #define COMSIG_DEMORALISING_EVENT "traitor_demoralise_event" diff --git a/code/__DEFINES/living.dm b/code/__DEFINES/living.dm index 2ac320abdecc7..6721ad2899705 100644 --- a/code/__DEFINES/living.dm +++ b/code/__DEFINES/living.dm @@ -13,3 +13,9 @@ /// Getter for a mob/living's lying angle, otherwise protected #define GET_LYING_ANGLE(mob) (UNLINT(mob.lying_angle)) + +// Used in living mob offset list for determining pixel offsets +#define PIXEL_W_OFFSET "w" +#define PIXEL_X_OFFSET "x" +#define PIXEL_Y_OFFSET "y" +#define PIXEL_Z_OFFSET "z" diff --git a/code/__DEFINES/machines.dm b/code/__DEFINES/machines.dm index ce0a5eeb9ff0b..1b0ec25c030c0 100644 --- a/code/__DEFINES/machines.dm +++ b/code/__DEFINES/machines.dm @@ -139,15 +139,6 @@ /// Max length of a status line in the status display #define MAX_STATUS_LINE_LENGTH 40 -///Define for automated system arrival announcement -#define AUTO_ANNOUNCE_ARRIVAL "ARRIVAL" -///Define for automated system announcement when a head of staff arrives -#define AUTO_ANNOUNCE_NEWHEAD "NEWHEAD" -///Define for automated system announcement for when the arrival shuttle is broken -#define AUTO_ANNOUNCE_ARRIVALS_BROKEN "ARRIVALS_BROKEN" -///Define for automated system announcement for researched nodes -#define AUTO_ANNOUNCE_NODE "NODE" - /// Blank Status Display #define SD_BLANK 0 /// Shows the emergency shuttle timer diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 7b4ec0bc36edc..be694d8d56d16 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -830,12 +830,13 @@ GLOBAL_LIST_INIT(layers_to_offset, list( #define ALL_EXTERNAL_OVERLAYS EXTERNAL_FRONT | EXTERNAL_ADJACENT | EXTERNAL_BEHIND // Bitflags for external organs restylability +#define EXTERNAL_RESTYLE_ALL ALL /// This organ allows restyle through plant restyling (like secateurs) -#define EXTERNAL_RESTYLE_PLANT (1 << 1) +#define EXTERNAL_RESTYLE_PLANT (1 << 0) /// This organ allows restyling with flesh restyling stuff (surgery or something idk) -#define EXTERNAL_RESTYLE_FLESH (1 << 2) +#define EXTERNAL_RESTYLE_FLESH (1 << 1) /// This organ allows restyling with enamel restyling (like a fucking file or something?). It's for horns and shit -#define EXTERNAL_RESTYLE_ENAMEL (1 << 3) +#define EXTERNAL_RESTYLE_ENAMEL (1 << 2) //Mob Overlay Index Shortcuts for alternate_worn_layer, layers //Because I *KNOW* somebody will think layer+1 means "above" diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm index 9f575de9fbc55..2771139a3dca5 100644 --- a/code/__DEFINES/obj_flags.dm +++ b/code/__DEFINES/obj_flags.dm @@ -35,17 +35,16 @@ #define SURGICAL_TOOL (1<<12) //Tool commonly used for surgery: won't attack targets in an active surgical operation on help intent (in case of mistakes) #define CRUEL_IMPLEMENT (1<<13) //This object, when used for surgery, is a lot worse at the job if the target is alive rather than dead #define HAND_ITEM (1<<14) // If an item is just your hand (circled hand, slapper) and shouldn't block things like riding -#define EXAMINE_SKIP (1<<15) // Makes the Examine proc not read out this item. -#define XENOMORPH_HOLDABLE (1<<16) // A Xenomorph can hold this item. -#define NO_PIXEL_RANDOM_DROP (1<<17) //if dropped, it wont have a randomized pixel_x/pixel_y +#define XENOMORPH_HOLDABLE (1<<15) // A Xenomorph can hold this item. +#define NO_PIXEL_RANDOM_DROP (1<<16) //if dropped, it wont have a randomized pixel_x/pixel_y ///Can be equipped on digitigrade legs. -#define IGNORE_DIGITIGRADE (1<<18) +#define IGNORE_DIGITIGRADE (1<<17) /// Has contextual screentips when HOVERING OVER OTHER objects -#define ITEM_HAS_CONTEXTUAL_SCREENTIPS (1 << 19) +#define ITEM_HAS_CONTEXTUAL_SCREENTIPS (1 << 18) /// No blood overlay is allowed to appear on this item, and it cannot gain blood DNA forensics -#define NO_BLOOD_ON_ITEM (1 << 20) +#define NO_BLOOD_ON_ITEM (1 << 19) /// Whether this item should skip the /datum/component/fantasy applied on spawn on the RPG event. Used on things like stacks -#define SKIP_FANTASY_ON_SPAWN (1<<21) +#define SKIP_FANTASY_ON_SPAWN (1<<20) // Flags for the clothing_flags var on /obj/item/clothing diff --git a/code/__DEFINES/robots.dm b/code/__DEFINES/robots.dm index ac20d0f0398db..5b14301927e72 100644 --- a/code/__DEFINES/robots.dm +++ b/code/__DEFINES/robots.dm @@ -372,3 +372,6 @@ DEFINE_BITFIELD(janitor_mode_flags, list( #define REPAIRBOT_VOICED_STRINGS "I had strings. But now I'm free..." #define REPAIRBOT_VOICED_ENTROPY "Witness! The pure beauty of entropy!" #define REPAIRBOT_VOICED_PASSION "BE DAMNED YOUR PASSION PROJECTS!" + +/// Default offsets for riding a cyborg +#define DEFAULT_ROBOT_RIDING_OFFSETS list(TEXT_NORTH = list(0, 4), TEXT_SOUTH = list(0, 4), TEXT_EAST = list(-6, 3), TEXT_WEST = list(6, 3)) diff --git a/code/__DEFINES/rust_g.dm b/code/__DEFINES/rust_g.dm index 84f0c5d0334c0..f144abc30c14f 100644 --- a/code/__DEFINES/rust_g.dm +++ b/code/__DEFINES/rust_g.dm @@ -175,6 +175,27 @@ /proc/rustg_git_commit_date_head(format = "%F") return RUSTG_CALL(RUST_G, "rg_git_commit_date_head")(format) +#define rustg_hash_string(algorithm, text) RUSTG_CALL(RUST_G, "hash_string")(algorithm, text) +#define rustg_hash_file(algorithm, fname) RUSTG_CALL(RUST_G, "hash_file")(algorithm, fname) +#define rustg_hash_generate_totp(seed) RUSTG_CALL(RUST_G, "generate_totp")(seed) +#define rustg_hash_generate_totp_tolerance(seed, tolerance) RUSTG_CALL(RUST_G, "generate_totp_tolerance")(seed, tolerance) + +#define RUSTG_HASH_MD5 "md5" +#define RUSTG_HASH_SHA1 "sha1" +#define RUSTG_HASH_SHA256 "sha256" +#define RUSTG_HASH_SHA512 "sha512" +#define RUSTG_HASH_XXH64 "xxh64" +#define RUSTG_HASH_BASE64 "base64" + +/// Encode a given string into base64 +#define rustg_encode_base64(str) rustg_hash_string(RUSTG_HASH_BASE64, str) +/// Decode a given base64 string +#define rustg_decode_base64(str) RUSTG_CALL(RUST_G, "decode_base64")(str) + +#ifdef RUSTG_OVERRIDE_BUILTINS + #define md5(thing) (isfile(thing) ? rustg_hash_file(RUSTG_HASH_MD5, "[thing]") : rustg_hash_string(RUSTG_HASH_MD5, thing)) +#endif + #define RUSTG_HTTP_METHOD_GET "get" #define RUSTG_HTTP_METHOD_PUT "put" #define RUSTG_HTTP_METHOD_DELETE "delete" @@ -185,6 +206,80 @@ #define rustg_http_request_async(method, url, body, headers, options) RUSTG_CALL(RUST_G, "http_request_async")(method, url, body, headers, options) #define rustg_http_check_request(req_id) RUSTG_CALL(RUST_G, "http_check_request")(req_id) +/// Generates a spritesheet at: [file_path][spritesheet_name]_[size_id].png +/// The resulting spritesheet arranges icons in a random order, with the position being denoted in the "sprites" return value. +/// All icons have the same y coordinate, and their x coordinate is equal to `icon_width * position`. +/// +/// hash_icons is a boolean (0 or 1), and determines if the generator will spend time creating hashes for the output field dmi_hashes. +/// These hashes can be heplful for 'smart' caching (see rustg_iconforge_cache_valid), but require extra computation. +/// +/// Spritesheet will contain all sprites listed within "sprites". +/// "sprites" format: +/// list( +/// "sprite_name" = list( // <--- this list is a [SPRITE_OBJECT] +/// icon_file = 'icons/path_to/an_icon.dmi', +/// icon_state = "some_icon_state", +/// dir = SOUTH, +/// frame = 1, +/// transform = list([TRANSFORM_OBJECT], ...) +/// ), +/// ..., +/// ) +/// TRANSFORM_OBJECT format: +/// list("type" = RUSTG_ICONFORGE_BLEND_COLOR, "color" = "#ff0000", "blend_mode" = ICON_MULTIPLY) +/// list("type" = RUSTG_ICONFORGE_BLEND_ICON, "icon" = [SPRITE_OBJECT], "blend_mode" = ICON_OVERLAY) +/// list("type" = RUSTG_ICONFORGE_SCALE, "width" = 32, "height" = 32) +/// list("type" = RUSTG_ICONFORGE_CROP, "x1" = 1, "y1" = 1, "x2" = 32, "y2" = 32) // (BYOND icons index from 1,1 to the upper bound, inclusive) +/// +/// Returns a SpritesheetResult as JSON, containing fields: +/// list( +/// "sizes" = list("32x32", "64x64", ...), +/// "sprites" = list("sprite_name" = list("size_id" = "32x32", "position" = 0), ...), +/// "dmi_hashes" = list("icons/path_to/an_icon.dmi" = "d6325c5b4304fb03", ...), +/// "sprites_hash" = "a2015e5ff403fb5c", // This is the xxh64 hash of the INPUT field "sprites". +/// "error" = "[A string, empty if there were no errors.]" +/// ) +/// In the case of an unrecoverable panic from within Rust, this function ONLY returns a string containing the error. +#define rustg_iconforge_generate(file_path, spritesheet_name, sprites, hash_icons) RUSTG_CALL(RUST_G, "iconforge_generate")(file_path, spritesheet_name, sprites, "[hash_icons]") +/// Returns a job_id for use with rustg_iconforge_check() +#define rustg_iconforge_generate_async(file_path, spritesheet_name, sprites, hash_icons) RUSTG_CALL(RUST_G, "iconforge_generate_async")(file_path, spritesheet_name, sprites, "[hash_icons]") +/// Returns the status of an async job_id, or its result if it is completed. See RUSTG_JOB DEFINEs. +#define rustg_iconforge_check(job_id) RUSTG_CALL(RUST_G, "iconforge_check")("[job_id]") +/// Clears all cached DMIs and images, freeing up memory. +/// This should be used after spritesheets are done being generated. +#define rustg_iconforge_cleanup RUSTG_CALL(RUST_G, "iconforge_cleanup") +/// Takes in a set of hashes, generate inputs, and DMI filepaths, and compares them to determine cache validity. +/// input_hash: xxh64 hash of "sprites" from the cache. +/// dmi_hashes: xxh64 hashes of the DMIs in a spritesheet, given by `rustg_iconforge_generate` with `hash_icons` enabled. From the cache. +/// sprites: The new input that will be passed to rustg_iconforge_generate(). +/// Returns a CacheResult with the following structure: list( +/// "result": "1" (if cache is valid) or "0" (if cache is invalid) +/// "fail_reason": "" (emtpy string if valid, otherwise a string containing the invalidation reason or an error with ERROR: prefixed.) +/// ) +/// In the case of an unrecoverable panic from within Rust, this function ONLY returns a string containing the error. +#define rustg_iconforge_cache_valid(input_hash, dmi_hashes, sprites) RUSTG_CALL(RUST_G, "iconforge_cache_valid")(input_hash, dmi_hashes, sprites) +/// Returns a job_id for use with rustg_iconforge_check() +#define rustg_iconforge_cache_valid_async(input_hash, dmi_hashes, sprites) RUSTG_CALL(RUST_G, "iconforge_cache_valid_async")(input_hash, dmi_hashes, sprites) +/// Provided a /datum/greyscale_config typepath, JSON string containing the greyscale config, and path to a DMI file containing the base icons, +/// Loads that config into memory for later use by rustg_iconforge_gags(). The config_path is the unique identifier used later. +/// JSON Config schema: https://hackmd.io/@tgstation/GAGS-Layer-Types +/// Unsupported features: color_matrix layer type, 'or' blend_mode. May not have BYOND parity with animated icons or varying dirs between layers. +/// Returns "OK" if successful, otherwise, returns a string containing the error. +#define rustg_iconforge_load_gags_config(config_path, config_json, config_icon_path) RUSTG_CALL(RUST_G, "iconforge_load_gags_config")("[config_path]", config_json, config_icon_path) +/// Given a config_path (previously loaded by rustg_iconforge_load_gags_config), and a string of hex colors formatted as "#ff00ff#ffaa00" +/// Outputs a DMI containing all of the states within the config JSON to output_dmi_path, creating any directories leading up to it if necessary. +/// Returns "OK" if successful, otherwise, returns a string containing the error. +#define rustg_iconforge_gags(config_path, colors, output_dmi_path) RUSTG_CALL(RUST_G, "iconforge_gags")("[config_path]", colors, output_dmi_path) +/// Returns a job_id for use with rustg_iconforge_check() +#define rustg_iconforge_load_gags_config_async(config_path, config_json, config_icon_path) RUSTG_CALL(RUST_G, "iconforge_load_gags_config_async")("[config_path]", config_json, config_icon_path) +/// Returns a job_id for use with rustg_iconforge_check() +#define rustg_iconforge_gags_async(config_path, colors, output_dmi_path) RUSTG_CALL(RUST_G, "iconforge_gags_async")("[config_path]", colors, output_dmi_path) + +#define RUSTG_ICONFORGE_BLEND_COLOR "BlendColor" +#define RUSTG_ICONFORGE_BLEND_ICON "BlendIcon" +#define RUSTG_ICONFORGE_CROP "Crop" +#define RUSTG_ICONFORGE_SCALE "Scale" + #define RUSTG_JOB_NO_RESULTS_YET "NO RESULTS YET" #define RUSTG_JOB_NO_SUCH_JOB "NO SUCH JOB" #define RUSTG_JOB_ERROR "JOB PANICKED" diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index b0acd65b10a0d..0d6e9c992f423 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -253,6 +253,15 @@ GLOBAL_LIST_INIT(announcer_keys, list( #define SFX_SEATBELT_UNBUCKLE "unbuckle" #define SFX_HEADSET_EQUIP "headset_equip" #define SFX_HEADSET_PICKUP "headset_pickup" +#define SFX_BANDAGE_BEGIN "bandage_begin" +#define SFX_BANDAGE_END "bandage_end" +#define SFX_CLOTH_DROP "cloth_drop" +#define SFX_CLOTH_PICKUP "cloth_pickup" +#define SFX_SUTURE_BEGIN "suture_begin" +#define SFX_SUTURE_CONTINUOUS "suture_continuous" +#define SFX_SUTURE_END "suture_end" +#define SFX_SUTURE_PICKUP "suture_pickup" +#define SFX_SUTURE_DROP "suture_drop" // Standard is 44.1khz #define MIN_EMOTE_PITCH 40000 diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index 936fd0b170fd7..8ea7128f5f10d 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -60,6 +60,7 @@ #define STASIS_ADMIN "stasis_admin" #define STASIS_LEGION_EATEN "stasis_eaten" #define STASIS_SLIME_BZ "stasis_slime_bz" +#define STASIS_ELDRITCH_ETHER "stasis_eldritch_ether" #define STASIS_NETPOD_EFFECT "stasis_netpod" diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index e3547fb73e0a4..3354f6306d3f9 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -20,7 +20,7 @@ * * make sure you add an update to the schema_version stable in the db changelog */ -#define DB_MINOR_VERSION 28 +#define DB_MINOR_VERSION 29 //! ## Timing subsystem diff --git a/code/__DEFINES/tgs.config.dm b/code/__DEFINES/tgs.config.dm index 2229d8683f0e1..0dc0e64f9a14f 100644 --- a/code/__DEFINES/tgs.config.dm +++ b/code/__DEFINES/tgs.config.dm @@ -1,5 +1,4 @@ #define TGS_EXTERNAL_CONFIGURATION -#define TGS_V3_API #define TGS_DEFINE_AND_SET_GLOBAL(Name, Value) GLOBAL_VAR_INIT(##Name, ##Value); GLOBAL_PROTECT(##Name) #define TGS_READ_GLOBAL(Name) GLOB.##Name #define TGS_WRITE_GLOBAL(Name, Value) GLOB.##Name = ##Value diff --git a/code/__DEFINES/tgui.dm b/code/__DEFINES/tgui.dm index 02d6a25a66045..e0cd6fc5fbf69 100644 --- a/code/__DEFINES/tgui.dm +++ b/code/__DEFINES/tgui.dm @@ -36,3 +36,11 @@ #define TGUI_CREATE_MESSAGE(type, payload) ( \ "%7b%22type%22%3a%22[type]%22%2c%22payload%22%3a[url_encode(json_encode(payload))]%7d" \ ) + +/** + * Gets a ui_state that checks to see if the user has specific admin permissions. + * + * Arguments: + * * required_perms: Which admin permission flags to check the user for, such as [R_ADMIN] + */ +#define ADMIN_STATE(required_perms) (GLOB.admin_states["[required_perms]"] ||= new /datum/ui_state/admin_state(required_perms)) diff --git a/code/__DEFINES/traits/_traits.dm b/code/__DEFINES/traits/_traits.dm index 7ebf1ad659046..0b1231c081fa6 100644 --- a/code/__DEFINES/traits/_traits.dm +++ b/code/__DEFINES/traits/_traits.dm @@ -74,7 +74,9 @@ var/list/_S = sources; \ if (_L) { \ for (var/_T in _L) { \ - _L[_T] &= _S;\ + if (_L[_T]) { \ + _L[_T] &= _S; \ + }; \ if (!length(_L[_T])) { \ _L -= _T; \ SEND_SIGNAL(target, SIGNAL_REMOVETRAIT(_T), _T); \ @@ -97,7 +99,9 @@ }; \ if (_L) { \ for (var/_T in _L) { \ - _L[_T] -= _S;\ + if (_L[_T]) { \ + _L[_T] -= _S; \ + }; \ if (!length(_L[_T])) { \ _L -= _T; \ SEND_SIGNAL(target, SIGNAL_REMOVETRAIT(_T)); \ diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm index 434927ac78adc..db594d235c8fd 100644 --- a/code/__DEFINES/traits/declarations.dm +++ b/code/__DEFINES/traits/declarations.dm @@ -379,8 +379,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// for something granting you a diagnostic hud #define TRAIT_DIAGNOSTIC_HUD "diag_hud" #define TRAIT_BOT_PATH_HUD "bot_path_hud" -/// Is a medbot healing you -#define TRAIT_MEDIBOTCOMINGTHROUGH "medbot" #define TRAIT_PASSTABLE "passtable" /// Lets you fly through windows #define TRAIT_PASSWINDOW "passwindow" @@ -582,8 +580,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Whether or not the user is in a MODlink call, prevents making more calls #define TRAIT_IN_CALL "in_call" -/// Is the mob standing on an elevated surface? This prevents them from dropping down if not elevated first. -#define TRAIT_ON_ELEVATED_SURFACE "on_elevated_surface" /// Does the mob ignore elevation? (e.g. xeno larvas on hiding) #define TRAIT_IGNORE_ELEVATION "ignore_elevation" @@ -618,7 +614,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_DISPLAY_JOB_IN_BINARY "display job in binary" /// Trait that determines vulnerability to being stunned from a shove -#define TRAIT_STUN_ON_NEXT_SHOVE "stun on next shove" +#define TRAIT_DAZED "dazed" /// Trait that determines whether our mob gains more strength from drinking during a fist fight #define TRAIT_DRUNKEN_BRAWLER "drunken brawler" @@ -872,6 +868,10 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_CONTRABAND_BLOCKER "contraband_blocker" /// For edible items that cannot be composted inside hydro trays #define TRAIT_UNCOMPOSTABLE "uncompostable" +/// Items with this trait will not have their worn icon overlayed. +#define TRAIT_NO_WORN_ICON "no_worn_icon" +/// Items with this trait will not appear when examined. +#define TRAIT_EXAMINE_SKIP "examine_skip" //quirk traits #define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance" @@ -1323,6 +1323,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Trait given to anything linked to, not necessarily allied to, the mansus #define TRAIT_MANSUS_TOUCHED "mansus_touched" +/// Trait given to all participants in a heretic arena +#define TRAIT_ELDRITCH_ARENA_PARTICIPANT "eldritch_arena_participant" // These traits are used in IS_X() as an OR, and is utilized for pseudoantags (such as deathmatch or domains) so they don't need to actually get antag status. // To specifically and only get the antag datum, GET_X() exists now. @@ -1427,4 +1429,13 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Trait applied when the wire bundle component is added to an [/obj/item/integrated_circuit] #define TRAIT_COMPONENT_WIRE_BUNDLE "component_wire_bundle" +/// Apply this trait to mobs which can "buckle" to humans +#define TRAIT_CAN_MOUNT_HUMANS "can_mount_humans" +/// Apply this trait to mobs which can "buckle" to cyborgs +#define TRAIT_CAN_MOUNT_CYBORGS "can_mount_cyborgs" + +/// Trait that is added to fishes that someone already caught, be it in-game or just theoretically, such as when they're bought +/// Prevents fishing achievement from being granted by catching one of these +#define TRAIT_NO_FISHING_ACHIEVEMENT "no_fishing_achievement" + // END TRAIT DEFINES diff --git a/code/__DEFINES/traits/sources.dm b/code/__DEFINES/traits/sources.dm index 9e407eeecae91..762126c3da7fd 100644 --- a/code/__DEFINES/traits/sources.dm +++ b/code/__DEFINES/traits/sources.dm @@ -56,6 +56,8 @@ #define SHOES_TRAIT "shoes" /// Trait inherited by implants #define IMPLANT_TRAIT "implant" +/// Traits given by the heretic arena spell +#define HERETIC_ARENA_TRAIT "heretic_arena" #define GLASSES_TRAIT "glasses" /// inherited from riding vehicles #define VEHICLE_TRAIT "vehicle" @@ -149,6 +151,8 @@ /// A trait gained from a mob's leap action, like the leaper #define LEAPING_TRAIT "leaping" +/// From grabbing someone +#define GRABBING_TRAIT "grabbing" /// A trait gained from a mob's vanish action, like the herophant #define VANISHING_TRAIT "vanishing" /// A trait gained from a mob's swoop action, like the ash drake @@ -195,6 +199,8 @@ /// Trait from mob/living/update_transform() #define UPDATE_TRANSFORM_TRAIT "update_transform" +/// Trait from mob/living/update_offsets() +#define UPDATE_OFFSET_TRAIT "update_offset" /// Trait granted by the berserker hood. #define BERSERK_TRAIT "berserk_trait" diff --git a/code/__DEFINES/uplink.dm b/code/__DEFINES/uplink.dm index 929b558dfec47..3b3621f24c540 100644 --- a/code/__DEFINES/uplink.dm +++ b/code/__DEFINES/uplink.dm @@ -9,13 +9,10 @@ /// This item is purchasable to clown ops #define UPLINK_CLOWN_OPS (1 << 2) -/// This item is purchasable to infiltrators (midround traitors) -#define UPLINK_INFILTRATORS (1 << 3) - /// Can be randomly given to spies for their bounties -#define UPLINK_SPY (1 << 4) +#define UPLINK_SPY (1 << 3) -#define UPLINK_LONE_OP (1 << 5) +#define UPLINK_LONE_OP (1 << 4) /// A blanket define for an item being purchasable by all types of nukie #define UPLINK_ALL_SYNDIE_OPS (UPLINK_NUKE_OPS | UPLINK_LONE_OP | UPLINK_CLOWN_OPS) diff --git a/code/__DEFINES/vehicles.dm b/code/__DEFINES/vehicles.dm index d210a07dde4dd..e918e96fbb9c4 100644 --- a/code/__DEFINES/vehicles.dm +++ b/code/__DEFINES/vehicles.dm @@ -42,6 +42,3 @@ #define VIM_SOUND_COOLDOWN (1 SECONDS) ///how much vim heals per weld #define VIM_HEAL_AMOUNT 20 - -/// The vehicle being ridden requires pixel offsets for all directions -#define RIDING_OFFSET_ALL "ALL" diff --git a/code/__DEFINES/vv.dm b/code/__DEFINES/vv.dm index 1ce2d5d46cb9c..6c9d4e2b8509b 100644 --- a/code/__DEFINES/vv.dm +++ b/code/__DEFINES/vv.dm @@ -39,8 +39,8 @@ #define IS_VALID_ASSOC_KEY(V) (!isnum(V)) //hhmmm.. //General helpers -#define VV_HREF_TARGET_INTERNAL(target, href_key) "?_src_=vars;[HrefToken()];[href_key]=TRUE;[VV_HK_TARGET]=[REF(target)]" -#define VV_HREF_TARGETREF_INTERNAL(targetref, href_key) "?_src_=vars;[HrefToken()];[href_key]=TRUE;[VV_HK_TARGET]=[targetref]" +#define VV_HREF_TARGET_INTERNAL(target, href_key) "byond://?_src_=vars;[HrefToken()];[href_key]=TRUE;[VV_HK_TARGET]=[REF(target)]" +#define VV_HREF_TARGETREF_INTERNAL(targetref, href_key) "byond://?_src_=vars;[HrefToken()];[href_key]=TRUE;[VV_HK_TARGET]=[targetref]" #define VV_HREF_TARGET(target, href_key, text) "[text]" #define VV_HREF_TARGETREF(targetref, href_key, text) "[text]" #define VV_HREF_TARGET_1V(target, href_key, text, varname) "[text]" //for stuff like basic varedits, one variable @@ -134,6 +134,8 @@ #define VV_HK_GIVE_DIRECT_CONTROL "give_direct_control" #define VV_HK_OFFER_GHOSTS "offer_ghosts" #define VV_HK_VIEW_PLANES "view_planes" +#define VV_HK_GIVE_AI "give_ai" +#define VV_HK_GIVE_AI_SPEECH "give_ai_speech" // /mob/living #define VV_HK_GIVE_SPEECH_IMPEDIMENT "impede_speech" diff --git a/code/__DEFINES/wiremod.dm b/code/__DEFINES/wiremod.dm index 421650e3bf1e7..b606f938869a1 100644 --- a/code/__DEFINES/wiremod.dm +++ b/code/__DEFINES/wiremod.dm @@ -123,6 +123,8 @@ #define CIRCUIT_FLAG_REFUSE_MODULE (1<<5) /// This circuit component cannot be inserted into the same circuit multiple times. Only use this for major headaches. #define CIRCUIT_NO_DUPLICATES (1<<6) +/// This circuit component is currently disabled via configs +#define CIRCUIT_FLAG_DISABLED (1<<7) // Datatype flags /// The datatype supports manual inputs diff --git a/code/__DEFINES/wires.dm b/code/__DEFINES/wires.dm index 034bb8897e6e6..57f51c50cd835 100644 --- a/code/__DEFINES/wires.dm +++ b/code/__DEFINES/wires.dm @@ -52,6 +52,12 @@ #define WIRE_DENY "Scan Fail" #define WIRE_DISABLE "Disable" #define WIRE_DISARM "Disarm" +#define WIRE_ON "On" +#define WIRE_DROP "Drop" +#define WIRE_ITEM_TYPE "Item Type" +#define WIRE_CHANGE_MODE "Change Mode" +#define WIRE_ONE_PRIORITY_BUTTON "One Priority Button" +#define WIRE_THROW_RANGE "Throw Range" #define WIRE_DUD_PREFIX "__dud" #define WIRE_HACK "Hack" #define WIRE_IDSCAN "ID Scan" diff --git a/code/__HELPERS/_dreamluau.dm b/code/__HELPERS/_dreamluau.dm index d8bb784c217a2..9436b95c55196 100644 --- a/code/__HELPERS/_dreamluau.dm +++ b/code/__HELPERS/_dreamluau.dm @@ -1,3 +1,4 @@ +#ifndef DISABLE_DREAMLUAU /* This comment bypasses grep checks */ /var/__dreamluau /* This comment also bypasses grep checks */ /var/__dreamluau_exists @@ -299,3 +300,4 @@ */ #define DREAMLUAU_CLEAR_REF_USERDATA(object) DREAMLUAU_CALL(clear_ref_userdata)((object)) +#endif diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 44a94a93f7c62..4d2dd6da94d0d 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -155,19 +155,18 @@ ///Get active players who are playing in the round /proc/get_active_player_count(alive_check = FALSE, afk_check = FALSE, human_check = FALSE) var/active_players = 0 - for(var/i = 1; i <= GLOB.player_list.len; i++) - var/mob/player_mob = GLOB.player_list[i] + for(var/mob/player_mob as anything in GLOB.player_list) if(!player_mob?.client) continue - if(alive_check && player_mob.stat) + if(alive_check && player_mob.stat == DEAD) continue - else if(afk_check && player_mob.client.is_afk()) + if(afk_check && player_mob.client.is_afk()) continue - else if(human_check && !ishuman(player_mob)) + if(human_check && !ishuman(player_mob)) continue - else if(isnewplayer(player_mob)) // exclude people in the lobby + if(isnewplayer(player_mob)) // exclude people in the lobby continue - else if(isobserver(player_mob)) // Ghosts are fine if they were playing once (didn't start as observers) + if(isobserver(player_mob)) // Ghosts are fine if they were playing once (didn't start as observers) var/mob/dead/observer/ghost_player = player_mob if(ghost_player.started_as_observer) // Exclude people who started as observers continue @@ -236,23 +235,8 @@ return var/area/player_area = get_area(character) deadchat_broadcast(span_game(" has arrived at the station at [span_name(player_area.name)]."), span_game("[span_name(character.real_name)] ([rank])"), follow_target = character, message_type=DEADCHAT_ARRIVALRATTLE) - if(!character.mind) - return - if(!GLOB.announcement_systems.len) - return - if(!(character.mind.assigned_role.job_flags & JOB_ANNOUNCE_ARRIVAL)) - return - - var/obj/machinery/announcement_system/announcer - var/list/available_machines = list() - for(var/obj/machinery/announcement_system/announce as anything in GLOB.announcement_systems) - if(announce.arrival_toggle) - available_machines += announce - break - if(!length(available_machines)) - return - announcer = pick(available_machines) - announcer.announce(AUTO_ANNOUNCE_ARRIVAL, character.real_name, rank, list()) //make the list empty to make it announce it in common + if(character.mind && (character.mind.assigned_role.job_flags & JOB_ANNOUNCE_ARRIVAL)) + aas_config_announce(/datum/aas_config_entry/arrival, list("PERSON" = character.real_name,"RANK" = rank)) ///Check if the turf pressure allows specialized equipment to work /proc/lavaland_equipment_pressure_check(turf/turf_to_check) diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index 583db80877305..9d9afc57bcb63 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -1184,28 +1184,37 @@ GLOBAL_LIST_EMPTY(transformation_animation_objects) animate(pixel_x = initialpixelx + rand(-pixelshiftx,pixelshiftx), pixel_y = initialpixely + rand(-pixelshifty,pixelshifty), time = shake_interval) animate(pixel_x = initialpixelx, pixel_y = initialpixely, time = shake_interval) -///Checks if the given iconstate exists in the given file, caching the result. Setting scream to TRUE will print a stack trace ONCE. -/proc/icon_exists(file, state, scream) +/// Checks whether a given icon state exists in a given icon file. If `file` and `state` both exist, +/// this will return `TRUE` - otherwise, it will return `FALSE`. +/// +/// If you want a stack trace to be output when the given state/file doesn't exist, use +/// `/proc/icon_exists_or_scream()`. +/proc/icon_exists(file, state) var/static/list/icon_states_cache = list() - if(icon_states_cache[file]?[state]) - return TRUE - - if(icon_states_cache[file]?[state] == FALSE) - return FALSE - - var/list/states = icon_states(file) + if(isnull(file) || isnull(state)) + return FALSE //This is common enough that it shouldn't panic, imo. - if(!icon_states_cache[file]) + if(isnull(icon_states_cache[file])) icon_states_cache[file] = list() + for(var/istate in icon_states(file)) + icon_states_cache[file][istate] = TRUE + + return !isnull(icon_states_cache[file][state]) - if(state in states) - icon_states_cache[file][state] = TRUE +/// Functions the same as `/proc/icon_exists()`, but with the addition of a stack trace if the +/// specified file or state doesn't exist. +/// +/// Stack traces will only be output once for each file. +/proc/icon_exists_or_scream(file, state) + if(icon_exists(file, state)) return TRUE - else - icon_states_cache[file][state] = FALSE - if(scream) - stack_trace("Icon Lookup for state: [state] in file [file] failed.") - return FALSE + + var/static/list/screams = list() + if(!isnull(screams[file])) + screams[file] = TRUE + stack_trace("State [state] in file [file] does not exist.") + + return FALSE /** * Returns the size of the sprite in tiles. diff --git a/code/__HELPERS/lighting.dm b/code/__HELPERS/lighting.dm index 96087ba173770..da6f4d1cee2e5 100644 --- a/code/__HELPERS/lighting.dm +++ b/code/__HELPERS/lighting.dm @@ -9,7 +9,7 @@ //Test to make sure emissives with broken or missing icon states are created if(PERFORM_ALL_TESTS(focus_only/invalid_emissives)) - if(icon_state && !icon_exists(icon, icon_state, scream = FALSE)) //Scream set to False so we can have a custom stack_trace + if(icon_state && !icon_exists(icon, icon_state)) stack_trace("An emissive appearance was added with non-existant icon_state \"[icon_state]\" in [icon]!") return appearance diff --git a/code/__HELPERS/priority_announce.dm b/code/__HELPERS/priority_announce.dm index 3aaa5f0da13ef..377a4959c25b0 100644 --- a/code/__HELPERS/priority_announce.dm +++ b/code/__HELPERS/priority_announce.dm @@ -202,7 +202,6 @@ to_chat(target, announcement) if(!should_play_sound || (should_play_sound_callback && !should_play_sound_callback.Invoke(target))) continue - if(target.client?.prefs.read_preference(/datum/preference/toggle/sound_announcements)) SEND_SOUND(target, sound(sound_to_play)) diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index 19dec4a7fd442..b0db4a493b8bc 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -246,7 +246,8 @@ GLOBAL_LIST_INIT(achievements_unlocked, list()) to_chat(world, span_infoplain(span_big(span_bold("


The round has ended.")))) log_game("The round has ended.") - send2chat(new /datum/tgs_message_content("[GLOB.round_id ? "Round [GLOB.round_id]" : "The round has"] just ended."), CONFIG_GET(string/channel_announce_end_game)) + for(var/channel_tag in CONFIG_GET(str_list/channel_announce_end_game)) + send2chat(new /datum/tgs_message_content("[GLOB.round_id ? "Round [GLOB.round_id]" : "The round has"] just ended."), channel_tag) send2adminchat("Server", "Round just ended.") if(length(CONFIG_GET(keyed_list/cross_server))) diff --git a/code/__HELPERS/visual_effects.dm b/code/__HELPERS/visual_effects.dm index 2b845c2131b00..fca5fc576407c 100644 --- a/code/__HELPERS/visual_effects.dm +++ b/code/__HELPERS/visual_effects.dm @@ -6,8 +6,8 @@ * This is just so you can apply the animation to things which can be animated but are not movables (like images) */ #define DO_FLOATING_ANIM(target) \ - animate(target, pixel_y = 2, time = 1 SECONDS, loop = -1, flags = ANIMATION_RELATIVE); \ - animate(pixel_y = -2, time = 1 SECONDS, flags = ANIMATION_RELATIVE) + animate(target, pixel_z = 2, time = 1 SECONDS, loop = -1, flags = ANIMATION_RELATIVE); \ + animate(pixel_z = -2, time = 1 SECONDS, flags = ANIMATION_RELATIVE) /** * Stops the passed atom / image from appearing floating @@ -17,16 +17,16 @@ * This is just so you can apply the animation to things which can be animated but are not movables (like images) */ #define STOP_FLOATING_ANIM(target) \ - var/final_pixel_y = 0; \ + var/__final_pixel_z = 0; \ if(ismovable(target)) { \ - var/atom/movable/movable_target = target; \ - final_pixel_y = movable_target.base_pixel_y; \ + var/atom/movable/__movable_target = target; \ + __final_pixel_z += __movable_target.base_pixel_z; \ }; \ if(isliving(target)) { \ - var/mob/living/living_target = target; \ - final_pixel_y += living_target.body_position_pixel_y_offset; \ + var/mob/living/__living_target = target; \ + __final_pixel_z += __living_target.has_offset(pixel = PIXEL_Z_OFFSET); \ }; \ - animate(target, pixel_y = final_pixel_y, time = 1 SECONDS) + animate(target, pixel_z = __final_pixel_z, time = 1 SECONDS) /// The duration of the animate call in mob/living/update_transform #define UPDATE_TRANSFORM_ANIMATION_TIME (0.2 SECONDS) diff --git a/code/_compile_options.dm b/code/_compile_options.dm index c82f68bb228b2..8784e5b534cfc 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -106,6 +106,16 @@ /// If this is uncommented, will profile mapload atom initializations // #define PROFILE_MAPLOAD_INIT_ATOM +/// If uncommented, Dreamluau will be fully disabled. +// #define DISABLE_DREAMLUAU + +// OpenDream currently doesn't support byondapi, so automatically disable it on OD, +// unless CIBUILDING is defined - we still want to lint dreamluau-related code. +// Get rid of this whenever it does have support. +#if defined(OPENDREAM) && !defined(SPACEMAN_DMM) && !defined(CIBUILDING) +#define DISABLE_DREAMLUAU +#endif + /// If this is uncommented, force our verb processing into just the 2% of a tick /// We normally reserve for it /// NEVER run this on live, it's for simulating highpop only diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index 689750ff9ce88..3bde6663a02a4 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -173,7 +173,6 @@ DEFINE_BITFIELD(item_flags, list( "ABSTRACT" = ABSTRACT, "BEING_REMOVED" = BEING_REMOVED, "DROPDEL" = DROPDEL, - "EXAMINE_SKIP" = EXAMINE_SKIP, "FORCE_STRING_OVERRIDE" = FORCE_STRING_OVERRIDE, "HAND_ITEM" = HAND_ITEM, "IGNORE_DIGITIGRADE" = IGNORE_DIGITIGRADE, diff --git a/code/_globalvars/lists/canisters.dm b/code/_globalvars/lists/canisters.dm index f8ec95f602051..746a8456d71c3 100644 --- a/code/_globalvars/lists/canisters.dm +++ b/code/_globalvars/lists/canisters.dm @@ -25,5 +25,5 @@ GLOBAL_LIST_INIT(gas_id_to_canister, init_gas_id_to_canister()) GAS_ZAUKER = /obj/machinery/portable_atmospherics/canister/zauker, GAS_HELIUM = /obj/machinery/portable_atmospherics/canister/helium, GAS_ANTINOBLIUM = /obj/machinery/portable_atmospherics/canister/antinoblium, - GAS_HALON = /obj/machinery/portable_atmospherics/canister/halon + GAS_HALON = /obj/machinery/portable_atmospherics/canister/halon, )) diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index d79e77b111d72..7a88f1f45b8b0 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -262,6 +262,7 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items /obj/item/computer_disk/maintenance/modsuit_control = 1, /obj/item/computer_disk/maintenance/spectre_meter = 1, /obj/item/computer_disk/maintenance/arcade = 1, + /obj/item/disk/design_disk/liberator = 1, /obj/item/computer_disk/maintenance/theme = 3, ) = 4, @@ -309,6 +310,7 @@ GLOBAL_LIST_INIT(rarity_loot, list(//rare: really good items /obj/item/weldingtool/hugetank = 1, /obj/item/fishing_rod/telescopic/master = 1, /obj/item/spess_knife = 1, + /obj/item/gun/ballistic/automatic/pistol/doorhickey = 1, ) = 1, list(//equipment diff --git a/code/_globalvars/lists/rtd.dm b/code/_globalvars/lists/rtd.dm index 29e5b6d00696f..42553d3a47839 100644 --- a/code/_globalvars/lists/rtd.dm +++ b/code/_globalvars/lists/rtd.dm @@ -1,6 +1,3 @@ -//dont create icons for TGUI if direction is any of these values cause its handled inside CSS -GLOBAL_LIST_INIT(tile_dont_rotate, list(NORTH, EAST, SOUTH, WEST)) - ///all designs supported by the RTD GLOBAL_LIST_INIT(floor_designs, list( //what players will use most of the time @@ -11,21 +8,21 @@ GLOBAL_LIST_INIT(floor_designs, list( list("name" = "Small", "type" = /obj/item/stack/tile/iron/small, "tile_cost" = 3), list("name" = "Large", "type" = /obj/item/stack/tile/iron/large, "tile_cost" = 7), list("name" = "Diagonal", "type" = /obj/item/stack/tile/iron/diagonal, "tile_cost" = 5), - list("name" = "Edge", "type" = /obj/item/stack/tile/iron/edge, "tile_cost" = 5, "tile_rotate_dirs" = list(SOUTH, NORTH, EAST, WEST)), - list("name" = "Half", "type" = /obj/item/stack/tile/iron/half, "tile_cost" = 5, "tile_rotate_dirs" = list(SOUTH, NORTH)), - list("name" = "Corner", "type" = /obj/item/stack/tile/iron/corner, "tile_cost" = 5, "tile_rotate_dirs" = list(SOUTH, NORTH, EAST, WEST)), + list("name" = "Edge", "type" = /obj/item/stack/tile/iron/edge, "tile_cost" = 5), + list("name" = "Half", "type" = /obj/item/stack/tile/iron/half, "tile_cost" = 5), + list("name" = "Corner", "type" = /obj/item/stack/tile/iron/corner, "tile_cost" = 5), list("name" = "Textured", "type" = /obj/item/stack/tile/iron/textured, "tile_cost" = 5), - list("name" = "Textured Edge", "type" = /obj/item/stack/tile/iron/textured_edge, "tile_cost" = 6, "tile_rotate_dirs" = list(SOUTH, NORTH, EAST, WEST)), - list("name" = "Textured Half", "type" = /obj/item/stack/tile/iron/textured_half, "tile_cost" = 6, "tile_rotate_dirs" = list(SOUTH, NORTH)), - list("name" = "Textured Corner", "type" = /obj/item/stack/tile/iron/textured_corner, "tile_cost" = 6, "tile_rotate_dirs" = list(SOUTH, NORTH, EAST, WEST)), + list("name" = "Textured Edge", "type" = /obj/item/stack/tile/iron/textured_edge, "tile_cost" = 6), + list("name" = "Textured Half", "type" = /obj/item/stack/tile/iron/textured_half, "tile_cost" = 6), + list("name" = "Textured Corner", "type" = /obj/item/stack/tile/iron/textured_corner, "tile_cost" = 6), list("name" = "Textured Large", "type" = /obj/item/stack/tile/iron/textured_large, "tile_cost" = 6), ), //Looks slightly transparent or faded "Translucent" = list( list("name" = "Smooth", "type" = /obj/item/stack/tile/iron/smooth, "tile_cost" = 4), - list("name" = "Smooth Edge", "type" = /obj/item/stack/tile/iron/smooth_edge, "tile_cost" = 4, "tile_rotate_dirs" = list(SOUTH, NORTH, EAST, WEST)), - list("name" = "Smooth Half", "type" = /obj/item/stack/tile/iron/smooth_half, "tile_cost" = 4, "tile_rotate_dirs" = list(SOUTH, NORTH)), - list("name" = "Smooth Corner", "type" = /obj/item/stack/tile/iron/smooth_corner, "tile_cost" = 4, "tile_rotate_dirs" = list(SOUTH, NORTH, EAST, WEST)), + list("name" = "Smooth Edge", "type" = /obj/item/stack/tile/iron/smooth_edge, "tile_cost" = 4), + list("name" = "Smooth Half", "type" = /obj/item/stack/tile/iron/smooth_half, "tile_cost" = 4), + list("name" = "Smooth Corner", "type" = /obj/item/stack/tile/iron/smooth_corner, "tile_cost" = 4), list("name" = "Smooth Large", "type" = /obj/item/stack/tile/iron/smooth_large, "tile_cost" = 7), list("name" = "Freezer", "type" = /obj/item/stack/tile/iron/freezer, "tile_cost" = 5), list("name" = "Showroom", "type" = /obj/item/stack/tile/iron/showroomfloor, "tile_cost" = 5), @@ -49,42 +46,42 @@ GLOBAL_LIST_INIT(floor_designs, list( //Dark Colored tiles "Dark Colored" = list( list("name" = "Base", "type" = /obj/item/stack/tile/iron/dark, "tile_cost" = 4), - list("name" = "Smooth Edge", "type" = /obj/item/stack/tile/iron/dark/smooth_edge, "tile_cost" = 4, "tile_rotate_dirs" = list(SOUTH, NORTH, EAST, WEST)), - list("name" = "Smooth Half", "type" = /obj/item/stack/tile/iron/dark/smooth_half, "tile_cost" = 4, "tile_rotate_dirs" = list(SOUTH, NORTH)), - list("name" = "Smooth Corner" ,"type" = /obj/item/stack/tile/iron/dark/smooth_corner, "tile_cost" = 4, "tile_rotate_dirs" = list(SOUTH, NORTH, EAST, WEST)), + list("name" = "Smooth Edge", "type" = /obj/item/stack/tile/iron/dark/smooth_edge, "tile_cost" = 4), + list("name" = "Smooth Half", "type" = /obj/item/stack/tile/iron/dark/smooth_half, "tile_cost" = 4), + list("name" = "Smooth Corner" ,"type" = /obj/item/stack/tile/iron/dark/smooth_corner, "tile_cost" = 4), list("name" = "Smooth Large", "type" = /obj/item/stack/tile/iron/dark/smooth_large, "tile_cost" = 7), list("name" = "Small", "type" = /obj/item/stack/tile/iron/dark/small, "tile_cost" = 4), list("name" = "Diagonal", "type" = /obj/item/stack/tile/iron/dark/diagonal, "tile_cost" = 4), list("name" = "Herringbone", "type" = /obj/item/stack/tile/iron/dark/herringbone, "tile_cost" = 4), - list("name" = "Half Dark", "type" = /obj/item/stack/tile/iron/dark_side, "tile_cost" = 4, "tile_rotate_dirs" = list(SOUTH, NORTH, EAST, WEST, SOUTHEAST, SOUTHWEST, NORTHEAST, NORTHWEST)), - list("name" = "Dark Corner" ,"type" = /obj/item/stack/tile/iron/dark_corner, "tile_cost" = 4, "tile_rotate_dirs" = list(SOUTH, NORTH, EAST, WEST)), + list("name" = "Half Dark", "type" = /obj/item/stack/tile/iron/dark_side, "tile_cost" = 4), + list("name" = "Dark Corner" ,"type" = /obj/item/stack/tile/iron/dark_corner, "tile_cost" = 4), ), //White Colored tiles "White Colored" = list( list("name" = "Base", "type" = /obj/item/stack/tile/iron/white, "tile_cost" = 5), - list("name" = "Smooth Edge", "type" = /obj/item/stack/tile/iron/white/smooth_edge, "tile_cost" = 5, "tile_rotate_dirs" = list(SOUTH, NORTH, EAST, WEST)), - list("name" = "Smooth Half", "type" = /obj/item/stack/tile/iron/white/smooth_half, "tile_cost" = 5, "tile_rotate_dirs" = list(SOUTH, NORTH)), - list("name" = "Smooth Corner", "type" = /obj/item/stack/tile/iron/white/smooth_corner, "tile_cost" = 5, "tile_rotate_dirs" = list(SOUTH, NORTH, EAST, WEST)), + list("name" = "Smooth Edge", "type" = /obj/item/stack/tile/iron/white/smooth_edge, "tile_cost" = 5), + list("name" = "Smooth Half", "type" = /obj/item/stack/tile/iron/white/smooth_half, "tile_cost" = 5), + list("name" = "Smooth Corner", "type" = /obj/item/stack/tile/iron/white/smooth_corner, "tile_cost" = 5), list("name" = "Smooth Large", "type" = /obj/item/stack/tile/iron/white/smooth_large, "tile_cost" = 7), list("name" = "Small", "type" = /obj/item/stack/tile/iron/white/small, "tile_cost" = 5), list("name" = "Diagonal", "type" = /obj/item/stack/tile/iron/white/diagonal, "tile_cost" = 5), list("name" = "Herringbone", "type" = /obj/item/stack/tile/iron/white/herringbone, "tile_cost" = 5), - list("name" = "Half White", "type" = /obj/item/stack/tile/iron/white_side, "tile_cost" = 5, "tile_rotate_dirs" = list(SOUTH, NORTH, EAST, WEST, SOUTHEAST, SOUTHWEST, NORTHEAST, NORTHWEST)), - list("name" = "White Corner", "type" = /obj/item/stack/tile/iron/white_corner, "tile_cost" = 5, "tile_rotate_dirs" = list(SOUTH, NORTH, EAST, WEST)), + list("name" = "Half White", "type" = /obj/item/stack/tile/iron/white_side, "tile_cost" = 5), + list("name" = "White Corner", "type" = /obj/item/stack/tile/iron/white_corner, "tile_cost" = 5), ), //Textured tiles "Textured" = list( list("name" = "Textured White", "type" = /obj/item/stack/tile/iron/white/textured, "tile_cost" = 5), - list("name" = "Textured White Edge", "type" = /obj/item/stack/tile/iron/white/textured_edge, "tile_cost" = 5, "tile_rotate_dirs" = list(SOUTH, NORTH, EAST, WEST)), - list("name" = "Textured White Half", "type" = /obj/item/stack/tile/iron/white/textured_half, "tile_cost" = 5, "tile_rotate_dirs" = list(SOUTH, NORTH)), - list("name" = "Textured White Corner", "type" = /obj/item/stack/tile/iron/white/textured_corner, "tile_cost" = 5, "tile_rotate_dirs" = list(SOUTH, NORTH, EAST, WEST)), + list("name" = "Textured White Edge", "type" = /obj/item/stack/tile/iron/white/textured_edge, "tile_cost" = 5), + list("name" = "Textured White Half", "type" = /obj/item/stack/tile/iron/white/textured_half, "tile_cost" = 5), + list("name" = "Textured White Corner", "type" = /obj/item/stack/tile/iron/white/textured_corner, "tile_cost" = 5), list("name" = "Textured White Large", "type" = /obj/item/stack/tile/iron/white/textured_large, "tile_cost" = 7), list("name" = "Textured Dark", "type" = /obj/item/stack/tile/iron/dark/textured, "tile_cost" = 5), - list("name" = "Textured Dark Edge", "type" = /obj/item/stack/tile/iron/dark/textured_edge, "tile_cost" = 5, "tile_rotate_dirs" = list(SOUTH, NORTH, EAST, WEST)), - list("name" = "Textured Dark Half", "type" = /obj/item/stack/tile/iron/dark/textured_half, "tile_cost" = 5, "tile_rotate_dirs" = list(SOUTH, NORTH)), - list("name" = "Textured Dark Corner", "type" = /obj/item/stack/tile/iron/dark/textured_corner, "tile_cost" = 5, "tile_rotate_dirs" = list(SOUTH, NORTH, EAST, WEST)), + list("name" = "Textured Dark Edge", "type" = /obj/item/stack/tile/iron/dark/textured_edge, "tile_cost" = 5), + list("name" = "Textured Dark Half", "type" = /obj/item/stack/tile/iron/dark/textured_half, "tile_cost" = 5), + list("name" = "Textured Dark Corner", "type" = /obj/item/stack/tile/iron/dark/textured_corner, "tile_cost" = 5), list("name" = "Textured Dark Large", "type" = /obj/item/stack/tile/iron/dark/textured_large, "tile_cost" = 7), ) ), @@ -114,3 +111,11 @@ GLOBAL_LIST_INIT(floor_designs, list( ) ) )) + +/// Lazy-initialize the datum field on all the designs +/proc/populate_rtd_datums() + for(var/main_root in GLOB.floor_designs) + for(var/sub_category in GLOB.floor_designs[main_root]) + for(var/list/design in GLOB.floor_designs[main_root][sub_category]) + var/datum/tile_info/tile_data = new /datum/tile_info(design) + design["datum"] = tile_data diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm index 4c15e82250d51..b6b98f3dfc52e 100644 --- a/code/_globalvars/traits/_traits.dm +++ b/code/_globalvars/traits/_traits.dm @@ -140,7 +140,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_UNSTABLE_ASS" = TRAIT_UNSTABLE_ASS, "TRAIT_STABLE_ASS" = TRAIT_STABLE_ASS, //MASSMETA EDIT ADDITION END - "TRAIT_AI_ACCESS" = TRAIT_AI_ACCESS, "TRAIT_ABDUCTOR_SCIENTIST_TRAINING" = TRAIT_ABDUCTOR_SCIENTIST_TRAINING, "TRAIT_ABDUCTOR_TRAINING" = TRAIT_ABDUCTOR_TRAINING, "TRAIT_ACT_AS_CULTIST" = TRAIT_ACT_AS_CULTIST, @@ -150,6 +149,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_AGENDER" = TRAIT_AGENDER, "TRAIT_AGEUSIA" = TRAIT_AGEUSIA, "TRAIT_AIRLOCK_SHOCKIMMUNE" = TRAIT_AIRLOCK_SHOCKIMMUNE, + "TRAIT_AI_ACCESS" = TRAIT_AI_ACCESS, "TRAIT_AI_BAGATTACK" = TRAIT_AI_BAGATTACK, "TRAIT_ALCOHOL_TOLERANCE" = TRAIT_ALCOHOL_TOLERANCE, "TRAIT_ALLOW_HERETIC_CASTING" = TRAIT_ALLOW_HERETIC_CASTING, @@ -171,15 +171,16 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_BEING_BLADE_SHIELDED" = TRAIT_BEING_BLADE_SHIELDED, "TRAIT_BIRTHDAY_BOY" = TRAIT_BIRTHDAY_BOY, "TRAIT_BLOB_ALLY" = TRAIT_BLOB_ALLY, - "TRAIT_BLOCK_SHUTTLE_MOVEMENT" = TRAIT_BLOCK_SHUTTLE_MOVEMENT, "TRAIT_BLOCKING_PROJECTILES" = TRAIT_BLOCKING_PROJECTILES, - "TRAIT_BLOOD_CLANS" = TRAIT_BLOOD_CLANS, + "TRAIT_BLOCK_SHUTTLE_MOVEMENT" = TRAIT_BLOCK_SHUTTLE_MOVEMENT, "TRAIT_BLOODSHOT_EYES" = TRAIT_BLOODSHOT_EYES, "TRAIT_BLOODY_MESS" = TRAIT_BLOODY_MESS, + "TRAIT_BLOOD_CLANS" = TRAIT_BLOOD_CLANS, "TRAIT_BOMBIMMUNE" = TRAIT_BOMBIMMUNE, "TRAIT_BONSAI" = TRAIT_BONSAI, "TRAIT_BOOZE_SLIDER" = TRAIT_BOOZE_SLIDER, "TRAIT_BORN_MONKEY" = TRAIT_BORN_MONKEY, + "TRAIT_BOT_PATH_HUD" = TRAIT_BOT_PATH_HUD, "TRAIT_BOXING_READY" = TRAIT_BOXING_READY, "TRAIT_BRAINWASHING" = TRAIT_BRAINWASHING, "TRAIT_BRAWLING_KNOCKDOWN_BLOCKED" = TRAIT_BRAWLING_KNOCKDOWN_BLOCKED, @@ -190,6 +191,8 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_CANNOT_OPEN_PRESENTS" = TRAIT_CANNOT_OPEN_PRESENTS, "TRAIT_CANT_RIDE" = TRAIT_CANT_RIDE, "TRAIT_CAN_HOLD_ITEMS" = TRAIT_CAN_HOLD_ITEMS, + "TRAIT_CAN_MOUNT_CYBORGS" = TRAIT_CAN_MOUNT_CYBORGS, + "TRAIT_CAN_MOUNT_HUMANS" = TRAIT_CAN_MOUNT_HUMANS, "TRAIT_CAN_SIGN_ON_COMMS" = TRAIT_CAN_SIGN_ON_COMMS, "TRAIT_CAN_STRIP" = TRAIT_CAN_STRIP, "TRAIT_CAN_USE_NUKE" = TRAIT_CAN_USE_NUKE, @@ -205,11 +208,12 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_CLOWN_ENJOYER" = TRAIT_CLOWN_ENJOYER, "TRAIT_CLUMSY" = TRAIT_CLUMSY, "TRAIT_COAGULATING" = TRAIT_COAGULATING, - "TRAIT_CORPSELOCKED" = TRAIT_CORPSELOCKED, "TRAIT_COMBAT_MODE_LOCK" = TRAIT_COMBAT_MODE_LOCK, + "TRAIT_CORPSELOCKED" = TRAIT_CORPSELOCKED, "TRAIT_CRITICAL_CONDITION" = TRAIT_CRITICAL_CONDITION, "TRAIT_CULT_HALO" = TRAIT_CULT_HALO, "TRAIT_CURSED" = TRAIT_CURSED, + "TRAIT_DAZED" = TRAIT_DAZED, "TRAIT_DEAF" = TRAIT_DEAF, "TRAIT_DEATHCOMA" = TRAIT_DEATHCOMA, "TRAIT_DEFIB_BLACKLISTED" = TRAIT_DEFIB_BLACKLISTED, @@ -217,7 +221,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_DETECTIVES_TASTE" = TRAIT_DETECTIVES_TASTE, "TRAIT_DETECT_STORM" = TRAIT_DETECT_STORM, "TRAIT_DIAGNOSTIC_HUD" = TRAIT_DIAGNOSTIC_HUD, - "TRAIT_BOT_PATH_HUD" = TRAIT_BOT_PATH_HUD, "TRAIT_DISCOORDINATED_TOOL_USER" = TRAIT_DISCOORDINATED_TOOL_USER, "TRAIT_DISEASELIKE_SEVERITY_MEDIUM" = TRAIT_DISEASELIKE_SEVERITY_MEDIUM, "TRAIT_DISFIGURED" = TRAIT_DISFIGURED, @@ -238,6 +241,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_EASYDISMEMBER" = TRAIT_EASYDISMEMBER, "TRAIT_ECHOLOCATION_EXTRA_RANGE" = TRAIT_ECHOLOCATION_EXTRA_RANGE, "TRAIT_ECHOLOCATION_RECEIVER" = TRAIT_ECHOLOCATION_RECEIVER, + "TRAIT_ELDRITCH_ARENA_PARTICIPANT" = TRAIT_ELDRITCH_ARENA_PARTICIPANT, "TRAIT_ELDRITCH_PAINTING_EXAMINE" = TRAIT_ELDRITCH_PAINTING_EXAMINE, "TRAIT_ELITE_CHALLENGER" = TRAIT_ELITE_CHALLENGER, "TRAIT_EMOTEMUTE" = TRAIT_EMOTEMUTE, @@ -340,7 +344,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_MAGICALLY_PHASED" = TRAIT_MAGICALLY_PHASED, "TRAIT_MARTIAL_ARTS_IMMUNE" = TRAIT_MARTIAL_ARTS_IMMUNE, "TRAIT_MANSUS_TOUCHED" = TRAIT_MANSUS_TOUCHED, - "TRAIT_MEDIBOTCOMINGTHROUGH" = TRAIT_MEDIBOTCOMINGTHROUGH, "TRAIT_MEDICAL_HUD" = TRAIT_MEDICAL_HUD, "TRAIT_MESON_VISION" = TRAIT_MESON_VISION, "TRAIT_MIME_FAN" = TRAIT_MIME_FAN, @@ -418,7 +421,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_NUKEIMMUNE" = TRAIT_NUKEIMMUNE, "TRAIT_OFF_BALANCE_TACKLER" = TRAIT_OFF_BALANCE_TACKLER, "TRAIT_OIL_FRIED" = TRAIT_OIL_FRIED, - "TRAIT_ON_ELEVATED_SURFACE" = TRAIT_ON_ELEVATED_SURFACE, "TRAIT_ORBITING_FORBIDDEN" = TRAIT_ORBITING_FORBIDDEN, "TRAIT_OVERDOSEIMMUNE" = TRAIT_OVERDOSEIMMUNE, "TRAIT_OVERWATCHED" = TRAIT_OVERWATCHED, @@ -517,7 +519,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_STRONG_STOMACH" = TRAIT_STRONG_STOMACH, "TRAIT_STUBBY_BODY" = TRAIT_STUBBY_BODY, "TRAIT_STUNIMMUNE" = TRAIT_STUNIMMUNE, - "TRAIT_STUN_ON_NEXT_SHOVE" = TRAIT_STUN_ON_NEXT_SHOVE, "TRAIT_STURDY_FRAME" = TRAIT_STURDY_FRAME, "TRAIT_SUCCUMB_OVERRIDE" = TRAIT_SUCCUMB_OVERRIDE, "TRAIT_SUICIDED" = TRAIT_SUICIDED, @@ -606,6 +607,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_CONTRABAND_BLOCKER" = TRAIT_CONTRABAND_BLOCKER, "TRAIT_CUSTOM_TAP_SOUND" = TRAIT_CUSTOM_TAP_SOUND, "TRAIT_DANGEROUS_OBJECT" = TRAIT_DANGEROUS_OBJECT, + "TRAIT_EXAMINE_SKIP" = TRAIT_EXAMINE_SKIP, "TRAIT_FIREDOOR_OPENER" = TRAIT_FIREDOOR_OPENER, "TRAIT_FISHING_BAIT" = TRAIT_FISHING_BAIT, "TRAIT_FOOD_BBQ_GRILLED" = TRAIT_FOOD_BBQ_GRILLED, @@ -623,6 +625,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_NO_TELEPORT" = TRAIT_NO_TELEPORT, "TRAIT_NO_SIDE_KICK" = TRAIT_NO_SIDE_KICK, "TRAIT_NODROP" = TRAIT_NODROP, + "TRAIT_NO_WORN_ICON" = TRAIT_NO_WORN_ICON, "TRAIT_OMNI_BAIT" = TRAIT_OMNI_BAIT, "TRAIT_PLANT_WILDMUTATE" = TRAIT_PLANT_WILDMUTATE, "TRAIT_POISONOUS_BAIT" = TRAIT_POISONOUS_BAIT, @@ -680,6 +683,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_RESIST_PSYCHIC" = TRAIT_RESIST_PSYCHIC, "TRAIT_FISH_WELL_COOKED" = TRAIT_FISH_WELL_COOKED, "TRAIT_YUCKY_FISH" = TRAIT_YUCKY_FISH, + "TRAIT_NO_FISHING_ACHIEVEMENT" = TRAIT_NO_FISHING_ACHIEVEMENT, ), /obj/item/fishing_rod = list( "TRAIT_ROD_ATTRACT_SHINY_LOVERS" = TRAIT_ROD_ATTRACT_SHINY_LOVERS, diff --git a/code/_globalvars/traits/admin_tooling.dm b/code/_globalvars/traits/admin_tooling.dm index 1a7fa55e21e66..093ed55b5c8c1 100644 --- a/code/_globalvars/traits/admin_tooling.dm +++ b/code/_globalvars/traits/admin_tooling.dm @@ -75,6 +75,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_CORPSELOCKED" = TRAIT_CORPSELOCKED, "TRAIT_CRITICAL_CONDITION" = TRAIT_CRITICAL_CONDITION, "TRAIT_CULT_HALO" = TRAIT_CULT_HALO, + "TRAIT_DAZED" = TRAIT_DAZED, "TRAIT_DEAF" = TRAIT_DEAF, "TRAIT_DEATHCOMA" = TRAIT_DEATHCOMA, "TRAIT_DEFIB_BLACKLISTED" = TRAIT_DEFIB_BLACKLISTED, @@ -298,7 +299,6 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_TOO_TALL" = TRAIT_TOO_TALL, "TRAIT_TOXIMMUNE" = TRAIT_TOXIMMUNE, "TRAIT_TOXINLOVER" = TRAIT_TOXINLOVER, - "TRAIT_MEDIBOTCOMINGTHROUGH" = TRAIT_MEDIBOTCOMINGTHROUGH, "TRAIT_TUMOR_SUPPRESSION" = TRAIT_TUMOR_SUPPRESSED, "TRAIT_UI_BLOCKED" = TRAIT_UI_BLOCKED, "TRAIT_UNCONVERTABLE" = TRAIT_UNCONVERTABLE, diff --git a/code/_onclick/hud/rendering/plane_master_group.dm b/code/_onclick/hud/rendering/plane_master_group.dm index 52d56cfad63b9..27efc2a995e3d 100644 --- a/code/_onclick/hud/rendering/plane_master_group.dm +++ b/code/_onclick/hud/rendering/plane_master_group.dm @@ -196,19 +196,16 @@ /// If you wanna try someday feel free, but I can't manage it /datum/plane_master_group/popup -/// This is janky as hell but since something changed with CENTER positioning after build 1614 we have to switch to the bandaid LEFT,TOP positioning -/// using LEFT,TOP *at* or *before* 1614 will result in another broken offset for cameras -#define MAX_CLIENT_BUILD_WITH_WORKING_SECONDARY_MAPS 1614 - +/// Note do not use return ..() because it will cause client crush when screen gets deleted +/// TOOD: Remove this entirely when 516 is stable /datum/plane_master_group/popup/attach_to(datum/hud/viewing_hud) - // If we're about to display this group to a mob who's client is more recent than the last known version with working CENTER, then we need to remake the relays - // with the correct screen_loc using the relay override - if(viewing_hud.mymob?.client?.byond_build > MAX_CLIENT_BUILD_WITH_WORKING_SECONDARY_MAPS) - relay_loc = "LEFT,TOP" - rebuild_plane_masters() - return ..() - -#undef MAX_CLIENT_BUILD_WITH_WORKING_SECONDARY_MAPS + if(viewing_hud.master_groups[key]) + stack_trace("[key] is already in use by a plane master group on the passed in hud, belonging to [viewing_hud.mymob]!") + return + relay_loc = "1,1" + rebuild_plane_masters() + set_hud(viewing_hud) + show_hud() /datum/plane_master_group/popup/build_planes_offset(datum/hud/source, new_offset, use_scale = TRUE) return ..(source, new_offset, FALSE) diff --git a/code/controllers/admin.dm b/code/controllers/admin.dm index 5056e3804ef11..d96b362847c51 100644 --- a/code/controllers/admin.dm +++ b/code/controllers/admin.dm @@ -59,11 +59,12 @@ ADMIN_VERB(debug_controller, R_DEBUG, "Debug Controller", "Debug the various per var/list/controllers = list() var/list/controller_choices = list() - for (var/datum/controller/controller in world) - if (istype(controller, /datum/controller/subsystem)) + for (var/var_key in global.vars) + var/datum/controller/controller = global.vars[var_key] + if(!istype(controller) || istype(controller, /datum/controller/subsystem)) continue - controllers["[controller] (controller.type)"] = controller //we use an associated list to ensure clients can't hold references to controllers - controller_choices += "[controller] (controller.type)" + controllers[controller.name] = controller //we use an associated list to ensure clients can't hold references to controllers + controller_choices += controller.name var/datum/controller/controller_string = input("Select controller to debug", "Debug Controller") as null|anything in controller_choices var/datum/controller/controller = controllers[controller_string] diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index fd121537846b6..a81bc480f9760 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -73,11 +73,6 @@ integer = FALSE min_val = 0.01 -/// Determines how many potential objectives a traitor can have. -/datum/config_entry/number/maximum_potential_objectives - default = 6 - min_val = 1 - /datum/config_entry/number/changeling_scaling_coeff //how much does the amount of players get divided by to determine changelings default = 6 integer = FALSE diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index c954d4538508b..74114790fe8e8 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -310,6 +310,8 @@ /datum/config_entry/string/server +/datum/config_entry/string/public_address + /datum/config_entry/string/banappeals /datum/config_entry/string/wikiurl @@ -575,24 +577,24 @@ integer = FALSE /datum/config_entry/flag/irc_announce_new_game - deprecated_by = /datum/config_entry/string/channel_announce_new_game + deprecated_by = /datum/config_entry/str_list/channel_announce_new_game /datum/config_entry/flag/irc_announce_new_game/DeprecationUpdate(value) return "" //default broadcast /datum/config_entry/string/chat_announce_new_game - deprecated_by = /datum/config_entry/string/channel_announce_new_game + deprecated_by = /datum/config_entry/str_list/channel_announce_new_game /datum/config_entry/string/chat_announce_new_game/DeprecationUpdate(value) return "" //default broadcast -/datum/config_entry/string/channel_announce_new_game +/datum/config_entry/str_list/channel_announce_new_game default = null -/datum/config_entry/string/channel_announce_end_game +/datum/config_entry/str_list/channel_announce_end_game default = null -/datum/config_entry/string/chat_new_game_notifications +/datum/config_entry/str_list/chat_new_game_notifications default = null /// validate ownership of admin flags for chat commands diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm index 8332d9b113393..34e71209f1983 100644 --- a/code/controllers/subsystem/air.dm +++ b/code/controllers/subsystem/air.dm @@ -840,7 +840,7 @@ GLOBAL_LIST_EMPTY(colored_images) currentrun -= machine /datum/controller/subsystem/air/ui_state(mob/user) - return GLOB.debug_state + return ADMIN_STATE(R_DEBUG) /datum/controller/subsystem/air/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) diff --git a/code/controllers/subsystem/ambience.dm b/code/controllers/subsystem/ambience.dm index 80e15349212b7..b8d2f56cfc89d 100644 --- a/code/controllers/subsystem/ambience.dm +++ b/code/controllers/subsystem/ambience.dm @@ -55,7 +55,7 @@ SUBSYSTEM_DEF(ambience) /area/proc/play_ambience(mob/M, sound/override_sound, volume = 27) var/sound/new_sound = override_sound || pick(ambientsounds) /// volume modifier for ambience as set by the player in preferences. - var/volume_modifier = (M.client?.prefs.read_preference(/datum/preference/numeric/sound_ambience_volume))/100 + var/volume_modifier = (M.client?.prefs.read_preference(/datum/preference/numeric/volume/sound_ambience_volume))/100 new_sound = sound(new_sound, repeat = 0, wait = 0, volume = volume*volume_modifier, channel = CHANNEL_AMBIENCE) SEND_SOUND(M, new_sound) @@ -114,9 +114,9 @@ SUBSYSTEM_DEF(ambience) var/area/my_area = get_area(src) var/sound_to_use = my_area.ambient_buzz - var/volume_modifier = client.prefs.read_preference(/datum/preference/numeric/sound_ship_ambience_volume) + var/volume_modifier = client.prefs.read_preference(/datum/preference/numeric/volume/sound_ship_ambience_volume) - if(!sound_to_use || !(client.prefs.read_preference(/datum/preference/numeric/sound_ship_ambience_volume))) + if(!sound_to_use || !(client.prefs.read_preference(/datum/preference/numeric/volume/sound_ship_ambience_volume))) SEND_SOUND(src, sound(null, repeat = 0, volume = volume_modifier, wait = 0, channel = CHANNEL_BUZZ)) client.current_ambient_sound = null return diff --git a/code/controllers/subsystem/discord.dm b/code/controllers/subsystem/discord.dm index 5fd1db1fd074d..be9f066cf83c1 100644 --- a/code/controllers/subsystem/discord.dm +++ b/code/controllers/subsystem/discord.dm @@ -69,7 +69,9 @@ SUBSYSTEM_DEF(discord) var/notifymsg = jointext(people_to_notify, ", ") if(notifymsg) notifymsg += ", a new round is starting!" - send2chat(new /datum/tgs_message_content(trim(notifymsg)), CONFIG_GET(string/chat_new_game_notifications)) // Sends the message to the discord, using same config option as the roundstart notification + for(var/channel_tag in CONFIG_GET(str_list/chat_new_game_notifications)) + // Sends the message to the discord, using same config option as the roundstart notification + send2chat(new /datum/tgs_message_content(trim(notifymsg)), channel_tag) fdel(notify_file) // Deletes the file return SS_INIT_SUCCESS diff --git a/code/controllers/subsystem/dynamic/dynamic_rulesets_latejoin.dm b/code/controllers/subsystem/dynamic/dynamic_rulesets_latejoin.dm index b204b62e965aa..100724946886f 100644 --- a/code/controllers/subsystem/dynamic/dynamic_rulesets_latejoin.dm +++ b/code/controllers/subsystem/dynamic/dynamic_rulesets_latejoin.dm @@ -52,7 +52,7 @@ /datum/dynamic_ruleset/latejoin/infiltrator name = "Syndicate Infiltrator" - antag_datum = /datum/antagonist/traitor/infiltrator + antag_datum = /datum/antagonist/traitor antag_flag = ROLE_SYNDICATE_INFILTRATOR antag_flag_override = ROLE_TRAITOR protected_roles = list( diff --git a/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm b/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm index 7d983a8813657..f9ea045820fb2 100644 --- a/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm +++ b/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm @@ -230,7 +230,7 @@ /datum/dynamic_ruleset/midround/from_living/autotraitor name = "Syndicate Sleeper Agent" midround_ruleset_style = MIDROUND_RULESET_STYLE_LIGHT - antag_datum = /datum/antagonist/traitor/infiltrator/sleeper_agent + antag_datum = /datum/antagonist/traitor antag_flag = ROLE_SLEEPER_AGENT antag_flag_override = ROLE_TRAITOR protected_roles = list( @@ -268,7 +268,7 @@ var/mob/M = pick(candidates) assigned += M candidates -= M - var/datum/antagonist/traitor/infiltrator/sleeper_agent/newTraitor = new + var/datum/antagonist/traitor/newTraitor = new M.mind.add_antag_datum(newTraitor) message_admins("[ADMIN_LOOKUPFLW(M)] was selected by the [name] ruleset and has been made into a midround traitor.") log_dynamic("[key_name(M)] was selected by the [name] ruleset and has been made into a midround traitor.") diff --git a/code/controllers/subsystem/economy.dm b/code/controllers/subsystem/economy.dm index 823c6287033ba..25876fd80c6a3 100644 --- a/code/controllers/subsystem/economy.dm +++ b/code/controllers/subsystem/economy.dm @@ -183,9 +183,10 @@ SUBSYSTEM_DEF(economy) continue if(!moneybags || moneybags.account_balance < current_acc.account_balance) moneybags = current_acc - earning_report += "Our GMM Spotlight would like to alert you that [moneybags.account_holder] is your station's most affulent crewmate! They've hit it big with [moneybags.account_balance] credits saved. " - update_alerts = TRUE - inflict_moneybags(moneybags) + if (moneybags) + earning_report += "Our GMM Spotlight would like to alert you that [moneybags.account_holder] is your station's most affulent crewmate! They've hit it big with [moneybags.account_balance] credits saved. " + update_alerts = TRUE + inflict_moneybags(moneybags) earning_report += "That's all from the Nanotrasen Economist Division." GLOB.news_network.submit_article(earning_report, "Station Earnings Report", "Station Announcements", null, update_alert = update_alerts) return TRUE diff --git a/code/controllers/subsystem/explosions.dm b/code/controllers/subsystem/explosions.dm index 2b61cabb86074..36dbba09eae01 100644 --- a/code/controllers/subsystem/explosions.dm +++ b/code/controllers/subsystem/explosions.dm @@ -635,23 +635,27 @@ ADMIN_VERB(check_bomb_impacts, R_DEBUG, "Check Bomb Impact", "See what the effec // top left to one before top right if(highest_y <= max_y) candidates += block( - locate(max(lowest_x, 1), highest_y, our_z), - locate(min(highest_x - 1, max_x), highest_y, our_z)) + lowest_x, highest_y, our_z, + highest_x - 1, highest_y, our_z + ) // top right to one before bottom right if(highest_x <= max_x) candidates += block( - locate(highest_x, min(highest_y, max_y), our_z), - locate(highest_x, max(lowest_y + 1, 1), our_z)) + highest_x, highest_y, our_z, + highest_x, lowest_y + 1, our_z + ) // bottom right to one before bottom left if(lowest_y >= 1) candidates += block( - locate(min(highest_x, max_x), lowest_y, our_z), - locate(max(lowest_x + 1, 1), lowest_y, our_z)) + highest_x, lowest_y, our_z, + lowest_x + 1, lowest_y, our_z + ) // bottom left to one before top left if(lowest_x >= 1) candidates += block( - locate(lowest_x, max(lowest_y, 1), our_z), - locate(lowest_x, min(highest_y - 1, max_y), our_z)) + lowest_x, lowest_y, our_z, + lowest_x, highest_y - 1, our_z + ) if(!do_directional) outlist += candidates diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index ad1b9e4132fed..b9c8a08ca751e 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -346,7 +346,9 @@ SUBSYSTEM_DEF(garbage) /// Datums passed to this will be given a chance to clean up references to allow the GC to collect them. /proc/qdel(datum/to_delete, force = FALSE) if(!istype(to_delete)) +#ifndef DISABLE_DREAMLUAU DREAMLUAU_CLEAR_REF_USERDATA(to_delete) +#endif del(to_delete) return diff --git a/code/controllers/subsystem/id_access.dm b/code/controllers/subsystem/id_access.dm index 35b543b2c6d34..1a94a13389d8c 100644 --- a/code/controllers/subsystem/id_access.dm +++ b/code/controllers/subsystem/id_access.dm @@ -433,14 +433,14 @@ SUBSYSTEM_DEF(id_access) id_card.update_icon() /** - * Applies a trim to a chameleon card. This is purely visual, utilising the card's override vars. + * Applies a trim to a card. This is purely visual, utilising the card's override vars. * * Arguments: - * * id_card - The chameleon card to apply the trim visuals to. -* * trim_path - A trim path to apply to the card. Grabs the trim's associated singleton and applies it. + * * id_card - The card to apply the trim visuals to. + * * trim_path - A trim path to apply to the card. Grabs the trim's associated singleton and applies it. * * check_forged - Boolean value. If TRUE, will not overwrite the card's assignment if the card has been forged. */ -/datum/controller/subsystem/id_access/proc/apply_trim_to_chameleon_card(obj/item/card/id/advanced/chameleon/id_card, trim_path, check_forged = TRUE) +/datum/controller/subsystem/id_access/proc/apply_trim_override(obj/item/card/id/advanced/id_card, trim_path, check_forged = TRUE) var/datum/id_trim/trim = trim_singletons_by_path[trim_path] id_card.trim_icon_override = trim.trim_icon id_card.trim_state_override = trim.trim_state @@ -452,22 +452,21 @@ SUBSYSTEM_DEF(id_access) id_card.big_pointer = trim.big_pointer id_card.pointer_color = trim.pointer_color - if (!check_forged || !id_card.forged) - id_card.assignment = trim.assignment + var/obj/item/card/id/advanced/chameleon/cham_id = id_card + if (istype(cham_id) && (!check_forged || !cham_id.forged)) + cham_id.assignment = trim.assignment if (ishuman(id_card.loc)) var/mob/living/carbon/human/owner = id_card.loc owner.sec_hud_set_ID() - // We'll let the chameleon action update the card's label as necessary instead of doing it here. - /** - * Removes a trim from a chameleon ID card. + * Removes a trim from a ID card. * * Arguments: * * id_card - The ID card to remove the trim from. */ -/datum/controller/subsystem/id_access/proc/remove_trim_from_chameleon_card(obj/item/card/id/advanced/chameleon/id_card) +/datum/controller/subsystem/id_access/proc/remove_trim_override(obj/item/card/id/advanced/id_card) id_card.trim_icon_override = null id_card.trim_state_override = null id_card.trim_assignment_override = null diff --git a/code/controllers/subsystem/lua.dm b/code/controllers/subsystem/lua.dm index 99df8cf335490..2d199ccd3dcc3 100644 --- a/code/controllers/subsystem/lua.dm +++ b/code/controllers/subsystem/lua.dm @@ -1,3 +1,4 @@ +#ifndef DISABLE_DREAMLUAU SUBSYSTEM_DEF(lua) name = "Lua Scripting" runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT @@ -156,3 +157,4 @@ SUBSYSTEM_DEF(lua) continue state.log_result(json_data) return +#endif diff --git a/code/controllers/subsystem/map_vote.dm b/code/controllers/subsystem/map_vote.dm index f57d73d773e63..6b0495613eabe 100644 --- a/code/controllers/subsystem/map_vote.dm +++ b/code/controllers/subsystem/map_vote.dm @@ -19,6 +19,9 @@ SUBSYSTEM_DEF(map_vote) /// Stores the previous map vote cache, used when a map vote is reverted. var/list/previous_cache + /// Stores the last amount of potential players to compare next time we're called + var/player_cache = -1 + /// Stores a formatted html string of the tally counts var/tally_printout = span_red("Loading...") @@ -53,7 +56,7 @@ SUBSYSTEM_DEF(map_vote) last_message_at = world.time var/list/messages = args.Copy() - to_chat(world, span_purple(boxed_message("Map Vote\n
[messages.Join("\n")]"))) + to_chat(world, span_purple(boxed_message("Map Vote

[jointext(messages, "
")]"))) /datum/controller/subsystem/map_vote/proc/finalize_map_vote(datum/vote/map_vote/map_vote) if(already_voted) @@ -104,29 +107,28 @@ SUBSYSTEM_DEF(map_vote) /// Returns a list of all map options that are invalid for the current population. /datum/controller/subsystem/map_vote/proc/get_valid_map_vote_choices() - var/list/valid_maps = list() - - // Fill in our default choices with all of the maps in our map config, if they are votable and not blocked. - var/list/maps = shuffle(global.config.maplist) - for(var/map in maps) - var/datum/map_config/possible_config = config.maplist[map] - if(!possible_config.votable || (possible_config.map_name in SSpersistence.blocked_maps)) - continue - valid_maps += possible_config.map_name - var/filter_threshold = 0 if(SSticker.HasRoundStarted()) filter_threshold = get_active_player_count(alive_check = FALSE, afk_check = TRUE, human_check = FALSE) else filter_threshold = length(GLOB.clients) - for(var/map in valid_maps) + if(filter_threshold == player_cache) + return null + + player_cache = filter_threshold + var/list/valid_maps = list() + // Fill in our default choices with all of the maps in our map config, if they are votable and not blocked. + var/list/maps = shuffle(global.config.maplist) + for(var/map in maps) var/datum/map_config/possible_config = config.maplist[map] + if(!possible_config.votable || (possible_config.map_name in SSpersistence.blocked_maps)) + continue if(possible_config.config_min_users > 0 && filter_threshold < possible_config.config_min_users) - valid_maps -= map - - else if(possible_config.config_max_users > 0 && filter_threshold > possible_config.config_max_users) - valid_maps -= map + continue + if(possible_config.config_max_users > 0 && filter_threshold > possible_config.config_max_users) + continue + valid_maps += possible_config.map_name return valid_maps @@ -152,7 +154,7 @@ SUBSYSTEM_DEF(map_vote) next_map_config = change_to return TRUE -/datum/controller/subsystem/map_vote/proc/revert_next_map() +/datum/controller/subsystem/map_vote/proc/revert_next_map(client/user) if(!next_map_config) return if(previous_cache) @@ -161,6 +163,11 @@ SUBSYSTEM_DEF(map_vote) already_voted = FALSE admin_override = FALSE + next_map_config = null + + if(!isnull(user)) + message_admins("[key_name_admin(user)] has reverted the next map selection. Voting re-enabled.") + log_admin("[key_name_admin(user)] reverted the next map selection.") send_map_vote_notice("Next map reverted. Voting re-enabled.") #undef MAP_VOTE_CACHE_LOCATION @@ -170,4 +177,7 @@ SUBSYSTEM_DEF(map_vote) for(var/map_id in map_vote_cache) var/datum/map_config/map = config.maplist[map_id] data += "[map.map_name] - [map_vote_cache[map_id]]" - tally_printout = boxed_message("Current Tallies\n
[data.Join("\n")]") + var/tally_msg = span_tooltip("A map's tallies are reset after it wins a vote. \ + Otherwise, they are carried over and added onto from the next vote on the next round, \ + until it eventually wins and is reset.", "Current Tallies") + tally_printout = boxed_message("[tally_msg]

[jointext(data, "
")]") diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 27bb029be150c..b4184f8a34d6c 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -645,10 +645,11 @@ ADMIN_VERB(load_away_mission, R_FUN, "Load Away Mission", "Load a specific away if(!level_trait(z,ZTRAIT_RESERVED)) clearing_reserved_turfs = FALSE CRASH("Invalid z level prepared for reservations.") - 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/turf/T as anything in block) + var/list/reserved_block = block( + SHUTTLE_TRANSIT_BORDER, SHUTTLE_TRANSIT_BORDER, z, + world.maxx - SHUTTLE_TRANSIT_BORDER, world.maxy - SHUTTLE_TRANSIT_BORDER, z + ) + for(var/turf/T as anything in reserved_block) // No need to empty() these, because they just got created and are already /turf/open/space/basic. T.turf_flags = UNUSED_RESERVATION_TURF T.blocks_air = TRUE @@ -658,7 +659,7 @@ ADMIN_VERB(load_away_mission, R_FUN, "Load Away Mission", "Load a specific away if(SSatoms.initialized) SSatoms.InitializeAtoms(Z_TURFS(z)) - unused_turfs["[z]"] = block + unused_turfs["[z]"] = reserved_block reservation_ready["[z]"] = TRUE clearing_reserved_turfs = FALSE diff --git a/code/controllers/subsystem/modular_computers.dm b/code/controllers/subsystem/modular_computers.dm index fc89881d45a9f..eb25e0c97aeec 100644 --- a/code/controllers/subsystem/modular_computers.dm +++ b/code/controllers/subsystem/modular_computers.dm @@ -41,9 +41,9 @@ SUBSYSTEM_DEF(modular_computers) ///Generate new coupon codes that can be redeemed with the Coupon Master App /datum/controller/subsystem/modular_computers/proc/announce_coupon() //If there's no way to announce the coupon, we may as well skip it. - if(!length(GLOB.announcement_systems)) + var/obj/machinery/announcement_system/announcement_system = get_announcement_system() + if(!announcement_system) return - var/obj/machinery/announcement_system/announcement_system = pick(GLOB.announcement_systems) var/static/list/discounts = list("0.10" = 7, "0.15" = 16, "0.20" = 20, "0.25" = 16, "0.50" = 8, "0.66" = 1) var/static/list/flash_discounts = list("0.30" = 3, "0.40" = 8, "0.50" = 8, "0.66" = 2, "0.75" = 1) diff --git a/code/controllers/subsystem/overlays.dm b/code/controllers/subsystem/overlays.dm index fda892be7a432..96041edd4237a 100644 --- a/code/controllers/subsystem/overlays.dm +++ b/code/controllers/subsystem/overlays.dm @@ -47,8 +47,7 @@ SUBSYSTEM_DEF(overlays) if (istext(overlay)) // This is too expensive to run normally but running it during CI is a good test if (PERFORM_ALL_TESTS(focus_only/invalid_overlays)) - var/list/icon_states_available = icon_states(icon) - if(!(overlay in icon_states_available)) + if(!icon_exists(icon, overlay)) var/icon_file = "[icon]" || "Unknown Generated Icon" stack_trace("Invalid overlay: Icon object '[icon_file]' [REF(icon)] used in '[src]' [type] is missing icon state [overlay].") continue diff --git a/code/controllers/subsystem/polling.dm b/code/controllers/subsystem/polling.dm index a68ff090a8d91..3b961d8a02cc9 100644 --- a/code/controllers/subsystem/polling.dm +++ b/code/controllers/subsystem/polling.dm @@ -155,7 +155,7 @@ SUBSYSTEM_DEF(polling) act_never = "[custom_link_style_start]\[Never For This Round\]" if(!duplicate_message_check(alert_poll)) //Only notify people once. They'll notice if there are multiple and we don't want to spam people. - SEND_SOUND(candidate_mob, sound('sound/misc/prompt.ogg', volume = 70)) + SEND_SOUND(candidate_mob, sound('sound/misc/prompt.ogg', volume = 50)) var/surrounding_icon if(chat_text_border_icon) var/image/surrounding_image diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index ff19d6d4b265a..71d9ed0189e19 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -978,7 +978,7 @@ SUBSYSTEM_DEF(shuttle) QDEL_NULL(preview_reservation) /datum/controller/subsystem/shuttle/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_ADMIN) /datum/controller/subsystem/shuttle/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm index da403db9e4559..7425dc65efeee 100644 --- a/code/controllers/subsystem/throwing.dm +++ b/code/controllers/subsystem/throwing.dm @@ -89,6 +89,8 @@ SUBSYSTEM_DEF(throwing) var/delayed_time = 0 ///The last world.time value stored when the thrownthing was moving. var/last_move = 0 + /// If our thrownthing has been blocked + var/blocked = FALSE /datum/thrownthing/New(thrownthing, target, init_dir, maxrange, speed, thrower, diagonals_first, force, gentle, callback, target_zone) . = ..() diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 96cde0ef0dded..e08cddbb9d2f3 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -160,7 +160,8 @@ SUBSYSTEM_DEF(ticker) for(var/client/C in GLOB.clients) window_flash(C, ignorepref = TRUE) //let them know lobby has opened up. to_chat(world, span_notice("Welcome to [station_name()]!")) - send2chat(new /datum/tgs_message_content("New round starting on [SSmapping.current_map.map_name]!"), CONFIG_GET(string/channel_announce_new_game)) + for(var/channel_tag in CONFIG_GET(str_list/channel_announce_new_game)) + send2chat(new /datum/tgs_message_content("New round starting on [SSmapping.current_map.map_name]!"), channel_tag) current_state = GAME_STATE_PREGAME SEND_SIGNAL(src, COMSIG_TICKER_ENTER_PREGAME) @@ -731,11 +732,10 @@ SUBSYSTEM_DEF(ticker) gather_newscaster() //called here so we ensure the log is created even upon admin reboot if(!round_end_sound) round_end_sound = choose_round_end_song() - ///The reference to the end of round sound that we have chosen. - var/sound/end_of_round_sound_ref = sound(round_end_sound) for(var/mob/M in GLOB.player_list) - if(M.client.prefs.read_preference(/datum/preference/toggle/sound_endofround)) - SEND_SOUND(M.client, end_of_round_sound_ref) + var/pref_volume = M.client.prefs.read_preference(/datum/preference/numeric/volume/sound_midi) + if(pref_volume > 0) + SEND_SOUND(M.client, sound(round_end_sound, volume = pref_volume)) text2file(login_music, "data/last_round_lobby_music.txt") diff --git a/code/controllers/subsystem/traitor.dm b/code/controllers/subsystem/traitor.dm index 6ad6fca089391..53cf90ecbd0b3 100644 --- a/code/controllers/subsystem/traitor.dm +++ b/code/controllers/subsystem/traitor.dm @@ -9,15 +9,6 @@ SUBSYSTEM_DEF(traitor) /// A list of all uplink items var/list/uplink_items = list() - /// File to load configurations from. - var/configuration_path = "config/traitor_objective.json" - /// Global configuration data that gets applied to each objective when it is created. - /// Basic objective format - /// '/datum/traitor_objective/path/to/objective': { - /// "global_progression_influence_intensity": 0 - /// } - var/configuration_data = list() - /// The coefficient multiplied by the current_global_progression for new joining traitors to calculate their progression var/newjoin_progression_coeff = 1 /// The current progression that all traitors should be at in the round @@ -29,31 +20,10 @@ SUBSYSTEM_DEF(traitor) var/list/datum/uplink_handler/uplink_handlers = list() /// The current scaling per minute of progression. Has a maximum value of 1 MINUTES. var/current_progression_scaling = 1 MINUTES - /// Used to handle the probability of getting an objective. - var/datum/traitor_category_handler/category_handler - /// The current debug handler for objectives. Used for debugging objectives - var/datum/traitor_objective_debug/traitor_debug_panel - /// Used by the debug menu, decides whether newly created objectives should generate progression and telecrystals. Do not modify for non-debug purposes. - var/generate_objectives = TRUE - /// Objectives that have been completed by type. Used for limiting objectives. - var/list/taken_objectives_by_type = list() - /// A list of all existing objectives by type - var/list/all_objectives_by_type = list() /datum/controller/subsystem/traitor/Initialize() - category_handler = new() - traitor_debug_panel = new(category_handler) - for(var/theft_item in subtypesof(/datum/objective_item/steal)) new theft_item - - if(fexists(configuration_path)) - var/list/data = json_decode(file2text(file(configuration_path))) - for(var/typepath in data) - var/actual_typepath = text2path(typepath) - if(!actual_typepath) - log_world("[configuration_path] has an invalid type ([typepath]) that doesn't exist in the codebase! Please correct or remove [typepath]") - configuration_data[actual_typepath] = data[typepath] return SS_INIT_SUCCESS /datum/controller/subsystem/traitor/fire(resumed) @@ -83,7 +53,6 @@ SUBSYSTEM_DEF(traitor) var/amount_to_give = progression_scaling_delta + (progression_scaling_delta * deviance) amount_to_give = clamp(amount_to_give, 0, progression_scaling_delta * 2) handler.progression_points += amount_to_give - handler.update_objectives() handler.on_update() /datum/controller/subsystem/traitor/proc/register_uplink_handler(datum/uplink_handler/uplink_handler) @@ -97,22 +66,3 @@ SUBSYSTEM_DEF(traitor) /datum/controller/subsystem/traitor/proc/uplink_handler_deleted(datum/uplink_handler/uplink_handler) SIGNAL_HANDLER uplink_handlers -= uplink_handler - -/datum/controller/subsystem/traitor/proc/on_objective_taken(datum/traitor_objective/objective) - if(!istype(objective)) - return - - add_objective_to_list(objective, taken_objectives_by_type) - -/datum/controller/subsystem/traitor/proc/get_taken_count(datum/traitor_objective/objective_type) - return length(taken_objectives_by_type[objective_type]) - - -/datum/controller/subsystem/traitor/proc/add_objective_to_list(datum/traitor_objective/objective, list/objective_list) - var/datum/traitor_objective/current_type = objective.type - while(current_type != /datum/traitor_objective) - if(!objective_list[current_type]) - objective_list[current_type] = list(objective) - else - objective_list[current_type] += objective - current_type = type2parent(current_type) diff --git a/code/controllers/subsystem/tts.dm b/code/controllers/subsystem/tts.dm index 112dab4a6d3f8..6ad2a2481ccbf 100644 --- a/code/controllers/subsystem/tts.dm +++ b/code/controllers/subsystem/tts.dm @@ -116,7 +116,7 @@ SUBSYSTEM_DEF(tts) stack_trace("TTS tried to play a sound to a deleted mob.") continue /// volume modifier for TTS as set by the player in preferences. - var/volume_modifier = listening_mob.client?.prefs.read_preference(/datum/preference/numeric/sound_tts_volume)/100 + var/volume_modifier = listening_mob.client?.prefs.read_preference(/datum/preference/numeric/volume/sound_tts_volume)/100 var/tts_pref = listening_mob.client?.prefs.read_preference(/datum/preference/choiced/sound_tts) if(volume_modifier == 0 || (tts_pref == TTS_SOUND_OFF)) continue diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index d9d796782c2b2..5f2134acb0ae9 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -242,8 +242,7 @@ SUBSYSTEM_DEF(vote) new_voter.player_details.player_actions += voting_action generated_actions += voting_action - - if(current_vote.vote_sound && (new_voter.prefs.read_preference(/datum/preference/toggle/sound_announcements))) + if(current_vote.vote_sound && new_voter.prefs.read_preference(/datum/preference/toggle/sound_announcements)) SEND_SOUND(new_voter, sound(current_vote.vote_sound)) return TRUE diff --git a/code/datums/ai/basic_mobs/admin_ai_templates.dm b/code/datums/ai/basic_mobs/admin_ai_templates.dm new file mode 100644 index 0000000000000..a7f23dd67d810 --- /dev/null +++ b/code/datums/ai/basic_mobs/admin_ai_templates.dm @@ -0,0 +1,453 @@ +/// Used to set up a basic AI controller on a mob for admin ease of use +/datum/admin_ai_template + /// What do admins see when selecting this option? + var/name = "" + /// What AI controller do we apply? + var/controller_type + /// Should we be active even if the target has an active client? + var/override_client + /// Do we apply the hostile faction? + var/make_hostile + /// How likely is it that we move when not busy? + var/idle_chance + /// When do we stop targeting mobs? + var/minimum_stat + +/// Actually perform the process +/datum/admin_ai_template/proc/apply(mob/living/target, client/user) + if (QDELETED(target) || !isliving(target)) + to_chat(user, span_warning("Invalid target for AI controller.")) + return + if (gather_information(target, user)) + apply_controller(target, user) + +/// Set up any stored variables before we actually apply the controller +/datum/admin_ai_template/proc/gather_information(mob/living/target, client/user) + override_client = tgui_alert(user, "Would you like this controller to be active even while the mob has a client controlling it?", "Override Client?", list("Yes", "No")) + if (isnull(override_client)) + return FALSE + override_client = override_client == "Yes" + + idle_chance = tgui_input_number(user, "How likely should this mob be to move to another tile when it's not doing anything else?", "Walk Chance", max_value = 100, min_value = 0) + if (isnull(idle_chance)) + return FALSE + + if (isnull(make_hostile)) + make_hostile = tgui_alert(user, "Do you want to override this mob's faction with the hostile faction?", "Override Faction?", list("Yes", "No")) + if (isnull(make_hostile)) + return FALSE + make_hostile = make_hostile == "Yes" + + if (isnull(minimum_stat)) + var/static/list/stat_types = list( + "Conscious" = CONSCIOUS, + "Soft Crit" = SOFT_CRIT, + "Unconscious" = UNCONSCIOUS, + "Hard Crit" = HARD_CRIT, + "Dead (will probably get stuck punching a corpse forever)" = DEAD, + ) + var/selected_stat = tgui_input_list(user, "Attack targets at the maximum health level of...?", "Persistence Level", stat_types, "Soft Crit") + if (isnull(selected_stat)) + return FALSE + minimum_stat = stat_types[selected_stat] + + return TRUE + +/datum/admin_ai_template/proc/apply_controller(mob/living/target, client/user) + if (QDELETED(target)) + to_chat(user, span_warning("Target stopped existing while you were answering prompts :(")) + return + + QDEL_NULL(target.ai_controller) + target.ai_controller = new controller_type(target) + + if (make_hostile) + target.faction = list(FACTION_HOSTILE, REF(target)) + + var/datum/ai_controller/controller = target.ai_controller + controller.set_blackboard_key(BB_BASIC_MOB_IDLE_WALK_CHANCE, idle_chance) + controller.set_blackboard_key(BB_TARGET_MINIMUM_STAT, minimum_stat) + if (override_client) + controller.continue_processing_when_client = TRUE + controller.reset_ai_status() + +/// Walks at a guy and attacks +/datum/admin_ai_template/hostile + name = "Hostile Melee" + controller_type = /datum/ai_controller/basic_controller/simple/simple_hostile_obstacles + +/// Walks away from a guy and attacks +/datum/admin_ai_template/hostile_ranged + name = "Hostile Ranged" + controller_type = /datum/ai_controller/basic_controller/simple/simple_ranged + /// When should we retreat? + var/min_range + /// When should we advance? + var/max_range + /// What projectile do we fire? + var/projectile_type + /// What's the time between shots? + var/fire_cooldown + /// How many projectiles per shot? + var/burst_shots + /// What's the delay between projectiles in a burst? + var/burst_interval + /// What sound do we make? + var/projectile_sound + +/datum/admin_ai_template/hostile_ranged/gather_information(mob/living/target, client/user) + . = ..() + if (!.) + return FALSE + + if (!setup_ranged_attacks(target, user)) + return FALSE + + return decide_min_max_range(target, user) + +/// Give target a gun +/datum/admin_ai_template/hostile_ranged/proc/setup_ranged_attacks(mob/living/target, client/user) + if (target.GetComponent(/datum/component/ranged_attacks)) + return TRUE + + var/static/list/all_projectiles = subtypesof(/obj/projectile) + // These don't really browsable user-friendly names because there's a lot of duplicates, sorry admins + projectile_type = tgui_input_list(user, "What projectile should we fire?", "Select ammo", all_projectiles) + if (isnull(projectile_type)) + return FALSE + + fire_cooldown = tgui_input_number(user, "How many seconds between shots?", "Fire Rate", round_value = FALSE, max_value = 10, min_value = 0.2, default = 1) + if (isnull(fire_cooldown)) + return FALSE + fire_cooldown = fire_cooldown SECONDS + + burst_shots = tgui_input_number(user, "How many shots to fire per burst?", "Burst Count", max_value = 100, min_value = 1, default = 1) + if (isnull(burst_shots)) + return FALSE + if (burst_shots > 1) + burst_interval = tgui_input_number(user, "How many seconds delay between burst shots?", "Burst Rate", round_value = FALSE, max_value = 2, min_value = 0.1, default = 0.2) + if (isnull(burst_interval)) + return FALSE + burst_interval = burst_interval SECONDS + + var/pick_sound = tgui_alert(user, "Select a firing sound effect?", "Select Sound", list("Yes", "No")) + if (isnull(pick_sound)) + return FALSE + if (pick_sound == "Yes") + projectile_sound = input("", "Select fire sound",) as null|sound + + return TRUE + +/// Decide our movement details +/datum/admin_ai_template/hostile_ranged/proc/decide_min_max_range(mob/living/target, client/user) + min_range = tgui_input_number(user, "How far should this mob try to stay away from its target?", "Min Distance", max_value = 9, min_value = 0, default = 2) + if (isnull(min_range)) + return FALSE + + max_range = tgui_input_number(user, "How close should this mob try to stay to its target?", "Max Distance", max_value = 9, min_value = 1, default = 6) + if (isnull(max_range)) + return FALSE + + return TRUE + +/datum/admin_ai_template/hostile_ranged/apply_controller(mob/living/target, client/user) + . = ..() + + var/datum/ai_controller/controller = target.ai_controller + controller.set_blackboard_key(BB_RANGED_SKIRMISH_MIN_DISTANCE, min_range) + controller.set_blackboard_key(BB_RANGED_SKIRMISH_MAX_DISTANCE, max_range) + + if (!projectile_type) + return + + target.AddComponent(\ + /datum/component/ranged_attacks,\ + cooldown_time = fire_cooldown,\ + projectile_type = projectile_type,\ + projectile_sound = projectile_sound,\ + burst_shots = burst_shots,\ + burst_intervals = burst_interval,\ + ) + + if (fire_cooldown <= 1 SECONDS) + target.AddComponent(/datum/component/ranged_mob_full_auto) + +/// Walks at a guy while shooting and attacks +/datum/admin_ai_template/hostile_ranged/and_melee + name = "Hostile Ranged/Melee" + controller_type = /datum/ai_controller/basic_controller/simple/simple_skirmisher + +/datum/admin_ai_template/hostile_ranged/and_melee/decide_min_max_range(mob/living/target, client/user) + return TRUE + +/// Maintain distance from a guy and use an ability on cooldown +/datum/admin_ai_template/ability + name = "Hostile Ability User" + controller_type = /datum/ai_controller/basic_controller/simple/simple_ability + /// What is our ability? + var/ability_type + /// When should we retreat? + var/min_range + /// When should we advance? + var/max_range + +/datum/admin_ai_template/ability/gather_information(mob/living/target, client/user) + . = ..() + if (!.) + return FALSE + + // We'll limit it to mob actions because they're mostly set up for random mobs already, and spells take some extra finagling for wizard clothing etc + var/static/list/all_mob_actions = sort_list(subtypesof(/datum/action/cooldown/mob_cooldown), GLOBAL_PROC_REF(cmp_typepaths_asc)) + var/static/list/actions_by_name = list() + if (!length(actions_by_name)) + for (var/datum/action/cooldown/mob_cooldown as anything in all_mob_actions) + actions_by_name["[initial(mob_cooldown.name)] ([mob_cooldown])"] = mob_cooldown + + ability_type = tgui_input_list(user, "Which ability should it use?", "Select Ability", actions_by_name) + if (isnull(ability_type)) + return FALSE + + ability_type = actions_by_name[ability_type] + return decide_min_max_range(target, user) + +/// Decide our movement details, some copy/paste here unfortunately +/datum/admin_ai_template/ability/proc/decide_min_max_range(mob/living/target, client/user) + min_range = tgui_input_number(user, "How far should this mob try to stay away from its target?", "Min Distance", max_value = 9, min_value = 0, default = 2) + if (isnull(min_range)) + return FALSE + + max_range = tgui_input_number(user, "How close should this mob try to stay to its target?", "Max Distance", max_value = 9, min_value = 1, default = 6) + if (isnull(max_range)) + return FALSE + + return TRUE + +/datum/admin_ai_template/ability/apply_controller(mob/living/target, client/user) + . = ..() + + var/datum/action/cooldown/ability = locate(ability_type) in target.actions + if (isnull(ability)) + ability = new ability_type(target) + ability.Grant(target) + + var/datum/ai_controller/controller = target.ai_controller + controller.set_blackboard_key(BB_TARGETED_ACTION, ability) + controller.set_blackboard_key(BB_RANGED_SKIRMISH_MIN_DISTANCE, min_range) + controller.set_blackboard_key(BB_RANGED_SKIRMISH_MAX_DISTANCE, max_range) + +/// Walks at a guy and uses an ability on that guy +/datum/admin_ai_template/ability/melee + name = "Hostile Ability User (Melee Attacks)" + controller_type = /datum/ai_controller/basic_controller/simple/simple_ability_melee + +/datum/admin_ai_template/ability/melee/decide_min_max_range(mob/living/target, client/user) + return TRUE + +/// Stays away from a guy and uses an ability on that guy +/datum/admin_ai_template/hostile_ranged/ability + name = "Hostile Ability User (Ranged Attacks)" + controller_type = /datum/ai_controller/basic_controller/simple/simple_ability_ranged + /// What is our ability? + var/ability_type + +/datum/admin_ai_template/hostile_ranged/ability/gather_information(mob/living/target, client/user) + . = ..() + if (!.) + return FALSE + + // Sadly gotta copy/paste this here too + var/static/list/all_mob_actions = sort_list(subtypesof(/datum/action/cooldown/mob_cooldown), GLOBAL_PROC_REF(cmp_typepaths_asc)) + var/static/list/actions_by_name = list() + if (!length(actions_by_name)) + for (var/datum/action/cooldown/mob_cooldown as anything in all_mob_actions) + actions_by_name["[initial(mob_cooldown.name)] ([mob_cooldown])"] = mob_cooldown + + ability_type = tgui_input_list(user, "Which ability should it use?", "Select Ability", actions_by_name) + if (isnull(ability_type)) + return FALSE + ability_type = actions_by_name[ability_type] + return TRUE + +/datum/admin_ai_template/hostile_ranged/ability/apply_controller(mob/living/target, client/user) + . = ..() + + var/datum/action/cooldown/ability = locate(ability_type) in target.actions + if (isnull(ability)) + ability = new ability_type(target) + ability.Grant(target) + + var/datum/ai_controller/controller = target.ai_controller + controller.set_blackboard_key(BB_TARGETED_ACTION, ability) + +/// Chill unless you throw hands +/datum/admin_ai_template/retaliate + name = "Passive But Fights Back (Melee)" + controller_type = /datum/ai_controller/basic_controller/simple/simple_retaliate + make_hostile = FALSE + +/datum/admin_ai_template/retaliate/apply_controller(mob/living/target, client/user) + . = ..() + if (!HAS_TRAIT_FROM(target, TRAIT_SUBTREE_REQUIRED_OPERATIONAL_DATUM, /datum/element/ai_retaliate)) // Not really what this is for but it should work + target.AddElement(/datum/element/ai_retaliate) + +/// Shoots anyone who attacks them +/datum/admin_ai_template/hostile_ranged/ability/retaliate + name = "Passive But Fights Back (Ranged Attacks)" + controller_type = /datum/ai_controller/basic_controller/simple/simple_ranged_retaliate + make_hostile = FALSE + +/datum/admin_ai_template/hostile_ranged/ability/retaliate/apply_controller(mob/living/target, client/user) + . = ..() + if (!HAS_TRAIT_FROM(target, TRAIT_SUBTREE_REQUIRED_OPERATIONAL_DATUM, /datum/element/ai_retaliate)) // Not really what this is for but it should work + target.AddElement(/datum/element/ai_retaliate) + +/// Uses their signature move on anyone who attacks them +/datum/admin_ai_template/ability/retaliate + name = "Passive But Fights Back (Ability)" + controller_type = /datum/ai_controller/basic_controller/simple/simple_ability_retaliate + make_hostile = FALSE + +/datum/admin_ai_template/ability/retaliate/apply_controller(mob/living/target, client/user) + . = ..() + if (!HAS_TRAIT_FROM(target, TRAIT_SUBTREE_REQUIRED_OPERATIONAL_DATUM, /datum/element/ai_retaliate)) // Not really what this is for but it should work + target.AddElement(/datum/element/ai_retaliate) + +/// Who knows what this guy will do, he's a loose cannon +/datum/admin_ai_template/grumpy + name = "Gets Mad Unpredictably" + controller_type = /datum/ai_controller/basic_controller/simple/simple_capricious + make_hostile = FALSE + /// Chance per second to get pissed off + var/flipout_chance + /// Chance per second to stop being pissed off + var/calm_down_chance + +/datum/admin_ai_template/grumpy/gather_information(mob/living/target, client/user) + . = ..() + if (!.) + return FALSE + + flipout_chance = tgui_input_number(user, "What's the % chance per second we'll get mad for no reason?", "Tantrum Chance", round_value = FALSE, max_value = 100, min_value = 0, default = 0.5) + if (isnull(flipout_chance)) + return FALSE + + calm_down_chance = tgui_input_number(user, "What's the % chance per second we'll stop being mad?", "Zen Chance", round_value = FALSE, max_value = 100, min_value = 0, default = 10) + if (isnull(calm_down_chance)) + return FALSE + + return TRUE + +/datum/admin_ai_template/grumpy/apply_controller(mob/living/target, client/user) + . = ..() + var/datum/ai_controller/controller = target.ai_controller + controller.set_blackboard_key(BB_RANDOM_AGGRO_CHANCE, flipout_chance) + controller.set_blackboard_key(BB_RANDOM_DEAGGRO_CHANCE, calm_down_chance) + + if (!HAS_TRAIT_FROM(target, TRAIT_SUBTREE_REQUIRED_OPERATIONAL_DATUM, /datum/element/ai_retaliate)) // Not really what this is for but it should work + target.AddElement(/datum/element/ai_retaliate) + +/// Coward +/datum/admin_ai_template/fearful + name = "Runs Away" + minimum_stat = CONSCIOUS + make_hostile = FALSE + controller_type = /datum/ai_controller/basic_controller/simple/simple_fearful + +/// Doesn't like violence +/datum/admin_ai_template/skittish + name = "Runs Away From Attackers" + minimum_stat = CONSCIOUS + make_hostile = FALSE + controller_type = /datum/ai_controller/basic_controller/simple/simple_skittish + +/datum/admin_ai_template/skittish/apply_controller(mob/living/target, client/user) + . = ..() + if (!HAS_TRAIT_FROM(target, TRAIT_SUBTREE_REQUIRED_OPERATIONAL_DATUM, /datum/element/ai_retaliate)) // Not really what this is for but it should work + target.AddElement(/datum/element/ai_retaliate) + +/// You gottit boss +/datum/admin_ai_template/goon + name = "Obeys Commands" + controller_type = /datum/ai_controller/basic_controller/simple/simple_goon + /// Who is really in charge here? + var/mob/living/da_boss + +/datum/admin_ai_template/goon/gather_information(mob/living/target, client/user) + . = ..() + if (!.) + return FALSE + + var/find_a_mob = tgui_alert(user, "Make this mob a minion of a mob in your tile? (If you don't do this you will need to use the befriend proc)", "Set Master?", list("Yes", "No")) + if (isnull(override_client)) + return FALSE + find_a_mob = find_a_mob == "Yes" + if (!find_a_mob) + return TRUE + + return grab_mob(target, user) + +/// Find a mob to make the boss +/datum/admin_ai_template/goon/proc/grab_mob(mob/living/target, client/user) + var/list/mobs_in_my_tile = list() + for (var/mob/living/dude in (range(0, user.mob) - target)) + mobs_in_my_tile[dude.real_name] = dude + + if (length(mobs_in_my_tile)) + var/picked = tgui_input_list(user, "Select new master.", "Set Master", mobs_in_my_tile + "Try Again", "Try Again") + if (isnull(picked)) + return FALSE + if (picked == "Try Again") + return grab_mob(target, user) + + da_boss = mobs_in_my_tile[picked] + return TRUE + + var/find_a_mob = tgui_alert(user, "No applicable mobs found. Try again?", "Try Again?", list("Yes", "No")) + if (isnull(find_a_mob)) + return FALSE + find_a_mob = find_a_mob == "Yes" + if (!find_a_mob) + return TRUE + return grab_mob(target, user) + +/datum/admin_ai_template/goon/apply_controller(mob/living/target, client/user) + . = ..() + // There's not really much point making this customisable at the moment + var/static/list/pet_commands = list( + /datum/pet_command/idle, + /datum/pet_command/move, + /datum/pet_command/attack, + /datum/pet_command/follow, + /datum/pet_command/protect_owner, + ) + var/datum/component/obeys_commands/command_component = target.AddComponent(/datum/component/obeys_commands, pet_commands) + + if (isnull(da_boss)) + return + + target.befriend(da_boss) + // Fuck it we're in admin territory we can do code crimes here + var/datum/pet_command/follow/follow_command = command_component.available_commands["Follow"] + follow_command?.set_command_active(target, da_boss) + +/// Whatever it was doing before we fucked with it (mostly, can't do this with total confidence) +/datum/admin_ai_template/reset + name = "Reset" + +/datum/admin_ai_template/reset/gather_information(mob/living/target, client/user) + return TRUE + +/datum/admin_ai_template/reset/apply_controller(mob/living/target, client/user) + QDEL_NULL(target.ai_controller) + var/controller_type = initial(target.ai_controller) + target.ai_controller = new controller_type(src) + +/// Like I'm doing nothing at all, nothing at all +/datum/admin_ai_template/clear + name = "None" + +/datum/admin_ai_template/clear/gather_information(mob/living/target, client/user) + return TRUE + +/datum/admin_ai_template/clear/apply_controller(mob/living/target, client/user) + QDEL_NULL(target.ai_controller) diff --git a/code/datums/ai/basic_mobs/base_basic_controller.dm b/code/datums/ai/basic_mobs/base_basic_controller.dm index d222cc1ef6d05..7eb1279bb662f 100644 --- a/code/datums/ai/basic_mobs/base_basic_controller.dm +++ b/code/datums/ai/basic_mobs/base_basic_controller.dm @@ -2,7 +2,7 @@ movement_delay = 0.4 SECONDS /datum/ai_controller/basic_controller/TryPossessPawn(atom/new_pawn) - if(!isbasicmob(new_pawn)) + if(!isliving(new_pawn)) return AI_CONTROLLER_INCOMPATIBLE var/mob/living/basic/basic_mob = new_pawn @@ -42,7 +42,7 @@ if(ai_traits & PAUSE_DURING_DO_AFTER && LAZYLEN(living_pawn.do_afters)) return AI_UNABLE_TO_RUN | AI_PREVENT_CANCEL_ACTIONS //dont erase targets post a do_after -/datum/ai_controller/basic_controller/proc/update_speed(mob/living/basic/basic_mob) +/datum/ai_controller/basic_controller/proc/update_speed(mob/living/basic_mob) SIGNAL_HANDLER movement_delay = basic_mob.cached_multiplicative_slowdown diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/ventcrawling.dm b/code/datums/ai/basic_mobs/basic_ai_behaviors/ventcrawling.dm index aca89d832814a..06fcfa1472623 100644 --- a/code/datums/ai/basic_mobs/basic_ai_behaviors/ventcrawling.dm +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/ventcrawling.dm @@ -82,7 +82,8 @@ if(!HAS_TRAIT(living_pawn, TRAIT_MOVE_VENTCRAWLING) && isturf(get_turf(living_pawn))) // we're out of the vents, so no need to do an exit // assume that we got yeeted out somehow and return this so we can halt the suicide pill timer. - return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_SUCCEEDED + finish_action(controller, TRUE, target_key) + return living_pawn.forceMove(exit_vent) if(!living_pawn.can_enter_vent(exit_vent, provide_feedback = FALSE)) @@ -90,7 +91,8 @@ emergency_vent = calculate_exit_vent(controller) if(isnull(emergency_vent)) // it's joever. we cooked too hard. - return suicide_pill(controller) | AI_BEHAVIOR_DELAY + suicide_pill(controller) + return controller.set_blackboard_key(BB_EXIT_VENT_TARGET, emergency_vent) // assign and go again addtimer(CALLBACK(src, PROC_REF(exit_the_vents), controller), (rand(controller.blackboard[BB_LOWER_VENT_TIME_LIMIT], controller.blackboard[BB_UPPER_VENT_TIME_LIMIT]) / 2)) // we're in danger mode, so scurry out at half the time it would normally take. @@ -99,9 +101,11 @@ living_pawn.handle_ventcrawl(exit_vent) if(HAS_TRAIT(living_pawn, TRAIT_MOVE_VENTCRAWLING)) // how'd we fail? what the fuck stack_trace("We failed to exit the vents, even though we should have been fine? This is very weird.") - return suicide_pill(controller) | AI_BEHAVIOR_DELAY // all of the prior checks say we should have definitely made it through, but we didn't. dammit. + suicide_pill(controller) + return - return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_SUCCEEDED // we did it! we went into the vents and out of the vents. poggers. + finish_action(controller, TRUE, target_key) + return /// Incredibly stripped down version of the overarching `can_enter_vent` proc on `/mob, just meant for rapid rechecking of a vent. Will be TRUE if not blocked, FALSE otherwise. /datum/ai_behavior/crawl_through_vents/proc/is_vent_valid(obj/machinery/atmospherics/components/unary/vent_pump/checkable) diff --git a/code/datums/ai/basic_mobs/basic_subtrees/maintain_distance.dm b/code/datums/ai/basic_mobs/basic_subtrees/maintain_distance.dm index 549abbc75eca8..8b8b0d0bf6fca 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/maintain_distance.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/maintain_distance.dm @@ -2,10 +2,6 @@ /datum/ai_planning_subtree/maintain_distance /// Blackboard key holding atom we want to stay away from var/target_key = BB_BASIC_MOB_CURRENT_TARGET - /// How close will we allow our target to get? - var/minimum_distance = 4 - /// How far away will we allow our target to get? - var/maximum_distance = 6 /// How far do we look for our target? var/view_distance = 10 /// the run away behavior we will use @@ -13,10 +9,19 @@ /datum/ai_planning_subtree/maintain_distance/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) . = ..() + + var/mob/living/living_pawn = controller.pawn + if(LAZYLEN(living_pawn.do_afters)) + return + var/atom/target = controller.blackboard[target_key] if (!isliving(target) || !can_see(controller.pawn, target, view_distance)) return // Don't run away from cucumbers, they're not snakes var/range = get_dist(controller.pawn, target) + + var/minimum_distance = controller.blackboard[BB_RANGED_SKIRMISH_MIN_DISTANCE] || 4 + var/maximum_distance = controller.blackboard[BB_RANGED_SKIRMISH_MAX_DISTANCE] || 6 + if (range < minimum_distance) controller.queue_behavior(run_away_behavior, target_key, minimum_distance) return diff --git a/code/datums/ai/basic_mobs/basic_subtrees/ranged_skirmish.dm b/code/datums/ai/basic_mobs/basic_subtrees/ranged_skirmish.dm index efe5dc911cd9d..3004199a70f55 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/ranged_skirmish.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/ranged_skirmish.dm @@ -18,7 +18,7 @@ /// How often will we try to perform our ranged attack? /datum/ai_behavior/ranged_skirmish - action_cooldown = 1 SECONDS + action_cooldown = 0.5 SECONDS /datum/ai_behavior/ranged_skirmish/setup(datum/ai_controller/controller, target_key, targeting_strategy_key, hiding_location_key, max_range, min_range) . = ..() diff --git a/code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.dm b/code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.dm index 7d877731e2b05..7dbce139b57ed 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.dm @@ -34,6 +34,9 @@ var/total_choices_length = audible_emotes_length + non_audible_emotes_length + speak_lines_length + if (total_choices_length == 0) + return + var/random_number_in_range = rand(1, total_choices_length) var/sound_to_play = length(sound) > 0 ? pick(sound) : null diff --git a/code/datums/ai/basic_mobs/generic_controllers.dm b/code/datums/ai/basic_mobs/generic_controllers.dm index dae1b944dd321..8bf0026e1aa52 100644 --- a/code/datums/ai/basic_mobs/generic_controllers.dm +++ b/code/datums/ai/basic_mobs/generic_controllers.dm @@ -1,26 +1,131 @@ -/// The most basic AI tree which just finds a guy and then runs at them to click them -/datum/ai_controller/basic_controller/simple_hostile +/// Basetype with normal parameters +/datum/ai_controller/basic_controller/simple blackboard = list( BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, ) ai_movement = /datum/ai_movement/basic_avoidance idle_behavior = /datum/idle_behavior/idle_random_walk + +/// The most basic AI tree which just finds a guy and then runs at them to click them +/datum/ai_controller/basic_controller/simple/simple_hostile planning_subtrees = list( /datum/ai_planning_subtree/simple_find_target, /datum/ai_planning_subtree/basic_melee_attack_subtree, ) /// Find a target, walk at target, attack intervening obstacles -/datum/ai_controller/basic_controller/simple_hostile_obstacles - blackboard = list( - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, +/datum/ai_controller/basic_controller/simple/simple_hostile_obstacles + planning_subtrees = list( + /datum/ai_planning_subtree/simple_find_target, + /datum/ai_planning_subtree/attack_obstacle_in_path, + /datum/ai_planning_subtree/basic_melee_attack_subtree, ) - ai_movement = /datum/ai_movement/basic_avoidance - idle_behavior = /datum/idle_behavior/idle_random_walk +/// Find a target, walk at target, attack intervening obstacles +/datum/ai_controller/basic_controller/simple/simple_ranged + planning_subtrees = list( + /datum/ai_planning_subtree/simple_find_target, + /datum/ai_planning_subtree/maintain_distance, + /datum/ai_planning_subtree/ranged_skirmish, + ) + +/datum/ai_controller/basic_controller/simple/simple_ranged_retaliate + planning_subtrees = list( + /datum/ai_planning_subtree/target_retaliate, + /datum/ai_planning_subtree/maintain_distance, + /datum/ai_planning_subtree/ranged_skirmish, + ) + +/// Find a target, walk towards it AND shoot it +/datum/ai_controller/basic_controller/simple/simple_skirmisher planning_subtrees = list( /datum/ai_planning_subtree/simple_find_target, + /datum/ai_planning_subtree/ranged_skirmish, /datum/ai_planning_subtree/attack_obstacle_in_path, /datum/ai_planning_subtree/basic_melee_attack_subtree, ) + +/// Use an ability on target on cooldown +/datum/ai_controller/basic_controller/simple/simple_ability + planning_subtrees = list( + /datum/ai_planning_subtree/simple_find_target, + /datum/ai_planning_subtree/maintain_distance, + /datum/ai_planning_subtree/targeted_mob_ability, + ) + +/datum/ai_controller/basic_controller/simple/simple_ability_retaliate + planning_subtrees = list( + /datum/ai_planning_subtree/target_retaliate, + /datum/ai_planning_subtree/maintain_distance, + /datum/ai_planning_subtree/targeted_mob_ability, + ) + +/// Use an ability on target on cooldown, then try to punch them +/datum/ai_controller/basic_controller/simple/simple_ability_melee + planning_subtrees = list( + /datum/ai_planning_subtree/simple_find_target, + /datum/ai_planning_subtree/targeted_mob_ability, + /datum/ai_planning_subtree/attack_obstacle_in_path, + /datum/ai_planning_subtree/basic_melee_attack_subtree, + ) + +/// Use an ability on target on cooldown, then try to shoot them +/datum/ai_controller/basic_controller/simple/simple_ability_ranged + planning_subtrees = list( + /datum/ai_planning_subtree/simple_find_target, + /datum/ai_planning_subtree/maintain_distance, + /datum/ai_planning_subtree/targeted_mob_ability, + /datum/ai_planning_subtree/ranged_skirmish, + ) + +/// Fight back if attacked +/datum/ai_controller/basic_controller/simple/simple_retaliate + ai_traits = STOP_MOVING_WHEN_PULLED + planning_subtrees = list( + /datum/ai_planning_subtree/target_retaliate, + /datum/ai_planning_subtree/basic_melee_attack_subtree, + ) + +/// Get pissed at random people for no reason +/datum/ai_controller/basic_controller/simple/simple_capricious + ai_traits = STOP_MOVING_WHEN_PULLED + planning_subtrees = list( + /datum/ai_planning_subtree/capricious_retaliate, + /datum/ai_planning_subtree/target_retaliate, + /datum/ai_planning_subtree/basic_melee_attack_subtree, + ) + +/// Runs away from anyone it sees +/datum/ai_controller/basic_controller/simple/simple_fearful + ai_traits = STOP_MOVING_WHEN_PULLED + planning_subtrees = list( + /datum/ai_planning_subtree/simple_find_nearest_target_to_flee, + /datum/ai_planning_subtree/flee_target, + ) + +/// Runs away when attacked +/datum/ai_controller/basic_controller/simple/simple_skittish + ai_traits = STOP_MOVING_WHEN_PULLED + planning_subtrees = list( + /datum/ai_planning_subtree/find_nearest_thing_which_attacked_me_to_flee, + /datum/ai_planning_subtree/flee_target, + ) + +/// Does what it is told and protects da boss +/datum/ai_controller/basic_controller/simple/simple_goon + blackboard = list( + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends, + BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends, + ) + + planning_subtrees = list( + /datum/ai_planning_subtree/pet_planning, + ) + +/// Literally does nothing except random speedh +/datum/ai_controller/basic_controller/talk + idle_behavior = null + planning_subtrees = list( + /datum/ai_planning_subtree/random_speech/blackboard, + ) diff --git a/code/datums/ai/idle_behaviors/idle_random_walk.dm b/code/datums/ai/idle_behaviors/idle_random_walk.dm index c27caa5007205..bedcb12e5c72d 100644 --- a/code/datums/ai/idle_behaviors/idle_random_walk.dm +++ b/code/datums/ai/idle_behaviors/idle_random_walk.dm @@ -8,7 +8,8 @@ if(LAZYLEN(living_pawn.do_afters)) return FALSE - if(SPT_PROB(walk_chance, seconds_per_tick) && (living_pawn.mobility_flags & MOBILITY_MOVE) && isturf(living_pawn.loc) && !living_pawn.pulledby) + var/actual_chance = controller.blackboard[BB_BASIC_MOB_IDLE_WALK_CHANCE] || walk_chance + if(SPT_PROB(actual_chance, seconds_per_tick) && (living_pawn.mobility_flags & MOBILITY_MOVE) && isturf(living_pawn.loc) && !living_pawn.pulledby) var/move_dir = pick(GLOB.alldirs) var/turf/destination_turf = get_step(living_pawn, move_dir) if(!destination_turf?.can_cross_safely(living_pawn)) diff --git a/code/datums/brain_damage/phobia.dm b/code/datums/brain_damage/phobia.dm index e9733293cff13..132bf835396b7 100644 --- a/code/datums/brain_damage/phobia.dm +++ b/code/datums/brain_damage/phobia.dm @@ -90,7 +90,7 @@ if (!isitem(checked)) return TRUE var/obj/item/checked_item = checked - return !(checked_item.item_flags & EXAMINE_SKIP) + return !HAS_TRAIT(checked_item, TRAIT_EXAMINE_SKIP) /datum/brain_trauma/mild/phobia/handle_hearing(datum/source, list/hearing_args) if(!owner.can_hear() || owner == hearing_args[HEARING_SPEAKER] || !owner.has_language(hearing_args[HEARING_LANGUAGE])) //words can't trigger you if you can't hear them *taps head* diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index 000f8790084f1..b9e92ca442325 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -328,7 +328,7 @@ var/datum/component/old_component raw_args[1] = src - if(dupe_mode != COMPONENT_DUPE_ALLOWED && dupe_mode != COMPONENT_DUPE_SELECTIVE && dupe_mode != COMPONENT_DUPE_SOURCES) + if(dupe_mode != COMPONENT_DUPE_ALLOWED && dupe_mode != COMPONENT_DUPE_SELECTIVE) old_component = GetComponent(component_type) if(old_component) @@ -378,16 +378,13 @@ if(!new_component && make_new_component) new_component = new component_type(raw_args) - else if(dupe_mode == COMPONENT_DUPE_SOURCES) - new_component = new component_type(raw_args) - if(new_component.on_source_add(arglist(list(source) + raw_args.Copy(2))) == COMPONENT_INCOMPATIBLE) - stack_trace("incompatible source added to a [new_component.type]. Args: [json_encode(raw_args)]") - return null - else if(!new_component) new_component = new component_type(raw_args) // Dupes are allowed, act like normal if(!old_component && !QDELETED(new_component)) // Nothing related to duplicate components happened and the new component is healthy + if(source && new_component.on_source_add(arglist(list(source) + raw_args.Copy(2))) == COMPONENT_INCOMPATIBLE) + stack_trace("incompatible source added to a [new_component.type]. Args: [json_encode(raw_args)]") + return null SEND_SIGNAL(src, COMSIG_COMPONENT_ADDED, new_component) return new_component diff --git a/code/datums/components/basic_mob_attack_telegraph.dm b/code/datums/components/basic_mob_attack_telegraph.dm index f0cd0ccc1a15c..8efe70967f822 100644 --- a/code/datums/components/basic_mob_attack_telegraph.dm +++ b/code/datums/components/basic_mob_attack_telegraph.dm @@ -73,7 +73,7 @@ on_began_forecast?.Invoke(target) //we stop the do_after if the target moves out of neighboring turfs but if they dance around us they get their face smashed - if (!do_after(source, delay = telegraph_duration, target = target, timed_action_flags = IGNORE_TARGET_LOC_CHANGE, extra_checks = CALLBACK(source, TYPE_PROC_REF(/atom/movable, Adjacent), target), interaction_key = INTERACTION_BASIC_ATTACK_FORCEAST)) + if (!do_after(source, delay = telegraph_duration, target = target, timed_action_flags = IGNORE_TARGET_LOC_CHANGE, extra_checks = CALLBACK(source, TYPE_PROC_REF(/atom/movable, Adjacent), target), interaction_key = INTERACTION_BASIC_ATTACK_FORCEAST, hidden = TRUE)) forget_target(target) return if (isnull(target)) // They got out of the way :( diff --git a/code/datums/components/chasm.dm b/code/datums/components/chasm.dm index 7e516cd5f403e..c281addacc231 100644 --- a/code/datums/components/chasm.dm +++ b/code/datums/components/chasm.dm @@ -49,9 +49,7 @@ //otherwise don't do anything because turfs and areas are initialized before movables. if(!mapload) addtimer(CALLBACK(src, PROC_REF(drop_stuff)), 0) - var/turf/turf_parent = parent - if(!istype(turf_parent.loc, /area/deathmatch)) // there are so so so many explosives in deathmatch and i dont think anyone is going to fish in the *death*match arena - parent.AddComponent(/datum/component/fishing_spot, GLOB.preset_fish_sources[/datum/fish_source/chasm]) + parent.AddComponent(/datum/component/fishing_spot, GLOB.preset_fish_sources[/datum/fish_source/chasm]) /datum/component/chasm/UnregisterFromParent() storage = null diff --git a/code/datums/components/clothing_dirt.dm b/code/datums/components/clothing_dirt.dm index 40f0ddb07e249..a6cfcf88ff418 100644 --- a/code/datums/components/clothing_dirt.dm +++ b/code/datums/components/clothing_dirt.dm @@ -1,12 +1,17 @@ -/// This component applies tint to clothing when its exposed to pepperspray, used in /obj/item/clothing/mask/gas. +/// This component applies tint to clothing when its exposed to pepperspray or spraycans /datum/component/clothing_dirt /// Amount of dirt stacks on the clothing var/dirtiness = 0 + /// Icon state of the overlay to add to our parent when its dirty + var/dirt_state + /// Color of current overlay + var/dirt_color = COLOR_WHITE -/datum/component/clothing_dirt/Initialize() +/datum/component/clothing_dirt/Initialize(dirt_state = null) if(!isclothing(parent)) return COMPONENT_INCOMPATIBLE + src.dirt_state = dirt_state /datum/component/clothing_dirt/RegisterWithParent() RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) @@ -14,6 +19,8 @@ RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(on_clean)) RegisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_expose), TRUE) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(on_overlays_updated)) + RegisterSignal(parent, COMSIG_ITEM_GET_WORN_OVERLAYS, PROC_REF(on_worn_overlays)) /datum/component/clothing_dirt/UnregisterFromParent() var/obj/item/clothing/clothing = parent @@ -21,7 +28,7 @@ if(iscarbon(clothing.loc)) var/mob/living/carbon/wearer = clothing.loc wearer.update_tint() - UnregisterSignal(wearer, COMSIG_ATOM_EXPOSE_REAGENTS) + UnregisterSignal(wearer, list(COMSIG_ATOM_EXPOSE_REAGENTS, COMSIG_CARBON_SPRAYPAINTED)) else UnregisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS) UnregisterSignal(parent, list( @@ -29,6 +36,7 @@ COMSIG_ITEM_EQUIPPED, COMSIG_MOB_UNEQUIPPED_ITEM, COMSIG_COMPONENT_CLEAN_ACT, + COMSIG_ATOM_UPDATE_OVERLAYS, )) return ..() @@ -39,42 +47,90 @@ return UnregisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS) RegisterSignal(user, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_expose), TRUE) + RegisterSignal(user, COMSIG_CARBON_SPRAYPAINTED, PROC_REF(on_spraypaint), TRUE) /datum/component/clothing_dirt/proc/on_drop(datum/source, mob/holder) SIGNAL_HANDLER - UnregisterSignal(holder, COMSIG_ATOM_EXPOSE_REAGENTS) + UnregisterSignal(holder, list(COMSIG_ATOM_EXPOSE_REAGENTS, COMSIG_CARBON_SPRAYPAINTED)) RegisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_expose), TRUE) + RegisterSignal(parent, COMSIG_CARBON_SPRAYPAINTED, PROC_REF(on_spraypaint), TRUE) /datum/component/clothing_dirt/proc/on_examine(datum/source, mob/user, list/examine_list) SIGNAL_HANDLER if (dirtiness > 0) - examine_list += span_warning("It appears to be covered in some oily substance. Won't see much while wearing it until you wash it off.") + examine_list += span_warning("It appears to be covered in something. Won't see much while wearing it until you wash it off.") + +/datum/component/clothing_dirt/proc/on_overlays_updated(obj/item/clothing/source, list/overlays) + SIGNAL_HANDLER + + if (!dirtiness || !dirt_state && !(source.flags_cover & PEPPERPROOF)) + return + + var/mutable_appearance/dirt_overlay = mutable_appearance(source.icon, dirt_state, appearance_flags = KEEP_APART|RESET_COLOR) + dirt_overlay.color = dirt_color + overlays += dirt_overlay + +/datum/component/clothing_dirt/proc/on_worn_overlays(obj/item/source, list/overlays, mutable_appearance/standing, isinhands, icon_file) + SIGNAL_HANDLER + + if (isinhands || !dirtiness || !dirt_state || !(source.flags_cover & PEPPERPROOF)) + return + + var/mutable_appearance/dirt_overlay = mutable_appearance(source.worn_icon, dirt_state, appearance_flags = KEEP_APART|RESET_COLOR) + dirt_overlay.color = dirt_color + overlays += dirt_overlay /datum/component/clothing_dirt/proc/on_expose(atom/target, list/reagents, datum/reagents/source, methods) SIGNAL_HANDLER var/mob/living/carbon/wearer + var/obj/item/clothing/clothing = parent if(iscarbon(target)) wearer = target if(is_protected(wearer)) return + if(!(wearer.get_slot_by_item(clothing) & clothing.slot_flags)) + return + var/datum/reagent/consumable/condensedcapsaicin/pepper = locate() in reagents - if(isnull(pepper)) + if(isnull(pepper) || !(methods & (TOUCH | VAPOR))) return - var/obj/item/clothing/clothing = parent - if (methods & (TOUCH | VAPOR)) - clothing.tint -= dirtiness - dirtiness = min(dirtiness + round(reagents[pepper] / 5), 3) - clothing.tint += dirtiness - if(!isnull(wearer)) - wearer.update_tint() + dirt_color = pepper.color + clothing.tint -= dirtiness + dirtiness = min(dirtiness + round(reagents[pepper] / 5), 3) + clothing.tint += dirtiness + clothing.update_appearance() + if(!isnull(wearer)) + wearer.update_tint() + wearer.update_clothing(wearer.get_slot_by_item(clothing)) /datum/component/clothing_dirt/proc/is_protected(mob/living/carbon/wearer) - return wearer.head && (wearer.head.flags_cover & PEPPERPROOF) + return wearer.head && wearer.head != parent && (wearer.head.flags_cover & PEPPERPROOF) + +/datum/component/clothing_dirt/proc/on_spraypaint(mob/living/carbon/wearer, mob/user, obj/item/toy/crayon/spraycan/spraycan) + SIGNAL_HANDLER + + if(is_protected(wearer)) + return + + var/obj/item/clothing/clothing = parent + if(!(wearer.get_slot_by_item(clothing) & clothing.slot_flags)) + return + + dirt_color = spraycan.paint_color + clothing.tint -= dirtiness + dirtiness = min(3, dirtiness + rand(2, 3)) + clothing.tint += dirtiness + clothing.update_appearance() + wearer.update_clothing(wearer.get_slot_by_item(clothing)) + wearer.update_tint() + user.visible_message(span_danger("[user] sprays [spraycan] into the face of [wearer]!")) + to_chat(wearer, span_userdanger("[user] sprays [spraycan] into your face!")) + return COMPONENT_CANCEL_SPRAYPAINT -/datum/component/clothing_dirt/proc/on_clean(datum/target, clean_types) +/datum/component/clothing_dirt/proc/on_clean(datum/source, clean_types) SIGNAL_HANDLER var/obj/item/clothing/clothing = parent var/mob/living/carbon/wearer diff --git a/code/datums/components/crafting/ranged_weapon.dm b/code/datums/components/crafting/ranged_weapon.dm index f5deb979cb50e..5de5095e7b2e9 100644 --- a/code/datums/components/crafting/ranged_weapon.dm +++ b/code/datums/components/crafting/ranged_weapon.dm @@ -43,6 +43,19 @@ time = 5 SECONDS category = CAT_WEAPON_RANGED +/datum/crafting_recipe/gun_maint_kit + name = "Makeshift Gun Maintenance Kit" + tool_behaviors = list(TOOL_WRENCH, TOOL_WELDER, TOOL_SCREWDRIVER) + result = /obj/item/gun_maintenance_supplies/makeshift + reqs = list( + /obj/item/stack/sheet/iron = 5, + /obj/item/stack/sticky_tape = 1, + /obj/item/pipe = 1, + /obj/item/stack/sheet/cloth = 2, + ) + time = 5 SECONDS + category = CAT_WEAPON_RANGED + /datum/crafting_recipe/advancedegun name = "Advanced Energy Gun" result = /obj/item/gun/energy/e_gun/nuclear diff --git a/code/datums/components/crafting/structures.dm b/code/datums/components/crafting/structures.dm index 10fe81efe96d9..7af26c0c89d28 100644 --- a/code/datums/components/crafting/structures.dm +++ b/code/datums/components/crafting/structures.dm @@ -61,20 +61,6 @@ ) category = CAT_STRUCTURE -/datum/crafting_recipe/syndicate_uplink_beacon - name = "Syndicate Uplink Beacon" - result = /obj/structure/syndicate_uplink_beacon - tool_behaviors = list(TOOL_SCREWDRIVER) - time = 6 SECONDS - reqs = list( - /obj/item/stack/sheet/iron = 5, - /obj/item/stack/cable_coil = 5, - /obj/item/beacon = 1, - /obj/item/stack/ore/bluespace_crystal = 1, - ) - category = CAT_STRUCTURE - crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_MUST_BE_LEARNED - /datum/crafting_recipe/manucrate name = "Manufacturing Storage Unit" result = /obj/machinery/power/manufacturing/storagebox diff --git a/code/datums/components/fantasy/prefixes.dm b/code/datums/components/fantasy/prefixes.dm index cd80a1143130a..711844ea8be20 100644 --- a/code/datums/components/fantasy/prefixes.dm +++ b/code/datums/components/fantasy/prefixes.dm @@ -161,3 +161,26 @@ var/obj/item/master = comp.parent comp.appliedComponents += master.AddComponent(/datum/component/soul_stealer) return "soul-[pick("stealing", "hungering", "devouring")] [newName]" + +// On hitting a mob chain lightning will jump to another mob within 2 tiles of the original target +/datum/fantasy_affix/thunderfury + name = "Thunderfury" + placement = AFFIX_PREFIX + alignment = AFFIX_GOOD + weight = 3 + +/datum/fantasy_affix/thunderfury/apply(datum/component/fantasy/comp, newName) + comp.parent.AddElement(/datum/element/chain_lightning_attack, get_damage(comp), get_range(comp), get_limit(comp)) + return "Thunderfury, Blessed [newName]" + +/datum/fantasy_affix/thunderfury/remove(datum/component/fantasy/comp) + comp.parent.RemoveElement(/datum/element/chain_lightning_attack, get_damage(comp), get_range(comp), get_limit(comp)) + +/datum/fantasy_affix/thunderfury/proc/get_damage(datum/component/fantasy/comp) + return min(round(comp.quality, 2), 20) + +/datum/fantasy_affix/thunderfury/proc/get_range(datum/component/fantasy/comp) + return min(round(sqrt(comp.quality), 1), 3) + +/datum/fantasy_affix/thunderfury/proc/get_limit(datum/component/fantasy/comp) + return min(round(sqrt(comp.quality), 1), 3) diff --git a/code/datums/components/fantasy/suffixes.dm b/code/datums/components/fantasy/suffixes.dm index 997c9564592b3..cd9ca79ec0067 100644 --- a/code/datums/components/fantasy/suffixes.dm +++ b/code/datums/components/fantasy/suffixes.dm @@ -290,3 +290,20 @@ /datum/fantasy_affix/doot/remove(datum/component/fantasy/comp) comp.parent.RemoveElement(/datum/element/spooky, too_spooky = comp.quality > 17, stam_damage_mult = comp.quality * 0.15) + +// On hitting a mob their click cd is slowed marginally +/datum/fantasy_affix/windseeker + name = "of the Windseeker" + placement = AFFIX_SUFFIX + alignment = AFFIX_GOOD + weight = 3 + +/datum/fantasy_affix/windseeker/apply(datum/component/fantasy/comp, newName) + comp.parent.AddElement(/datum/element/slow_target_click_cd_attack, get_cd_penalty(comp)) + return "[newName] of the Windseeker" + +/datum/fantasy_affix/windseeker/remove(datum/component/fantasy/comp) + comp.parent.RemoveElement(/datum/element/slow_target_click_cd_attack, get_cd_penalty(comp)) + +/datum/fantasy_affix/windseeker/proc/get_cd_penalty(datum/component/fantasy/comp) + return min(round(sqrt(comp.quality) * 0.1, 0.1), 0.4) // this gives you a small number, like 0.2 seconds diff --git a/code/datums/components/jukebox.dm b/code/datums/components/jukebox.dm index 071e284756f95..f5593e1ab0f42 100644 --- a/code/datums/components/jukebox.dm +++ b/code/datums/components/jukebox.dm @@ -1,6 +1,3 @@ -/// Checks if the mob has jukebox muted in their preferences -#define IS_PREF_MUTED(mob) (!isnull(mob.client) && !mob.client.prefs.read_preference(/datum/preference/toggle/sound_jukebox)) - // Reasons for appling STATUS_MUTE to a mob's sound status /// The mob is deaf #define MUTE_DEAF (1<<0) @@ -220,8 +217,8 @@ RegisterSignal(new_listener, COMSIG_MOVABLE_MOVED, PROC_REF(listener_moved)) RegisterSignals(new_listener, list(SIGNAL_ADDTRAIT(TRAIT_DEAF), SIGNAL_REMOVETRAIT(TRAIT_DEAF)), PROC_REF(listener_deaf)) - - if(HAS_TRAIT(new_listener, TRAIT_DEAF) || IS_PREF_MUTED(new_listener)) + var/pref_volume = new_listener.client?.prefs.read_preference(/datum/preference/numeric/volume/sound_instruments) + if(HAS_TRAIT(new_listener, TRAIT_DEAF) || !pref_volume) listeners[new_listener] |= SOUND_MUTE if(isnull(active_song_sound)) @@ -230,7 +227,7 @@ active_song_sound.channel = CHANNEL_JUKEBOX active_song_sound.priority = 255 active_song_sound.falloff = 2 - active_song_sound.volume = volume + active_song_sound.volume = volume * (pref_volume/100) active_song_sound.y = 1 active_song_sound.environment = juke_area.sound_environment || SOUND_ENVIRONMENT_NONE active_song_sound.repeat = sound_loops @@ -283,8 +280,8 @@ if((reason & MUTE_DEAF) && HAS_TRAIT(listener, TRAIT_DEAF)) return FALSE - - if((reason & MUTE_PREF) && IS_PREF_MUTED(listener)) + var/pref_volume = listener.client?.prefs.read_preference(/datum/preference/numeric/volume/sound_instruments) + if((reason & MUTE_PREF) && !pref_volume) return FALSE if(reason & MUTE_RANGE) @@ -380,8 +377,6 @@ /datum/jukebox/single_mob/start_music(mob/solo_listener) register_listener(solo_listener) -#undef IS_PREF_MUTED - #undef MUTE_DEAF #undef MUTE_PREF #undef MUTE_RANGE diff --git a/code/datums/components/leanable.dm b/code/datums/components/leanable.dm index bc0994dcdcd9d..f4a2c04c3cead 100644 --- a/code/datums/components/leanable.dm +++ b/code/datums/components/leanable.dm @@ -81,8 +81,8 @@ * * leaning_offset - pixel offset to apply on the mob when leaning */ /mob/living/proc/start_leaning(atom/lean_target, leaning_offset) - var/new_x = lean_target.pixel_x + base_pixel_x + body_position_pixel_x_offset - var/new_y = lean_target.pixel_y + base_pixel_y + body_position_pixel_y_offset + var/new_x = 0 + var/new_y = 0 switch(dir) if(SOUTH) new_y += leaning_offset @@ -93,7 +93,7 @@ if(EAST) new_x -= leaning_offset - animate(src, 0.2 SECONDS, pixel_x = new_x, pixel_y = new_y) + add_offsets(LEANING_TRAIT, x_add = new_x, y_add = new_y) add_traits(list(TRAIT_UNDENSE, TRAIT_EXPANDED_FOV), LEANING_TRAIT) visible_message( span_notice("[src] leans against [lean_target]."), @@ -129,7 +129,7 @@ COMSIG_ATOM_POST_DIR_CHANGE, COMSIG_MOVABLE_TELEPORTED, )) - animate(src, 0.2 SECONDS, pixel_x = base_pixel_x + body_position_pixel_x_offset, pixel_y = base_pixel_y + body_position_pixel_y_offset) + remove_offsets(LEANING_TRAIT) remove_traits(list(TRAIT_UNDENSE, TRAIT_EXPANDED_FOV), LEANING_TRAIT) SEND_SIGNAL(src, COMSIG_LIVING_STOPPED_LEANING) update_fov() diff --git a/code/datums/components/pellet_cloud.dm b/code/datums/components/pellet_cloud.dm index 367ab18f60ee9..8ecba68a510b2 100644 --- a/code/datums/components/pellet_cloud.dm +++ b/code/datums/components/pellet_cloud.dm @@ -310,6 +310,14 @@ var/w_bonus = wound_info_by_part[hit_part][CLOUD_POSITION_W_BONUS] var/bw_bonus = wound_info_by_part[hit_part][CLOUD_POSITION_BW_BONUS] var/wounding_type = (initial(proj_type.damage_type) == BRUTE) ? WOUND_BLUNT : WOUND_BURN // sharpness is handled in the wound rolling + var/sharpness = initial(proj_type.sharpness) + + if(wounding_type == WOUND_BLUNT && sharpness) + if(sharpness & SHARP_EDGED) + wounding_type = WOUND_SLASH + else if (sharpness & SHARP_POINTY) + wounding_type = WOUND_PIERCE + wound_info_by_part -= hit_part // technically this only checks armor worn the moment that all the pellets resolve rather than as each one hits you, @@ -322,7 +330,7 @@ armor_factor *= ARMOR_WEAKENED_MULTIPLIER damage_dealt *= max(0, 1 - armor_factor*0.01) - hit_part.painless_wound_roll(wounding_type, damage_dealt, w_bonus, bw_bonus, initial(proj_type.sharpness)) + hit_part.painless_wound_roll(wounding_type, damage_dealt, w_bonus, bw_bonus, sharpness) var/limb_hit_text = "" if(hit_part) diff --git a/code/datums/components/riding/riding.dm b/code/datums/components/riding/riding.dm index 428b2a15bd18a..3ca466ca55a8a 100644 --- a/code/datums/components/riding/riding.dm +++ b/code/datums/components/riding/riding.dm @@ -1,3 +1,8 @@ +/// Offsets applied for people riding something +#define RIDING_SOURCE "riding" +/// Offsets applied for something being ridden +#define BEING_RIDDEN_SOURCE "being_ridden" + /** * This is the riding component, which is applied to a movable atom by the [ridable element][/datum/element/ridable] when a mob is successfully buckled to said movable. * @@ -9,22 +14,14 @@ /datum/component/riding dupe_mode = COMPONENT_DUPE_UNIQUE - ///tick delay between movements, lower = faster, higher = slower + /// Tick delay between movements, lower = faster, higher = slower var/vehicle_move_delay = 2 - /** * If the driver needs a certain item in hand (or inserted, for vehicles) to drive this. For vehicles, this must be duplicated on the actual vehicle object in their * [/obj/vehicle/var/key_type] variable because the vehicle objects still have a few special checks/functions of their own I'm not porting over to the riding component * quite yet. Make sure if you define it on the vehicle, you define it here too. */ var/keytype - - /// position_of_user = list(dir = list(px, py)), or RIDING_OFFSET_ALL for a generic one. - var/list/riding_offsets = list() - /// ["[DIRECTION]"] = layer. Don't set it for a direction for default, set a direction to null for no change. - var/list/directional_vehicle_layers = list() - /// same as above but instead of layer you have a list(px, py) - var/list/directional_vehicle_offsets = list() /// allow typecache for only certain turfs, forbid to allow all but those. allow only certain turfs will take precedence. var/list/allowed_turf_typecache /// allow typecache for only certain turfs, forbid to allow all but those. allow only certain turfs will take precedence. @@ -47,11 +44,10 @@ COOLDOWN_DECLARE(vehicle_move_cooldown) -/datum/component/riding/Initialize(mob/living/riding_mob, force = FALSE, buckle_mob_flags= NONE) +/datum/component/riding/Initialize(mob/living/riding_mob, force = FALSE, buckle_mob_flags = NONE) if(!ismovable(parent)) return COMPONENT_INCOMPATIBLE - handle_specials(riding_mob) riding_mob.updating_glide_size = FALSE ride_check_flags |= buckle_mob_flags @@ -72,25 +68,21 @@ if(!can_force_unbuckle) RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, PROC_REF(force_unbuckle)) -/** - * This proc handles all of the proc calls to things like set_vehicle_dir_layer() that a type of riding datum needs to call on creation - * - * The original riding component had these procs all called from the ridden object itself through the use of GetComponent() and LoadComponent() - * This was obviously problematic for componentization, but while lots of the variables being set were able to be moved to component variables, - * the proc calls couldn't be. Thus, anything that has to do an initial proc call should be handled here. - */ -/datum/component/riding/proc/handle_specials() - return - /// This proc is called when a rider unbuckles, whether they chose to or not. If there's no more riders, this will be the riding component's death knell. /datum/component/riding/proc/vehicle_mob_unbuckle(datum/source, mob/living/rider, force = FALSE) SIGNAL_HANDLER + restore_rider_layer_and_offsets(rider) handle_unbuckle(rider) -/datum/component/riding/proc/handle_unbuckle(mob/living/rider) var/atom/movable/movable_parent = parent - restore_position(rider) + if(movable_parent.has_buckled_mobs()) + update_parent_layer_and_offsets(movable_parent.dir, animate = TRUE) + else + restore_parent_layer_and_offsets() + qdel(src) + +/datum/component/riding/proc/handle_unbuckle(mob/living/rider) unequip_buckle_inhands(rider) rider.updating_glide_size = TRUE UnregisterSignal(rider, COMSIG_LIVING_TRY_PULL) @@ -98,18 +90,17 @@ if (HAS_TRAIT(parent, trait)) REMOVE_TRAIT(rider, trait, REF(src)) rider.remove_traits(rider_traits, REF(src)) - if(!movable_parent.has_buckled_mobs()) - qdel(src) /// This proc is called when a rider buckles, allowing for offsets to be set properly /datum/component/riding/proc/vehicle_mob_buckle(datum/source, mob/living/rider, force = FALSE) SIGNAL_HANDLER var/atom/movable/movable_parent = parent - handle_vehicle_layer(movable_parent.dir) - handle_vehicle_offsets(movable_parent.dir) + update_parent_layer_and_offsets(movable_parent.dir, animate = TRUE) + handle_buckle(rider) - if(rider.pulling == source) +/datum/component/riding/proc/handle_buckle(mob/living/rider) + if(rider.pulling == parent) rider.stop_pulling() RegisterSignal(rider, COMSIG_LIVING_TRY_PULL, PROC_REF(on_rider_try_pull)) @@ -117,7 +108,6 @@ if (HAS_TRAIT(parent, trait)) ADD_TRAIT(rider, trait, REF(src)) rider.add_traits(rider_traits, REF(src)) - post_vehicle_mob_buckle(movable_parent, rider) /// This proc is called when the rider attempts to grab the thing they're riding, preventing them from doing so. /datum/component/riding/proc/on_rider_try_pull(mob/living/rider_pulling, atom/movable/target, force) @@ -127,24 +117,6 @@ ridden.balloon_alert(rider_pulling, "not while riding it!") return COMSIG_LIVING_CANCEL_PULL -///any behavior we want to happen after buckling the mob -/datum/component/riding/proc/post_vehicle_mob_buckle(atom/movable/ridden, atom/movable/rider) - return TRUE - -/// Some ridable atoms may want to only show on top of the rider in certain directions, like wheelchairs -/datum/component/riding/proc/handle_vehicle_layer(dir) - var/atom/movable/AM = parent - var/static/list/defaults = list(TEXT_NORTH = OBJ_LAYER, TEXT_SOUTH = ABOVE_MOB_LAYER, TEXT_EAST = ABOVE_MOB_LAYER, TEXT_WEST = ABOVE_MOB_LAYER) - . = defaults["[dir]"] - if(directional_vehicle_layers["[dir]"]) - . = directional_vehicle_layers["[dir]"] - if(isnull(.)) //you can set it to null to not change it. - . = AM.layer - AM.layer = . - -/datum/component/riding/proc/set_vehicle_dir_layer(dir, layer) - directional_vehicle_layers["[dir]"] = layer - /// This is called after the ridden atom is successfully moved and is used to handle icon stuff /datum/component/riding/proc/vehicle_moved(datum/source, oldloc, dir, forced) SIGNAL_HANDLER @@ -157,8 +129,7 @@ ride_check(buckled_mob) if(QDELETED(src)) return // runtimed with piggy's without this, look into this more - handle_vehicle_offsets(dir) - handle_vehicle_layer(dir) + update_parent_layer_and_offsets(dir) /// Turning is like moving /datum/component/riding/proc/vehicle_turned(datum/source, _old_dir, new_dir) @@ -173,61 +144,80 @@ /datum/component/riding/proc/ride_check(mob/living/rider, consequences = TRUE) return TRUE -/datum/component/riding/proc/handle_vehicle_offsets(dir) - var/atom/movable/AM = parent - var/AM_dir = "[dir]" - var/passindex = 0 - if(!AM.has_buckled_mobs()) +#define GET_X_OFFSET(offsets) (length(offsets) >= 1 ? offsets[1] : 0) +#define GET_Y_OFFSET(offsets) (length(offsets) >= 2 ? offsets[2] : 0) +#define GET_LAYER(offsets, default) (length(offsets) >= 3 ? offsets[3] : default) + +/datum/component/riding/proc/update_parent_layer_and_offsets(dir, animate = FALSE) + var/atom/movable/seat = parent + if(!seat.has_buckled_mobs()) return - for(var/m in AM.buckled_mobs) + var/passindex = 0 + for(var/mob/living/buckled_mob as anything in seat.buckled_mobs) passindex++ - var/mob/living/buckled_mob = m - var/list/offsets = get_offsets(passindex) - buckled_mob.setDir(dir) - dir_loop: - for(var/offsetdir in offsets) - if(offsetdir == AM_dir) - var/list/diroffsets = offsets[offsetdir] - buckled_mob.pixel_x = diroffsets[1] - if(diroffsets.len >= 2) - buckled_mob.pixel_y = diroffsets[2] - if(diroffsets.len == 3) - buckled_mob.layer = diroffsets[3] - break dir_loop - var/static/list/default_vehicle_pixel_offsets = list(TEXT_NORTH = list(0, 0), TEXT_SOUTH = list(0, 0), TEXT_EAST = list(0, 0), TEXT_WEST = list(0, 0)) - var/px = default_vehicle_pixel_offsets[AM_dir] - var/py = default_vehicle_pixel_offsets[AM_dir] - if(directional_vehicle_offsets[AM_dir]) - if(isnull(directional_vehicle_offsets[AM_dir])) - px = AM.pixel_x - py = AM.pixel_y - else - px = directional_vehicle_offsets[AM_dir][1] - py = directional_vehicle_offsets[AM_dir][2] - AM.pixel_x = px - AM.pixel_y = py - -/datum/component/riding/proc/set_vehicle_dir_offsets(dir, x, y) - directional_vehicle_offsets["[dir]"] = list(x, y) - -//Override this to set your vehicle's various pixel offsets -/datum/component/riding/proc/get_offsets(pass_index) // list(dir = x, y, layer) - . = list(TEXT_NORTH = list(0, 0), TEXT_SOUTH = list(0, 0), TEXT_EAST = list(0, 0), TEXT_WEST = list(0, 0)) - if(riding_offsets["[pass_index]"]) - . = riding_offsets["[pass_index]"] - else if(riding_offsets["[RIDING_OFFSET_ALL]"]) - . = riding_offsets["[RIDING_OFFSET_ALL]"] - -/datum/component/riding/proc/set_riding_offsets(index, list/offsets) - if(!islist(offsets)) - return FALSE - riding_offsets["[index]"] = offsets - -/datum/component/riding/proc/set_vehicle_offsets(list/offsets) - if(!islist(offsets)) - return FALSE - directional_vehicle_offsets = offsets + update_rider_layer_and_offsets(dir, passindex, buckled_mob) + + var/list/offsets = get_parent_offsets_and_layers()?["[dir]"] + var/px = GET_X_OFFSET(offsets) + var/py = GET_Y_OFFSET(offsets) + var/layer = GET_LAYER(offsets, seat.layer) + + if(isliving(seat)) + var/mob/living/living_seat = seat + living_seat.add_offsets(BEING_RIDDEN_SOURCE, x_add = px, y_add = py, animate = animate) + else + seat.pixel_x = px + seat.base_pixel_x + seat.pixel_y = py + seat.base_pixel_y + seat.layer = layer + +/datum/component/riding/proc/update_rider_layer_and_offsets(dir, passindex, mob/living/rider, animate = FALSE) + if(rider.dir != dir) + rider.setDir(dir) + + var/list/diroffsets = get_rider_offsets_and_layers(passindex, rider)?["[dir]"] + var/x_offset = GET_X_OFFSET(diroffsets) + var/y_offset = GET_Y_OFFSET(diroffsets) + var/layer = GET_LAYER(diroffsets, rider.layer) + + // if they are intended to be buckled, offset their existing offset + var/atom/movable/seat = parent + if(seat.buckle_lying && rider.body_position == LYING_DOWN) + y_offset += (-1 * PIXEL_Y_OFFSET_LYING) + + rider.add_offsets(RIDING_SOURCE, x_add = x_offset, y_add = y_offset, animate = animate) + rider.layer = layer + +#undef GET_X_OFFSET +#undef GET_Y_OFFSET +#undef GET_LAYER + +/** + * Determines where riders get offset while riding + * + * * pass_index: The index of the rider in the list of buckled mobs + * * mob/offsetter: The mob that is being offset + */ +/datum/component/riding/proc/get_rider_offsets_and_layers(pass_index, mob/offsetter) as /list // list(dir = x, y, layer) + RETURN_TYPE(/list) + return list( + TEXT_NORTH = list(0, 0), + TEXT_SOUTH = list(0, 0), + TEXT_EAST = list(0, 0), + TEXT_WEST = list(0, 0), + ) + +/** + * Determines where the parent gets offset while riders are riding + */ +/datum/component/riding/proc/get_parent_offsets_and_layers() as /list // list(dir = x, y, layer) + RETURN_TYPE(/list) + return list( + TEXT_NORTH = list(0, 0, OBJ_LAYER), + TEXT_SOUTH = list(0, 0, ABOVE_MOB_LAYER), + TEXT_EAST = list(0, 0, ABOVE_MOB_LAYER), + TEXT_WEST = list(0, 0, ABOVE_MOB_LAYER), + ) /** * This proc is used to see if we have the appropriate key to drive this atom, if such a key is needed. Returns FALSE if we don't have what we need to drive. @@ -245,15 +235,22 @@ return user.is_holding_item_of_type(keytype) //BUCKLE HOOKS -/datum/component/riding/proc/restore_position(mob/living/buckled_mob) - if(isnull(buckled_mob)) - return - buckled_mob.pixel_x = buckled_mob.base_pixel_x - buckled_mob.pixel_y = buckled_mob.base_pixel_y +/datum/component/riding/proc/restore_rider_layer_and_offsets(mob/living/buckled_mob) + buckled_mob.remove_offsets(RIDING_SOURCE) + buckled_mob.layer = initial(buckled_mob.layer) var/atom/source = parent SET_PLANE_EXPLICIT(buckled_mob, initial(buckled_mob.plane), source) - if(buckled_mob.client) - buckled_mob.client.view_size.resetToDefault() + buckled_mob.client?.view_size.resetToDefault() + +/datum/component/riding/proc/restore_parent_layer_and_offsets() + var/atom/movable/seat = parent + if(isliving(seat)) + var/mob/living/living_seat = seat + living_seat.remove_offsets(BEING_RIDDEN_SOURCE) + else + seat.pixel_x = seat.base_pixel_x + seat.pixel_y = seat.base_pixel_y + seat.layer = initial(seat.layer) //MOVEMENT /datum/component/riding/proc/turf_check(turf/next, turf/current) @@ -327,3 +324,6 @@ SIGNAL_HANDLER for (var/mob/passenger as anything in ridden.buckled_mobs) passenger.Bump(supermatter) + +#undef RIDING_SOURCE +#undef BEING_RIDDEN_SOURCE diff --git a/code/datums/components/riding/riding_mob.dm b/code/datums/components/riding/riding_mob.dm index f5162bf918a35..d3b8e2413ad41 100644 --- a/code/datums/components/riding/riding_mob.dm +++ b/code/datums/components/riding/riding_mob.dm @@ -21,7 +21,7 @@ living_parent.stop_pulling() // was only used on humans previously, may change some other behavior log_riding(living_parent, riding_mob) riding_mob.set_glide_size(living_parent.glide_size) - handle_vehicle_offsets(living_parent.dir) + update_parent_layer_and_offsets(living_parent.dir) if(can_use_abilities) setup_abilities(riding_mob) @@ -108,32 +108,20 @@ return COMPONENT_DRIVER_BLOCK_MOVE var/mob/living/living_parent = parent step(living_parent, direction) - var/modified_move_cooldown = vehicle_move_cooldown var/modified_move_delay = vehicle_move_delay - if(ishuman(user) && HAS_TRAIT(user, TRAIT_ROUGHRIDER)) // YEEHAW! - var/mob/living/carbon/human/rough_rider = user - var/ride_benefit = null - if(HAS_TRAIT(rough_rider, TRAIT_PRIMITIVE)) // closer to a beast than a man; you don't need to think to ride! - ride_benefit = SANITY_LEVEL_GREAT - else - ride_benefit = rough_rider.mob_mood.sanity_level - switch(ride_benefit) + if(HAS_TRAIT(user, TRAIT_ROUGHRIDER)) // YEEHAW! + switch(HAS_TRAIT(user, TRAIT_PRIMITIVE) ? SANITY_LEVEL_GREAT : user.mob_mood?.sanity_level) if(SANITY_LEVEL_GREAT) - modified_move_cooldown *= 0.8 modified_move_delay *= 0.8 if(SANITY_LEVEL_NEUTRAL) - modified_move_cooldown *= 0.9 modified_move_delay *= 0.9 if(SANITY_LEVEL_DISTURBED) - modified_move_cooldown *= 1 modified_move_delay *= 1 if(SANITY_LEVEL_CRAZY) - modified_move_cooldown *= 1.1 modified_move_delay *= 1.1 if(SANITY_LEVEL_INSANE) - modified_move_cooldown *= 1.2 modified_move_delay *= 1.2 - COOLDOWN_START(src, vehicle_move_cooldown = modified_move_cooldown, modified_move_delay) + COOLDOWN_START(src, vehicle_move_cooldown, modified_move_delay) return ..() /// Yeets the rider off, used for animals and cyborgs, redefined for humans who shove their piggyback rider off @@ -218,7 +206,8 @@ else if(ride_check_flags & CARRIER_NEEDS_ARM) // fireman human_parent.buckle_lying = 90 -/datum/component/riding/creature/post_vehicle_mob_buckle(mob/living/ridden, mob/living/rider) +/datum/component/riding/creature/handle_buckle(mob/living/rider) + var/mob/living/ridden = parent if(!require_minigame || ridden.faction.Find(REF(rider))) return ridden.Shake(duration = 2 SECONDS) @@ -262,49 +251,55 @@ /datum/component/riding/creature/human/proc/check_carrier_fall_over(mob/living/carbon/human/human_parent) SIGNAL_HANDLER - for(var/i in human_parent.buckled_mobs) - var/mob/living/rider = i + for(var/mob/living/rider as anything in human_parent.buckled_mobs) human_parent.unbuckle_mob(rider) rider.Paralyze(1 SECONDS) rider.Knockdown(4 SECONDS) - human_parent.visible_message(span_danger("[rider] topples off of [human_parent] as they both fall to the ground!"), \ - span_warning("You fall to the ground, bringing [rider] with you!"), span_hear("You hear two consecutive thuds."), COMBAT_MESSAGE_RANGE, ignored_mobs=rider) + human_parent.visible_message( + span_danger("[rider] topples off of [human_parent] as they both fall to the ground!"), + span_warning("You fall to the ground, bringing [rider] with you!"), + span_hear("You hear two consecutive thuds."), + COMBAT_MESSAGE_RANGE, + ignored_mobs = rider, + visible_message_flags = ALWAYS_SHOW_SELF_MESSAGE, + ) to_chat(rider, span_danger("[human_parent] falls to the ground, bringing you with [human_parent.p_them()]!")) -/datum/component/riding/creature/human/handle_vehicle_layer(dir) - var/atom/movable/AM = parent - if(!AM.buckled_mobs || !AM.buckled_mobs.len) - AM.layer = MOB_LAYER - return - - for(var/mob/M in AM.buckled_mobs) //ensure proper layering of piggyback and carry, sometimes weird offsets get applied - M.layer = MOB_LAYER - - if(!AM.buckle_lying) // rider is vertical, must be piggybacking - if(dir == SOUTH) - AM.layer = MOB_ABOVE_PIGGYBACK_LAYER - else - AM.layer = MOB_BELOW_PIGGYBACK_LAYER - else // laying flat, we must be firemanning the rider - if(dir == NORTH) - AM.layer = MOB_BELOW_PIGGYBACK_LAYER - else - AM.layer = MOB_ABOVE_PIGGYBACK_LAYER - -/datum/component/riding/creature/human/get_offsets(pass_index) - var/mob/living/carbon/human/H = parent - if(H.buckle_lying) - return list(TEXT_NORTH = list(0, 6), TEXT_SOUTH = list(0, 6), TEXT_EAST = list(0, 6), TEXT_WEST = list(0, 6)) - else - return list(TEXT_NORTH = list(0, 6), TEXT_SOUTH = list(0, 6), TEXT_EAST = list(-6, 4), TEXT_WEST = list( 6, 4)) - -/datum/component/riding/creature/human/force_dismount(mob/living/dismounted_rider, throw_range = 8, throw_speed = 3, gentle = FALSE) - var/atom/movable/AM = parent - AM.unbuckle_mob(dismounted_rider) - dismounted_rider.Paralyze(1 SECONDS) - dismounted_rider.Knockdown(4 SECONDS) - dismounted_rider.visible_message(span_warning("[AM] pushes [dismounted_rider] off of [AM.p_them()]!"), \ - span_warning("[AM] pushes you off of [AM.p_them()]!")) +/datum/component/riding/creature/human/get_rider_offsets_and_layers(pass_index, mob/offsetter) + var/mob/living/carbon/human/seat = parent + // fireman carry + if(seat.buckle_lying) + return list( + TEXT_NORTH = list(0, 6, MOB_ABOVE_PIGGYBACK_LAYER), + TEXT_SOUTH = list(0, 6, MOB_BELOW_PIGGYBACK_LAYER), + TEXT_EAST = list(0, 6, MOB_BELOW_PIGGYBACK_LAYER), + TEXT_WEST = list(0, 6, MOB_BELOW_PIGGYBACK_LAYER), + ) + // piggyback + return list( + TEXT_NORTH = list( 0, 8, MOB_ABOVE_PIGGYBACK_LAYER), + TEXT_SOUTH = list( 0, 8, MOB_BELOW_PIGGYBACK_LAYER), + TEXT_EAST = list(-6, 8, MOB_BELOW_PIGGYBACK_LAYER), + TEXT_WEST = list( 6, 8, MOB_BELOW_PIGGYBACK_LAYER), + ) + +/datum/component/riding/creature/human/get_parent_offsets_and_layers() + return list( + TEXT_NORTH = list(0, 0), + TEXT_SOUTH = list(0, 0), + TEXT_EAST = list(0, 0), + TEXT_WEST = list(0, 0), + ) + +/datum/component/riding/creature/human/force_dismount(mob/living/rider, throw_range = 8, throw_speed = 3, gentle = FALSE) + var/atom/movable/seat = parent + seat.unbuckle_mob(rider) + rider.Paralyze(1 SECONDS) + rider.Knockdown(4 SECONDS) + rider.visible_message( + span_warning("[seat] pushes [rider] off of [seat.p_them()]!"), + span_warning("[seat] pushes you off of [seat.p_them()]!"), + ) //Now onto cyborg riding// @@ -320,65 +315,88 @@ Unbuckle(user) to_chat(user, span_warning("You can't grab onto [robot_parent] with no hands!")) -/datum/component/riding/creature/cyborg/handle_vehicle_layer(dir) - var/atom/movable/robot_parent = parent - if(dir == SOUTH) - robot_parent.layer = MOB_ABOVE_PIGGYBACK_LAYER - else - robot_parent.layer = MOB_BELOW_PIGGYBACK_LAYER - -/datum/component/riding/creature/cyborg/get_offsets(pass_index) // list(dir = x, y, layer) - return list(TEXT_NORTH = list(0, 4), TEXT_SOUTH = list(0, 4), TEXT_EAST = list(-6, 3), TEXT_WEST = list( 6, 3)) - -/datum/component/riding/creature/cyborg/handle_vehicle_offsets(dir) +/datum/component/riding/creature/cyborg/get_rider_offsets_and_layers(pass_index, mob/offsetter) var/mob/living/silicon/robot/robot_parent = parent + return robot_parent.model?.ride_offsets || DEFAULT_ROBOT_RIDING_OFFSETS - for(var/mob/living/rider in robot_parent.buckled_mobs) - rider.setDir(dir) - if(istype(robot_parent.model)) - rider.pixel_x = robot_parent.model.ride_offset_x[dir2text(dir)] - rider.pixel_y = robot_parent.model.ride_offset_y[dir2text(dir)] +/datum/component/riding/creature/cyborg/get_parent_offsets_and_layers() + return list( + TEXT_NORTH = list(0, 0, MOB_BELOW_PIGGYBACK_LAYER), + TEXT_SOUTH = list(0, 0, MOB_ABOVE_PIGGYBACK_LAYER), + TEXT_EAST = list(0, 0, MOB_ABOVE_PIGGYBACK_LAYER), + TEXT_WEST = list(0, 0, MOB_ABOVE_PIGGYBACK_LAYER), + ) //now onto every other ridable mob// - -/datum/component/riding/creature/mulebot/handle_specials() - . = ..() - var/atom/movable/movable_parent = parent - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 12), TEXT_SOUTH = list(0, 12), TEXT_EAST = list(0, 12), TEXT_WEST = list(0, 12))) - set_vehicle_dir_layer(SOUTH, movable_parent.layer) //vehicles default to ABOVE_MOB_LAYER while moving, let's make sure that doesn't happen while a mob is riding us. - set_vehicle_dir_layer(NORTH, movable_parent.layer) - set_vehicle_dir_layer(EAST, movable_parent.layer) - set_vehicle_dir_layer(WEST, movable_parent.layer) - - -/datum/component/riding/creature/cow/handle_specials() - . = ..() - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 8), TEXT_SOUTH = list(0, 8), TEXT_EAST = list(-2, 8), TEXT_WEST = list(2, 8))) - set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER) - set_vehicle_dir_layer(NORTH, OBJ_LAYER) - set_vehicle_dir_layer(EAST, OBJ_LAYER) - set_vehicle_dir_layer(WEST, OBJ_LAYER) - -/datum/component/riding/creature/pig/handle_specials() - . = ..() - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 8), TEXT_SOUTH = list(0, 8), TEXT_EAST = list(-2, 8), TEXT_WEST = list(2, 8))) - set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER) - set_vehicle_dir_layer(NORTH, OBJ_LAYER) - set_vehicle_dir_layer(EAST, OBJ_LAYER) - set_vehicle_dir_layer(WEST, OBJ_LAYER) - -/datum/component/riding/creature/pony/handle_specials() - . = ..() - vehicle_move_delay = 1.5 - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 9), TEXT_SOUTH = list(0, 9), TEXT_EAST = list(-2, 9), TEXT_WEST = list(2, 9))) - set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER) - set_vehicle_dir_layer(NORTH, OBJ_LAYER) - set_vehicle_dir_layer(EAST, OBJ_LAYER) - set_vehicle_dir_layer(WEST, OBJ_LAYER) +/datum/component/riding/creature/mulebot + +/datum/component/riding/creature/mulebot/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list(0, 12), + TEXT_SOUTH = list(0, 12), + TEXT_EAST = list(0, 12), + TEXT_WEST = list(0, 12), + ) + +/datum/component/riding/creature/mulebot/get_parent_offsets_and_layers() + return null + +/datum/component/riding/creature/cow + +/datum/component/riding/creature/cow/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list( 0, 8), + TEXT_SOUTH = list( 0, 8), + TEXT_EAST = list(-2, 8), + TEXT_WEST = list( 2, 8), + ) + +/datum/component/riding/creature/cow/get_parent_offsets_and_layers() + return list( + TEXT_NORTH = list(0, 0, ABOVE_MOB_LAYER), + TEXT_SOUTH = list(0, 0, OBJ_LAYER), + TEXT_EAST = list(0, 0, OBJ_LAYER), + TEXT_WEST = list(0, 0, OBJ_LAYER), + ) + +/datum/component/riding/creature/pig + +/datum/component/riding/creature/pig/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list( 0, 8), + TEXT_SOUTH = list( 0, 8), + TEXT_EAST = list(-2, 8), + TEXT_WEST = list( 2, 8), + ) + +/datum/component/riding/creature/pig/get_parent_offsets_and_layers() + return list( + TEXT_NORTH = list(0, 0, ABOVE_MOB_LAYER), + TEXT_SOUTH = list(0, 0, OBJ_LAYER), + TEXT_EAST = list(0, 0, OBJ_LAYER), + TEXT_WEST = list(0, 0, OBJ_LAYER), + ) /datum/component/riding/creature/pony + vehicle_move_delay = 1.5 COOLDOWN_DECLARE(pony_trot_cooldown) +/datum/component/riding/creature/pony/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list( 0, 9), + TEXT_SOUTH = list( 0, 9), + TEXT_EAST = list(-2, 9), + TEXT_WEST = list( 2, 9), + ) + +/datum/component/riding/creature/pony/get_parent_offsets_and_layers() + return list( + TEXT_NORTH = list(0, 0, ABOVE_MOB_LAYER), + TEXT_SOUTH = list(0, 0, OBJ_LAYER), + TEXT_EAST = list(0, 0, OBJ_LAYER), + TEXT_WEST = list(0, 0, OBJ_LAYER), + ) + /datum/component/riding/creature/pony/driver_move(atom/movable/movable_parent, mob/living/user, direction) . = ..() @@ -392,51 +410,80 @@ playsound(movable_parent, 'sound/mobs/non-humanoids/pony/clown_gallup.ogg', 50) COOLDOWN_START(src, pony_trot_cooldown, 500 MILLISECONDS) -/datum/component/riding/creature/bear/handle_specials() - . = ..() - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(1, 8), TEXT_SOUTH = list(1, 8), TEXT_EAST = list(-3, 6), TEXT_WEST = list(3, 6))) - set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER) - set_vehicle_dir_layer(NORTH, OBJ_LAYER) - set_vehicle_dir_layer(EAST, ABOVE_MOB_LAYER) - set_vehicle_dir_layer(WEST, ABOVE_MOB_LAYER) +/datum/component/riding/creature/bear +/datum/component/riding/creature/bear/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list( 1, 8), + TEXT_SOUTH = list( 1, 8), + TEXT_EAST = list(-3, 6), + TEXT_WEST = list( 3, 6), + ) + +/datum/component/riding/creature/bear/get_parent_offsets_and_layers() + return list( + TEXT_NORTH = list(0, 0, ABOVE_MOB_LAYER), + TEXT_SOUTH = list(0, 0, OBJ_LAYER), + TEXT_EAST = list(0, 0, ABOVE_MOB_LAYER), + TEXT_WEST = list(0, 0, ABOVE_MOB_LAYER), + ) /datum/component/riding/creature/carp override_allow_spacemove = TRUE -/datum/component/riding/creature/carp/handle_specials() - . = ..() - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 13), TEXT_SOUTH = list(0, 15), TEXT_EAST = list(-2, 12), TEXT_WEST = list(2, 12))) - set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER) - set_vehicle_dir_layer(NORTH, OBJ_LAYER) - set_vehicle_dir_layer(EAST, OBJ_LAYER) - set_vehicle_dir_layer(WEST, OBJ_LAYER) - - -/datum/component/riding/creature/megacarp/handle_specials() - . = ..() - var/atom/movable/movable_parent = parent - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(1, 8), TEXT_SOUTH = list(1, 8), TEXT_EAST = list(-3, 6), TEXT_WEST = list(3, 6))) - set_vehicle_dir_offsets(SOUTH, movable_parent.pixel_x, 0) - set_vehicle_dir_offsets(NORTH, movable_parent.pixel_x, 0) - set_vehicle_dir_offsets(EAST, movable_parent.pixel_x, 0) - set_vehicle_dir_offsets(WEST, movable_parent.pixel_x, 0) - set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER) - set_vehicle_dir_layer(NORTH, OBJ_LAYER) - set_vehicle_dir_layer(EAST, OBJ_LAYER) - set_vehicle_dir_layer(WEST, OBJ_LAYER) +/datum/component/riding/creature/carp/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list(0, 13), + TEXT_SOUTH = list(0, 15), + TEXT_EAST = list(-2, 12), + TEXT_WEST = list( 2, 12), + ) + +/datum/component/riding/creature/carp/get_parent_offsets_and_layers() + return list( + TEXT_NORTH = list(0, 0, ABOVE_MOB_LAYER), + TEXT_SOUTH = list(0, 0, OBJ_LAYER), + TEXT_EAST = list(0, 0, OBJ_LAYER), + TEXT_WEST = list(0, 0, OBJ_LAYER), + ) + +/datum/component/riding/creature/megacarp + +/datum/component/riding/creature/megacarp/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list(1, 8), + TEXT_SOUTH = list(1, 8), + TEXT_EAST = list(-3, 6), + TEXT_WEST = list(3, 6), + ) + +/datum/component/riding/creature/megacarp/get_parent_offsets_and_layers() + return list( + TEXT_NORTH = list(0, 0, ABOVE_MOB_LAYER), + TEXT_SOUTH = list(0, 0, OBJ_LAYER), + TEXT_EAST = list(0, 0, OBJ_LAYER), + TEXT_WEST = list(0, 0, OBJ_LAYER), + ) /datum/component/riding/creature/vatbeast override_allow_spacemove = TRUE can_use_abilities = TRUE -/datum/component/riding/creature/vatbeast/handle_specials() - . = ..() - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 15), TEXT_SOUTH = list(0, 15), TEXT_EAST = list(-10, 15), TEXT_WEST = list(10, 15))) - set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER) - set_vehicle_dir_layer(NORTH, OBJ_LAYER) - set_vehicle_dir_layer(EAST, OBJ_LAYER) - set_vehicle_dir_layer(WEST, OBJ_LAYER) +/datum/component/riding/creature/vatbeast/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list(0, 15), + TEXT_SOUTH = list(0, 15), + TEXT_EAST = list(-10, 15), + TEXT_WEST = list(10, 15), + ) + +/datum/component/riding/creature/vatbeast/get_parent_offsets_and_layers() + return list( + TEXT_NORTH = list(0, 0, ABOVE_MOB_LAYER), + TEXT_SOUTH = list(0, 0, OBJ_LAYER), + TEXT_EAST = list(0, 0, OBJ_LAYER), + TEXT_WEST = list(0, 0, OBJ_LAYER), + ) /datum/component/riding/creature/goliath keytype = /obj/item/key/lasso @@ -456,38 +503,58 @@ goliath.remove_movespeed_modifier(/datum/movespeed_modifier/goliath_mount) return ..() -/datum/component/riding/creature/goliath/handle_specials() - . = ..() - set_vehicle_offsets(list(TEXT_NORTH = list(-12, 0), TEXT_SOUTH = list(-12, 0), TEXT_EAST = list(-12, 0), TEXT_WEST = list(-12, 0))) - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 12), TEXT_SOUTH = list(0, 12), TEXT_EAST = list(-4, 12), TEXT_WEST = list(3, 12))) - set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER) - set_vehicle_dir_layer(NORTH, ABOVE_MOB_LAYER) - set_vehicle_dir_layer(EAST, OBJ_LAYER) - set_vehicle_dir_layer(WEST, OBJ_LAYER) - -/datum/component/riding/creature/glutton/handle_specials() - . = ..() - var/atom/movable/movable_parent = parent - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 24), TEXT_SOUTH = list(0, 24), TEXT_EAST = list(-16, 24), TEXT_WEST = list(16, 24))) - set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER) - set_vehicle_dir_layer(NORTH, OBJ_LAYER) - set_vehicle_dir_layer(EAST, ABOVE_MOB_LAYER) - set_vehicle_dir_layer(WEST, ABOVE_MOB_LAYER) - set_vehicle_dir_offsets(SOUTH, movable_parent.pixel_x, 0) - set_vehicle_dir_offsets(NORTH, movable_parent.pixel_x, 0) - set_vehicle_dir_offsets(EAST, movable_parent.pixel_x, 0) - set_vehicle_dir_offsets(WEST, movable_parent.pixel_x, 0) +/datum/component/riding/creature/goliath/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list( 0, 12), + TEXT_SOUTH = list( 0, 12), + TEXT_EAST = list(-4, 12), + TEXT_WEST = list( 3, 12), + ) + +/datum/component/riding/creature/goliath/get_parent_offsets_and_layers() + return list( + TEXT_NORTH = list(-12, 0, ABOVE_MOB_LAYER), + TEXT_SOUTH = list(-12, 0, ABOVE_MOB_LAYER), + TEXT_EAST = list(-12, 0, OBJ_LAYER), + TEXT_WEST = list(-12, 0, OBJ_LAYER), + ) + +/datum/component/riding/creature/glutton + +/datum/component/riding/creature/glutton/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list( 0, 24), + TEXT_SOUTH = list( 0, 24), + TEXT_EAST = list(-16, 24), + TEXT_WEST = list( 16, 24), + ) + +/datum/component/riding/creature/glutton/get_parent_offsets_and_layers() + return list( + TEXT_NORTH = list(0, 0, ABOVE_MOB_LAYER), + TEXT_SOUTH = list(0, 0, OBJ_LAYER), + TEXT_EAST = list(0, 0, ABOVE_MOB_LAYER), + TEXT_WEST = list(0, 0, ABOVE_MOB_LAYER), + ) /datum/component/riding/creature/guardian can_be_driven = FALSE -/datum/component/riding/creature/guardian/handle_specials() - . = ..() - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 4), TEXT_SOUTH = list(0, 4), TEXT_EAST = list(-6, 3), TEXT_WEST = list(6, 3))) - set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER) - set_vehicle_dir_layer(NORTH, OBJ_LAYER) - set_vehicle_dir_layer(EAST, ABOVE_MOB_LAYER) - set_vehicle_dir_layer(WEST, ABOVE_MOB_LAYER) +/datum/component/riding/creature/guardian/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list( 0, 4), + TEXT_SOUTH = list( 0, 4), + TEXT_EAST = list(-6, 3), + TEXT_WEST = list( 6, 3), + ) + +/datum/component/riding/creature/guardian/get_parent_offsets_and_layers() + return list( + TEXT_NORTH = list(0, 0, ABOVE_MOB_LAYER), + TEXT_SOUTH = list(0, 0, OBJ_LAYER), + TEXT_EAST = list(0, 0, ABOVE_MOB_LAYER), + TEXT_WEST = list(0, 0, ABOVE_MOB_LAYER), + ) /datum/component/riding/creature/guardian/ride_check(mob/living/user, consequences = TRUE) var/mob/living/basic/guardian/charger = parent @@ -497,22 +564,34 @@ /datum/component/riding/creature/goldgrub -/datum/component/riding/creature/goldgrub/handle_specials() - . = ..() - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(11, 3), TEXT_SOUTH = list(11, 3), TEXT_EAST = list(9, 3), TEXT_WEST = list(14, 3))) - set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER) - set_vehicle_dir_layer(NORTH, OBJ_LAYER) - set_vehicle_dir_layer(EAST, OBJ_LAYER) - set_vehicle_dir_layer(WEST, OBJ_LAYER) +/datum/component/riding/creature/goldgrub/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list(11, 3), + TEXT_SOUTH = list(11, 3), + TEXT_EAST = list( 9, 3), + TEXT_WEST = list(14, 3), + ) + +/datum/component/riding/creature/goldgrub/get_parent_offsets_and_layers() + return list( + TEXT_NORTH = list(0, 0, ABOVE_MOB_LAYER), + TEXT_SOUTH = list(0, 0, OBJ_LAYER), + TEXT_EAST = list(0, 0, OBJ_LAYER), + TEXT_WEST = list(0, 0, OBJ_LAYER), + ) /datum/component/riding/creature/leaper can_force_unbuckle = FALSE can_use_abilities = TRUE ride_check_flags = JUST_FRIEND_RIDERS -/datum/component/riding/creature/leaper/handle_specials() - . = ..() - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(17, 46), TEXT_SOUTH = list(17,51), TEXT_EAST = list(27, 46), TEXT_WEST = list(6, 46))) +/datum/component/riding/creature/leaper/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list(17, 46), + TEXT_SOUTH = list(17, 51), + TEXT_EAST = list(27, 46), + TEXT_WEST = list( 6, 46), + ) /datum/component/riding/creature/leaper/Initialize(mob/living/riding_mob, force = FALSE, ride_check_flags = NONE) . = ..() @@ -527,7 +606,6 @@ return basic_parent.melee_attack(pointed) - /datum/component/riding/leaper/handle_unbuckle(mob/living/rider) . = ..() UnregisterSignal(rider, COMSIG_MOVABLE_POINTED) @@ -562,16 +640,28 @@ for(var/mob/living/buckled_mob in living_parent.buckled_mobs) force_dismount(buckled_mob, throw_range = 2, gentle = TRUE) -/datum/component/riding/creature/raptor/handle_specials() - . = ..() +/datum/component/riding/creature/raptor/get_rider_offsets_and_layers(pass_index, mob/offsetter) if(!SSmapping.is_planetary()) - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(7, 7), TEXT_SOUTH = list(2, 10), TEXT_EAST = list(12, 7), TEXT_WEST = list(10, 7))) - else - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 7), TEXT_SOUTH = list(0, 10), TEXT_EAST = list(-3, 9), TEXT_WEST = list(3, 9))) - set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER) - set_vehicle_dir_layer(NORTH, OBJ_LAYER) - set_vehicle_dir_layer(EAST, OBJ_LAYER) - set_vehicle_dir_layer(WEST, OBJ_LAYER) + return list( + TEXT_NORTH = list( 7, 7), + TEXT_SOUTH = list( 2, 10), + TEXT_EAST = list(12, 7), + TEXT_WEST = list(10, 7), + ) + return list( + TEXT_NORTH = list( 0, 7), + TEXT_SOUTH = list( 0, 10), + TEXT_EAST = list(-3, 9), + TEXT_WEST = list( 3, 9), + ) + +/datum/component/riding/creature/raptor/get_parent_offsets_and_layers() + return list( + TEXT_NORTH = list(0, 0, OBJ_LAYER), + TEXT_SOUTH = list(0, 0, ABOVE_MOB_LAYER), + TEXT_EAST = list(0, 0, OBJ_LAYER), + TEXT_WEST = list(0, 0, OBJ_LAYER), + ) /datum/component/riding/creature/raptor/fast vehicle_move_delay = 1.5 diff --git a/code/datums/components/riding/riding_vehicle.dm b/code/datums/components/riding/riding_vehicle.dm index c7289e67c5c80..9e72a89226ee6 100644 --- a/code/datums/components/riding/riding_vehicle.dm +++ b/code/datums/components/riding/riding_vehicle.dm @@ -101,8 +101,7 @@ if(QDELETED(src)) return - handle_vehicle_layer(movable_parent.dir) - handle_vehicle_offsets(movable_parent.dir) + update_parent_layer_and_offsets(movable_parent.dir) return TRUE /datum/component/riding/vehicle/atv @@ -110,38 +109,54 @@ ride_check_flags = RIDER_NEEDS_LEGS | RIDER_NEEDS_ARMS | UNBUCKLE_DISABLED_RIDER vehicle_move_delay = 1.5 -/datum/component/riding/vehicle/atv/handle_specials() - . = ..() - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 4), TEXT_SOUTH = list(0, 4), TEXT_EAST = list(0, 4), TEXT_WEST = list( 0, 4))) - set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER) - set_vehicle_dir_layer(NORTH, OBJ_LAYER) - set_vehicle_dir_layer(EAST, OBJ_LAYER) - set_vehicle_dir_layer(WEST, OBJ_LAYER) +/datum/component/riding/vehicle/atv/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list(0, 4), + TEXT_SOUTH = list(0, 4), + TEXT_EAST = list(0, 4), + TEXT_WEST = list(0, 4), + ) + +/datum/component/riding/vehicle/atv/get_parent_offsets_and_layers() + return list( + TEXT_NORTH = list(0, 0, OBJ_LAYER), + TEXT_SOUTH = list(0, 0, ABOVE_MOB_LAYER), + TEXT_EAST = list(0, 0, OBJ_LAYER), + TEXT_WEST = list(0, 0, OBJ_LAYER), + ) /datum/component/riding/vehicle/bicycle ride_check_flags = RIDER_NEEDS_LEGS | RIDER_NEEDS_ARMS | UNBUCKLE_DISABLED_RIDER vehicle_move_delay = 0 -/datum/component/riding/vehicle/bicycle/handle_specials() - . = ..() - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 4), TEXT_SOUTH = list(0, 4), TEXT_EAST = list(0, 4), TEXT_WEST = list( 0, 4))) - +/datum/component/riding/vehicle/bicycle/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list(0, 4), + TEXT_SOUTH = list(0, 4), + TEXT_EAST = list(0, 4), + TEXT_WEST = list(0, 4), + ) /datum/component/riding/vehicle/lavaboat ride_check_flags = NONE // not sure keytype = /obj/item/oar + /// The one turf we can move on. var/allowed_turf = /turf/open/lava -/datum/component/riding/vehicle/lavaboat/handle_specials() +/datum/component/riding/vehicle/lavaboat/Initialize(mob/living/riding_mob, force, ride_check_flags, potion_boost) . = ..() allowed_turf_typecache = typecacheof(allowed_turf) /datum/component/riding/vehicle/lavaboat/dragonboat vehicle_move_delay = 1 -/datum/component/riding/vehicle/lavaboat/dragonboat/handle_specials() - . = ..() - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(1, 2), TEXT_SOUTH = list(1, 2), TEXT_EAST = list(1, 2), TEXT_WEST = list( 1, 2))) +/datum/component/riding/vehicle/lavaboat/dragonboat/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list(1, 2), + TEXT_SOUTH = list(1, 2), + TEXT_EAST = list(1, 2), + TEXT_WEST = list(1, 2), + ) /datum/component/riding/vehicle/lavaboat/dragonboat vehicle_move_delay = 1 @@ -151,19 +166,31 @@ /datum/component/riding/vehicle/janicart keytype = /obj/item/key/janitor -/datum/component/riding/vehicle/janicart/handle_specials() - . = ..() - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 4), TEXT_SOUTH = list(0, 7), TEXT_EAST = list(-12, 7), TEXT_WEST = list( 12, 7))) +/datum/component/riding/vehicle/janicart/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list( 0, 4), + TEXT_SOUTH = list( 0, 7), + TEXT_EAST = list(-12, 7), + TEXT_WEST = list( 12, 7), + ) /datum/component/riding/vehicle/scooter ride_check_flags = RIDER_NEEDS_LEGS | RIDER_NEEDS_ARMS | UNBUCKLE_DISABLED_RIDER -/datum/component/riding/vehicle/scooter/handle_specials(mob/living/riding_mob) - . = ..() - if(iscyborg(riding_mob)) - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0), TEXT_SOUTH = list(0), TEXT_EAST = list(0), TEXT_WEST = list(2))) - else - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(2), TEXT_SOUTH = list(-2), TEXT_EAST = list(0), TEXT_WEST = list(2))) +/datum/component/riding/vehicle/scooter/get_rider_offsets_and_layers(pass_index, mob/offsetter) + if(iscyborg(offsetter)) + return list( + TEXT_NORTH = list(0, 2), + TEXT_SOUTH = list(0, 2), + TEXT_EAST = list(0, 2), + TEXT_WEST = list(2, 2), + ) + return list( + TEXT_NORTH = list( 2, 2), + TEXT_SOUTH = list(-2, 2), + TEXT_EAST = list( 0, 2), + TEXT_WEST = list( 2, 2), + ) /datum/component/riding/vehicle/scooter/skateboard vehicle_move_delay = 1.5 @@ -171,12 +198,21 @@ ///If TRUE, the vehicle will be slower (but safer) to ride on walk intent. var/can_slow_down = TRUE -/datum/component/riding/vehicle/scooter/skateboard/handle_specials() - . = ..() - set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER) - set_vehicle_dir_layer(NORTH, OBJ_LAYER) - set_vehicle_dir_layer(EAST, OBJ_LAYER) - set_vehicle_dir_layer(WEST, OBJ_LAYER) +/datum/component/riding/vehicle/scooter/skateboard/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list(0, 5), + TEXT_SOUTH = list(0, 5), + TEXT_EAST = list(0, 5), + TEXT_WEST = list(2, 5), + ) + +/datum/component/riding/vehicle/scooter/skateboard/get_parent_offsets_and_layers() + return list( + TEXT_NORTH = list(0, 0, ABOVE_MOB_LAYER), + TEXT_SOUTH = list(0, 0, ABOVE_MOB_LAYER), + TEXT_EAST = list(0, 0, OBJ_LAYER), + TEXT_WEST = list(0, 0, OBJ_LAYER), + ) /datum/component/riding/vehicle/scooter/skateboard/RegisterWithParent() . = ..() @@ -294,17 +330,13 @@ vehicle_move_delay = 0 can_slow_down = FALSE -/datum/component/riding/vehicle/scooter/skateboard/wheelys/handle_specials() - . = ..() - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0), TEXT_SOUTH = list(0), TEXT_EAST = list(0), TEXT_WEST = list(0))) - /datum/component/riding/vehicle/scooter/skateboard/wheelys/rollerskates vehicle_move_delay = 1.5 /datum/component/riding/vehicle/scooter/skateboard/wheelys/skishoes vehicle_move_delay = 1 -/datum/component/riding/vehicle/scooter/skateboard/wheelys/skishoes/handle_specials() +/datum/component/riding/vehicle/scooter/skateboard/wheelys/skishoes/Initialize(mob/living/riding_mob, force, ride_check_flags, potion_boost) . = ..() allowed_turf_typecache = typecacheof(list(/turf/open/misc/asteroid/snow, /turf/open/misc/snow, /turf/open/floor/holofloor/snow, /turf/open/misc/ice, /turf/open/floor/fake_snow)) @@ -313,10 +345,13 @@ vehicle_move_delay = 1.75 ride_check_flags = RIDER_NEEDS_LEGS | RIDER_NEEDS_ARMS | UNBUCKLE_DISABLED_RIDER -/datum/component/riding/vehicle/secway/handle_specials() - . = ..() - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 4), TEXT_SOUTH = list(0, 4), TEXT_EAST = list(0, 4), TEXT_WEST = list( 0, 4))) - set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER) +/datum/component/riding/vehicle/secway/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list(0, 4), + TEXT_SOUTH = list(0, 4), + TEXT_EAST = list(0, 4), + TEXT_WEST = list(0, 4), + ) /datum/component/riding/vehicle/secway/driver_move(mob/living/user, direction) var/obj/vehicle/ridden/secway/the_secway = parent @@ -334,48 +369,87 @@ override_allow_spacemove = TRUE ride_check_flags = RIDER_NEEDS_LEGS | RIDER_NEEDS_ARMS | UNBUCKLE_DISABLED_RIDER -/datum/component/riding/vehicle/speedbike/handle_specials() - . = ..() - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, -8), TEXT_SOUTH = list(0, 4), TEXT_EAST = list(-10, 5), TEXT_WEST = list( 10, 5))) - set_vehicle_dir_offsets(NORTH, -16, -16) - set_vehicle_dir_offsets(SOUTH, -16, -16) - set_vehicle_dir_offsets(EAST, -18, 0) - set_vehicle_dir_offsets(WEST, -18, 0) +/datum/component/riding/vehicle/speedbike/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list( 0, -8), + TEXT_SOUTH = list( 0, 4), + TEXT_EAST = list(-10, 5), + TEXT_WEST = list( 10, 5), + ) + +/datum/component/riding/vehicle/speedbike/get_parent_offsets_and_layers() + return list( + TEXT_NORTH = list(-16, -16), + TEXT_SOUTH = list(-16, -16), + TEXT_EAST = list(-18, 0), + TEXT_WEST = list(-18, 0), + ) /datum/component/riding/vehicle/speedwagon vehicle_move_delay = 0 -/datum/component/riding/vehicle/speedwagon/handle_specials() +/datum/component/riding/vehicle/speedwagon/get_rider_offsets_and_layers(pass_index, mob/offsetter) + switch(pass_index) + if(1) + return list( + TEXT_NORTH = list(-10, -4), + TEXT_SOUTH = list( 16, -4), + TEXT_EAST = list( -4, 30), + TEXT_WEST = list( 4, -3), + ) + if(2) + return list( + TEXT_NORTH = list( 19, -5), + TEXT_SOUTH = list(-13, 3), + TEXT_EAST = list( -4, -3), + TEXT_WEST = list( 4, 28), + ) + if(3) + return list( + TEXT_NORTH = list(-10, -18), + TEXT_SOUTH = list( 16, 25), + TEXT_EAST = list(-22, 30), + TEXT_WEST = list( 22, -3,), + ) + if(4) + return list( + TEXT_NORTH = list( 19, -18), + TEXT_SOUTH = list(-13, 25), + TEXT_EAST = list(-22, 3), + TEXT_WEST = list( 22, 28), + ) + +/datum/component/riding/vehicle/speedwagon/get_parent_offsets_and_layers() . = ..() - set_riding_offsets(1, list(TEXT_NORTH = list(-10, -4), TEXT_SOUTH = list(16, 3), TEXT_EAST = list(-4, 30), TEXT_WEST = list(4, -3))) - set_riding_offsets(2, list(TEXT_NORTH = list(19, -5, 4), TEXT_SOUTH = list(-13, 3, 4), TEXT_EAST = list(-4, -3, 4.1), TEXT_WEST = list(4, 28, 3.9))) - set_riding_offsets(3, list(TEXT_NORTH = list(-10, -18, 4.2), TEXT_SOUTH = list(16, 25, 3.9), TEXT_EAST = list(-22, 30), TEXT_WEST = list(22, -3, 4.1))) - set_riding_offsets(4, list(TEXT_NORTH = list(19, -18, 4.2), TEXT_SOUTH = list(-13, 25, 3.9), TEXT_EAST = list(-22, 3, 3.9), TEXT_WEST = list(22, 28))) - set_vehicle_dir_offsets(NORTH, -48, -48) - set_vehicle_dir_offsets(SOUTH, -48, -48) - set_vehicle_dir_offsets(EAST, -48, -48) - set_vehicle_dir_offsets(WEST, -48, -48) - for(var/i in GLOB.cardinals) - set_vehicle_dir_layer(i, BELOW_MOB_LAYER) - + return list( + TEXT_NORTH = list(-48, -48, BELOW_MOB_LAYER), + TEXT_SOUTH = list(-48, -48, BELOW_MOB_LAYER), + TEXT_EAST = list(-48, -48, BELOW_MOB_LAYER), + TEXT_WEST = list(-48, -48, BELOW_MOB_LAYER), + ) /datum/component/riding/vehicle/wheelchair vehicle_move_delay = 0 ride_check_flags = RIDER_NEEDS_ARMS -/datum/component/riding/vehicle/wheelchair/handle_specials() - . = ..() - set_vehicle_dir_layer(SOUTH, OBJ_LAYER) - set_vehicle_dir_layer(NORTH, ABOVE_MOB_LAYER) - set_vehicle_dir_layer(EAST, OBJ_LAYER) - set_vehicle_dir_layer(WEST, OBJ_LAYER) +/datum/component/riding/vehicle/wheelchair/get_parent_offsets_and_layers() + return list( + TEXT_NORTH = list(0, 0), + TEXT_SOUTH = list(0, 0), + TEXT_EAST = list(0, 0), + TEXT_WEST = list(0, 0), + ) + +/datum/component/riding/vehicle/wheelchair/hand + /// Magic number used in calculating the speed of the wheelchair + var/delay_multiplier = 6.7 -// special messaging for those without arms /datum/component/riding/vehicle/wheelchair/hand/driver_move(obj/vehicle/vehicle_parent, mob/living/user, direction) - var/delay_multiplier = 6.7 // magic number from wheelchair code vehicle_move_delay = round(CONFIG_GET(number/movedelay/run_delay) * delay_multiplier) / clamp(user.usable_hands, 1, 2) return ..() +/datum/component/riding/vehicle/wheelchair/motorized + /datum/component/riding/vehicle/wheelchair/motorized/driver_move(obj/vehicle/vehicle_parent, mob/living/user, direction) var/obj/vehicle/ridden/wheelchair/motorized/our_chair = parent var/speed = our_chair.speed diff --git a/code/datums/components/shell.dm b/code/datums/components/shell.dm index feb6e572bfd0f..44252c3657538 100644 --- a/code/datums/components/shell.dm +++ b/code/datums/components/shell.dm @@ -319,7 +319,7 @@ attached_circuit.add_component(to_add) RegisterSignal(circuitboard, COMSIG_CIRCUIT_ADD_COMPONENT_MANUALLY, PROC_REF(on_circuit_add_component_manually)) if(attached_circuit.display_name != "") - parent_atom.name = "[initial(parent_atom.name)] ([attached_circuit.display_name])" + parent_atom.name = "[initial(parent_atom.name)] ([strip_html(attached_circuit.display_name)])" attached_circuit.set_locked(FALSE) if((shell_flags & SHELL_FLAG_CIRCUIT_UNREMOVABLE) || circuitboard.admin_only) diff --git a/code/datums/components/slippery.dm b/code/datums/components/slippery.dm index 8d2dbda379eda..370b3406ff9ff 100644 --- a/code/datums/components/slippery.dm +++ b/code/datums/components/slippery.dm @@ -23,6 +23,8 @@ var/knockdown_time = 0 /// How long the slip paralyzes (prevents the crossing mob doing anything) for. var/paralyze_time = 0 + /// How long the slip dazes (makes the crossing mob vulnerable to shove stuns) for. + var/daze_time = 3 SECONDS /// Flags for how slippery the parent is. See [__DEFINES/mobs.dm] var/lube_flags /// Optional callback allowing you to define custom conditions for slipping @@ -53,6 +55,7 @@ * * lube_flags - Controls the slip behaviour, they are listed starting [here][SLIDE] * * datum/callback/on_slip_callback - Callback to define further custom controls on when slipping is applied * * paralyze - length of time to paralyze the crossing mob for (Deciseconds) + * * daze - length of time to daze the crossing mob for (Deciseconds), default 3 seconds * * force_drop - should the crossing mob drop items in its hands or not * * slot_whitelist - flags controlling where on a mob this item can be equipped to make the parent mob slippery full list [here][ITEM_SLOT_OCLOTHING] * * datum/callback/on_slip_callback - Callback to add custom behaviours as the crossing mob is slipped @@ -62,12 +65,14 @@ lube_flags = NONE, datum/callback/on_slip_callback, paralyze, + daze = 3 SECONDS, force_drop = FALSE, slot_whitelist, datum/callback/can_slip_callback, ) src.knockdown_time = max(knockdown, 0) src.paralyze_time = max(paralyze, 0) + src.daze_time = max(daze, 0) src.force_drop_items = force_drop src.lube_flags = lube_flags src.can_slip_callback = can_slip_callback @@ -126,6 +131,7 @@ lube_flags = NONE, datum/callback/on_slip_callback, paralyze, + daze, force_drop = FALSE, slot_whitelist, datum/callback/can_slip_callback, @@ -136,11 +142,13 @@ on_slip_callback = component.on_slip_callback can_slip_callback = component.on_slip_callback paralyze = component.paralyze_time + daze = component.daze_time force_drop = component.force_drop_items slot_whitelist = component.slot_whitelist src.knockdown_time = max(knockdown, 0) src.paralyze_time = max(paralyze, 0) + src.daze_time = max(daze, 0) src.force_drop_items = force_drop src.lube_flags = lube_flags src.on_slip_callback = on_slip_callback @@ -167,7 +175,7 @@ return if(can_slip_callback && !can_slip_callback.Invoke(holder, victim)) return - if(victim.slip(knockdown_time, parent, lube_flags, paralyze_time, force_drop_items)) + if(victim.slip(knockdown_time, parent, lube_flags, paralyze_time, daze_time, force_drop_items)) on_slip_callback?.Invoke(victim) /** diff --git a/code/datums/components/temporary_body.dm b/code/datums/components/temporary_body.dm index 28a7000a4951d..deadf90e6f99d 100644 --- a/code/datums/components/temporary_body.dm +++ b/code/datums/components/temporary_body.dm @@ -14,11 +14,12 @@ var/delete_on_death = FALSE /datum/component/temporary_body/Initialize(datum/mind/old_mind, mob/living/old_body, delete_on_death = FALSE) - if(!isliving(parent) || !isliving(old_body)) + if(!isliving(parent)) return COMPONENT_INCOMPATIBLE - ADD_TRAIT(old_body, TRAIT_MIND_TEMPORARILY_GONE, REF(src)) src.old_mind_ref = WEAKREF(old_mind) - src.old_body_ref = WEAKREF(old_body) + if(istype(old_body)) + ADD_TRAIT(old_body, TRAIT_MIND_TEMPORARILY_GONE, REF(src)) + src.old_body_ref = WEAKREF(old_body) src.delete_on_death = delete_on_death /datum/component/temporary_body/RegisterWithParent() @@ -38,9 +39,9 @@ /datum/component/temporary_body/proc/on_parent_destroy() SIGNAL_HANDLER var/datum/mind/old_mind = old_mind_ref?.resolve() - var/mob/living/old_body = old_body_ref?.resolve() + var/mob/living/old_body = old_body_ref?.resolve() || old_mind.current - if(!old_mind || !old_body) + if(!old_mind) return var/mob/living/living_parent = parent @@ -50,12 +51,13 @@ if(!ghost) CRASH("[src] belonging to [parent] was completely unable to find a ghost to put back into a body!") ghost.mind = old_mind - if(old_body.stat != DEAD) + if(old_body?.stat != DEAD) old_mind.transfer_to(old_body, force_key_move = TRUE) else old_mind.set_current(old_body) - REMOVE_TRAIT(old_body, TRAIT_MIND_TEMPORARILY_GONE, REF(src)) + if(old_body) + REMOVE_TRAIT(old_body, TRAIT_MIND_TEMPORARILY_GONE, REF(src)) old_mind = null old_body = null diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm index 82b12d555ac06..98faa95b6674c 100644 --- a/code/datums/components/uplink.dm +++ b/code/datums/components/uplink.dm @@ -66,8 +66,6 @@ RegisterSignal(parent, COMSIG_RADIO_NEW_MESSAGE, PROC_REF(new_message)) else if(istype(parent, /obj/item/pen)) RegisterSignal(parent, COMSIG_PEN_ROTATED, PROC_REF(pen_rotation)) - else if(istype(parent, /obj/item/uplink/replacement)) - RegisterSignal(parent, COMSIG_MOVABLE_HEAR, PROC_REF(on_heard)) if(owner) src.owner = owner @@ -81,7 +79,6 @@ src.active = enabled if(!uplink_handler_override) uplink_handler = new() - uplink_handler.has_objectives = FALSE uplink_handler.uplink_flag = uplink_flag uplink_handler.telecrystals = starting_tc uplink_handler.has_progression = has_progression @@ -89,7 +86,6 @@ else uplink_handler = uplink_handler_override RegisterSignal(uplink_handler, COMSIG_UPLINK_HANDLER_ON_UPDATE, PROC_REF(handle_uplink_handler_update)) - RegisterSignal(uplink_handler, COMSIG_UPLINK_HANDLER_REPLACEMENT_ORDERED, PROC_REF(handle_uplink_replaced)) if(!lockable) active = TRUE locked = FALSE @@ -100,19 +96,6 @@ SIGNAL_HANDLER SStgui.update_uis(src) -/// When a new uplink is made via the syndicate beacon it locks all lockable uplinks and destroys replacement uplinks -/datum/component/uplink/proc/handle_uplink_replaced() - SIGNAL_HANDLER - if(lockable) - lock_uplink() - if(!istype(parent, /obj/item/uplink/replacement)) - return - var/obj/item/uplink_item = parent - do_sparks(number = 3, cardinal_only = FALSE, source = uplink_item) - uplink_item.visible_message(span_warning("The [uplink_item] suddenly combusts!"), vision_distance = COMBAT_MESSAGE_RANGE) - new /obj/effect/decal/cleanable/ash(get_turf(uplink_item)) - qdel(uplink_item) - /datum/component/uplink/InheritComponent(datum/component/uplink/uplink) lockable |= uplink.lockable active |= uplink.active @@ -186,12 +169,9 @@ data["telecrystals"] = uplink_handler.telecrystals data["progression_points"] = uplink_handler.progression_points data["current_expected_progression"] = SStraitor.current_global_progression - data["maximum_active_objectives"] = uplink_handler.maximum_active_objectives data["progression_scaling_deviance"] = SStraitor.progression_scaling_deviance data["current_progression_scaling"] = SStraitor.current_progression_scaling - data["maximum_potential_objectives"] = uplink_handler.maximum_potential_objectives - if(uplink_handler.primary_objectives) var/list/primary_objectives = list() for(var/datum/objective/task as anything in uplink_handler.primary_objectives) @@ -204,25 +184,6 @@ primary_objectives += list(task_data) data["primary_objectives"] = primary_objectives - if(uplink_handler.has_objectives) - var/list/potential_objectives = list() - for(var/index in 1 to uplink_handler.potential_objectives.len) - var/datum/traitor_objective/objective = uplink_handler.potential_objectives[index] - var/list/objective_data = objective.uplink_ui_data(user) - objective_data["id"] = index - potential_objectives += list(objective_data) - - var/list/active_objectives = list() - for(var/index in 1 to uplink_handler.active_objectives.len) - var/datum/traitor_objective/objective = uplink_handler.active_objectives[index] - var/list/objective_data = objective.uplink_ui_data(user) - objective_data["id"] = index - active_objectives += list(objective_data) - - - data["potential_objectives"] = potential_objectives - data["active_objectives"] = active_objectives - data["completed_final_objective"] = uplink_handler.final_objective var/list/stock_list = uplink_handler.item_stock.Copy() var/list/extra_purchasable_stock = list() @@ -263,7 +224,6 @@ var/list/data = list() data["uplink_flag"] = uplink_handler.uplink_flag data["has_progression"] = uplink_handler.has_progression - data["has_objectives"] = uplink_handler.has_objectives data["lockable"] = lockable data["assigned_role"] = uplink_handler.assigned_role data["assigned_species"] = uplink_handler.assigned_species @@ -308,47 +268,9 @@ if("renegotiate_objectives") uplink_handler.replace_objectives?.Invoke() SStgui.update_uis(src) - - if(!uplink_handler.has_objectives) - return TRUE - - if(uplink_handler.owner?.current != ui.user || !uplink_handler.can_take_objectives) - return TRUE - - switch(action) - if("regenerate_objectives") - uplink_handler.generate_objectives() - return TRUE - - var/list/objectives - switch(action) - if("start_objective") - objectives = uplink_handler.potential_objectives - if("objective_act", "finish_objective", "objective_abort") - objectives = uplink_handler.active_objectives - - if(!objectives) - return - - var/objective_index = round(text2num(params["index"])) - if(objective_index < 1 || objective_index > length(objectives)) - return TRUE - var/datum/traitor_objective/objective = objectives[objective_index] - - // Objective actions - switch(action) - if("start_objective") - uplink_handler.take_objective(ui.user, objective) - if("objective_act") - uplink_handler.ui_objective_act(ui.user, objective, params["objective_action"]) - if("finish_objective") - if(!objective.finish_objective(ui.user)) - return - uplink_handler.complete_objective(objective) - if("objective_abort") - uplink_handler.abort_objective(objective) return TRUE + /// Proc that locks uplinks /datum/component/uplink/proc/lock_uplink() active = FALSE @@ -494,17 +416,6 @@ return returnable_code -/// Proc that unlocks a locked replacement uplink when it hears the unlock code from their datum -/datum/component/uplink/proc/on_heard(datum/source, list/hearing_args) - SIGNAL_HANDLER - if(!locked) - return - if(!findtext(hearing_args[HEARING_RAW_MESSAGE], unlock_code)) - return - var/atom/replacement_uplink = parent - locked = FALSE - replacement_uplink.balloon_alert_to_viewers("beep", vision_distance = COMBAT_MESSAGE_RANGE) - /datum/component/uplink/proc/failsafe(atom/source) if(!parent) return diff --git a/code/datums/components/wall_mounted.dm b/code/datums/components/wall_mounted.dm index a10fb2468334d..daab50eb18779 100644 --- a/code/datums/components/wall_mounted.dm +++ b/code/datums/components/wall_mounted.dm @@ -41,7 +41,8 @@ */ /datum/component/wall_mounted/proc/on_examine(datum/source, mob/user, list/examine_list) SIGNAL_HANDLER - examine_list += span_notice("\The [hanging_wall_turf] is currently supporting [span_bold("[parent]")]. Deconstruction or excessive damage would cause it to [span_bold("fall to the ground")].") + if (parent in view(user.client?.view || world.view, user)) + examine_list += span_notice("\The [hanging_wall_turf] is currently supporting [span_bold("[parent]")]. Deconstruction or excessive damage would cause it to [span_bold("fall to the ground")].") /** * When the type of turf changes, if it is changing into a floor we should drop our contents diff --git a/code/datums/components/weatherannouncer.dm b/code/datums/components/weatherannouncer.dm index 0eda6c47a324d..4ac103a7758de 100644 --- a/code/datums/components/weatherannouncer.dm +++ b/code/datums/components/weatherannouncer.dm @@ -80,7 +80,15 @@ if(previous_level == warning_level && previous_danger == is_weather_dangerous) return // No change var/atom/movable/speaker = parent - speaker.say(get_warning_message()) + var/msg = get_warning_message() + var/obj/machinery/announcement_system/aas = get_announcement_system(/datum/aas_config_entry/weather, speaker) + // Active AAS will override default announcement lines + if (aas) + msg = aas.compile_config_message(/datum/aas_config_entry/weather, list(), !is_weather_dangerous ? 4 : warning_level + 1) + // Stop toggling on radios for it, please! + aas.broadcast(msg, list(RADIO_CHANNEL_SUPPLY)) + // Still say it, because you can be not on our level + speaker.say(msg) speaker.update_appearance(UPDATE_ICON) update_light_color() @@ -170,6 +178,17 @@ .=..() UnregisterSignal(parent, COMSIG_ATOM_EXAMINE) +/datum/aas_config_entry/weather + name = "Cargo Alert: Weather Forecast" + general_tooltip = "Allows the radio to announce incoming weather." + announcement_lines_map = list( + "Clear" = "All clear, no weather alerts to report.", + "Incoming" = "Weather front incoming, begin to seek shelter.", + "Imminent or Active" = "Weather front imminent, find shelter immediately.", + "Safe" = "No risk expected from incoming weather front.", + ) + + #undef WEATHER_ALERT_CLEAR #undef WEATHER_ALERT_INCOMING #undef WEATHER_ALERT_IMMINENT_OR_ACTIVE diff --git a/code/datums/datum.dm b/code/datums/datum.dm index 8337dac113178..c3c800bd85c93 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -142,9 +142,11 @@ _clear_signal_refs() //END: ECS SHIT +#ifndef DISABLE_DREAMLUAU if(!(datum_flags & DF_STATIC_OBJECT)) DREAMLUAU_CLEAR_REF_USERDATA(vars) // vars ceases existing when src does, so we need to clear any lua refs to it that exist. DREAMLUAU_CLEAR_REF_USERDATA(src) +#endif return QDEL_HINT_QUEUE diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index 82099a7532b52..5efa1554bafbb 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -266,7 +266,6 @@ properties["severity"] = round((properties["severity"] / 2), 1) properties["severity"] *= (symptoms.len / VIRUS_SYMPTOM_LIMIT) //fewer symptoms, less severity properties["severity"] = round(clamp(properties["severity"], 1, 7), 1) - properties["capacity"] = get_symptom_weights() // Assign the properties that are in the list. /datum/disease/advance/proc/assign_properties() @@ -342,7 +341,7 @@ // Will generate a random cure, the more resistance the symptoms have, the harder the cure. /datum/disease/advance/proc/generate_cure() if(properties?.len) - var/res = clamp(properties["resistance"] - (symptoms.len * 0.5), 1, advance_cures.len) + var/res = clamp(properties["resistance"] - (symptoms.len / 2), 1, advance_cures.len) if(res == oldres) return cures = list(pick(advance_cures[res])) @@ -405,7 +404,7 @@ /datum/disease/advance/proc/AddSymptom(datum/symptom/S) if(HasSymptom(S)) return - while(get_symptom_weights() + S.weight > VIRUS_SYMPTOM_LIMIT) + if(symptoms.len >= VIRUS_SYMPTOM_LIMIT) RemoveSymptom(pick(symptoms)) symptoms += S S.OnAdd(src) @@ -422,12 +421,6 @@ S.name += " (neutered)" S.OnRemove(src) -/// How much of the symptom capacity is currently being used? -/datum/disease/advance/proc/get_symptom_weights() - . = 0 - for(var/datum/symptom/symptom as anything in symptoms) - . += symptom.weight - /* Static Procs diff --git a/code/datums/diseases/advance/symptoms/cough.dm b/code/datums/diseases/advance/symptoms/cough.dm index 6b46667741c61..2648ece75cf9f 100644 --- a/code/datums/diseases/advance/symptoms/cough.dm +++ b/code/datums/diseases/advance/symptoms/cough.dm @@ -10,7 +10,6 @@ name = "Cough" desc = "The virus irritates the throat of the host, causing occasional coughing. Each cough will try to infect bystanders who are within 1 tile of the host with the virus." illness = "Jest Infection" - weight = 2 stealth = -1 resistance = 3 stage_speed = 1 diff --git a/code/datums/diseases/advance/symptoms/sneeze.dm b/code/datums/diseases/advance/symptoms/sneeze.dm index 0e54bfad385e0..194b762cf02d4 100644 --- a/code/datums/diseases/advance/symptoms/sneeze.dm +++ b/code/datums/diseases/advance/symptoms/sneeze.dm @@ -10,7 +10,6 @@ name = "Sneezing" desc = "The virus causes irritation of the nasal cavity, making the host sneeze occasionally. Sneezes from this symptom will spread the virus in a 4 meter cone in front of the host." illness = "Bard Flu" - weight = 2 stealth = -2 resistance = 3 stage_speed = 0 @@ -53,8 +52,8 @@ if(!suppress_warning) affected_mob.emote("sniff") else - if(affected_mob.can_spread_airborne_diseases()) //don't spread germs if they covered their mouth - affected_mob.infectious_sneeze(active_disease, TRUE, range = spread_range) + affected_mob.emote("sneeze") + active_disease.airborne_spread(spread_range = src.spread_range, force_spread = TRUE, require_facing = TRUE) if(cartoon_sneezing) //Yeah, this can fling you around even if you have a space suit helmet on. It's, uh, bluespace snot, yeah. to_chat(affected_mob, span_userdanger("You are launched violently backwards by an all-mighty sneeze!")) var/sneeze_distance = rand(2,4) //twice as far as a normal baseball bat strike will fling you diff --git a/code/datums/diseases/advance/symptoms/symptoms.dm b/code/datums/diseases/advance/symptoms/symptoms.dm index 5a4331b3c6183..28ba45f8de4e0 100644 --- a/code/datums/diseases/advance/symptoms/symptoms.dm +++ b/code/datums/diseases/advance/symptoms/symptoms.dm @@ -39,8 +39,6 @@ var/naturally_occuring = TRUE ///If the symptom requires an organ for the effects to function, robotic organs are immune to disease unless inorganic biology symptom is present var/required_organ - /// How much space does this symptom use? - var/weight = 1 /datum/symptom/New() var/list/S = SSdisease.list_symptoms @@ -108,7 +106,6 @@ var/list/data = list() data["name"] = name data["desc"] = desc - data["weight"] = weight data["stealth"] = stealth data["resistance"] = resistance data["stage_speed"] = stage_speed diff --git a/code/datums/diseases/cold.dm b/code/datums/diseases/cold.dm index 3b361e53c236c..f7bf6cf4b18a7 100644 --- a/code/datums/diseases/cold.dm +++ b/code/datums/diseases/cold.dm @@ -6,7 +6,7 @@ cures = list(/datum/reagent/medicine/spaceacillin) agent = "XY-rhinovirus" viable_mobtypes = list(/mob/living/carbon/human) - spreading_modifier = 0.1 + spreading_modifier = 0.5 spread_text = "Airborne" severity = DISEASE_SEVERITY_NONTHREAT required_organ = ORGAN_SLOT_LUNGS @@ -20,7 +20,7 @@ switch(stage) if(2) if(SPT_PROB(0.5, seconds_per_tick)) - affected_mob.infectious_sneeze(src, TRUE) + affected_mob.emote("sneeze") if(SPT_PROB(0.5, seconds_per_tick)) affected_mob.emote("cough") if(SPT_PROB(0.5, seconds_per_tick)) @@ -33,7 +33,7 @@ return FALSE if(3) if(SPT_PROB(0.5, seconds_per_tick)) - affected_mob.infectious_sneeze(src, TRUE) + affected_mob.emote("sneeze") if(SPT_PROB(0.5, seconds_per_tick)) affected_mob.emote("cough") if(SPT_PROB(0.5, seconds_per_tick)) diff --git a/code/datums/diseases/cold9.dm b/code/datums/diseases/cold9.dm index 97adebcac7026..2e55df23b7ec8 100644 --- a/code/datums/diseases/cold9.dm +++ b/code/datums/diseases/cold9.dm @@ -20,7 +20,7 @@ if(2) affected_mob.adjust_bodytemperature(-5 * seconds_per_tick) if(SPT_PROB(0.5, seconds_per_tick)) - affected_mob.infectious_sneeze(src, TRUE) + affected_mob.emote("sneeze") if(SPT_PROB(0.5, seconds_per_tick)) affected_mob.emote("cough") if(SPT_PROB(0.5, seconds_per_tick)) @@ -34,7 +34,7 @@ if(3) affected_mob.adjust_bodytemperature(-10 * seconds_per_tick) if(SPT_PROB(0.5, seconds_per_tick)) - affected_mob.infectious_sneeze(src, TRUE) + affected_mob.emote("sneeze") if(SPT_PROB(0.5, seconds_per_tick)) affected_mob.emote("cough") if(SPT_PROB(0.5, seconds_per_tick)) diff --git a/code/datums/diseases/dna_spread.dm b/code/datums/diseases/dna_spread.dm index e649a557443f1..6fd926f60d3df 100644 --- a/code/datums/diseases/dna_spread.dm +++ b/code/datums/diseases/dna_spread.dm @@ -40,7 +40,7 @@ switch(stage) if(2, 3) //Pretend to be a cold and give time to spread. if(SPT_PROB(4, seconds_per_tick)) - affected_mob.sneeze() + affected_mob.emote("sneeze") if(SPT_PROB(4, seconds_per_tick)) affected_mob.emote("cough") if(SPT_PROB(0.5, seconds_per_tick)) diff --git a/code/datums/diseases/fake_gbs.dm b/code/datums/diseases/fake_gbs.dm index 939ab620feff4..655439cdc6cc5 100644 --- a/code/datums/diseases/fake_gbs.dm +++ b/code/datums/diseases/fake_gbs.dm @@ -19,7 +19,7 @@ switch(stage) if(2) if(SPT_PROB(0.5, seconds_per_tick)) - affected_mob.sneeze() + affected_mob.emote("sneeze") if(3) if(SPT_PROB(2.5, seconds_per_tick)) affected_mob.emote("cough") diff --git a/code/datums/diseases/flu.dm b/code/datums/diseases/flu.dm index 4ad7bb9b92b59..9412d2a2a2f63 100644 --- a/code/datums/diseases/flu.dm +++ b/code/datums/diseases/flu.dm @@ -7,7 +7,7 @@ cure_chance = 5 agent = "H13N1 flu virion" viable_mobtypes = list(/mob/living/carbon/human) - spreading_modifier = 0.1 + spreading_modifier = 0.75 desc = "If left untreated the subject will feel quite unwell." severity = DISEASE_SEVERITY_MINOR required_organ = ORGAN_SLOT_LUNGS @@ -20,7 +20,7 @@ switch(stage) if(2) if(SPT_PROB(0.5, seconds_per_tick)) - affected_mob.infectious_sneeze(src, TRUE) + affected_mob.emote("sneeze") if(SPT_PROB(0.5, seconds_per_tick)) affected_mob.emote("cough") if(SPT_PROB(0.5, seconds_per_tick)) @@ -38,7 +38,7 @@ if(3) if(SPT_PROB(0.5, seconds_per_tick)) - affected_mob.infectious_sneeze(src, TRUE) + affected_mob.emote("sneeze") if(SPT_PROB(0.5, seconds_per_tick)) affected_mob.emote("cough") if(SPT_PROB(0.5, seconds_per_tick)) diff --git a/code/datums/diseases/fluspanish.dm b/code/datums/diseases/fluspanish.dm index 1fa6b49d457ad..6919884b2fe30 100644 --- a/code/datums/diseases/fluspanish.dm +++ b/code/datums/diseases/fluspanish.dm @@ -7,7 +7,7 @@ cure_chance = 5 agent = "1nqu1s1t10n flu virion" viable_mobtypes = list(/mob/living/carbon/human) - spreading_modifier = 0.1 + spreading_modifier = 0.75 desc = "If left untreated the subject will burn to death for being a heretic." severity = DISEASE_SEVERITY_DANGEROUS required_organ = ORGAN_SLOT_LUNGS @@ -21,7 +21,7 @@ if(2) affected_mob.adjust_bodytemperature(5 * seconds_per_tick) if(SPT_PROB(2.5, seconds_per_tick)) - affected_mob.infectious_sneeze(src, TRUE) + affected_mob.emote("sneeze") if(SPT_PROB(2.5, seconds_per_tick)) affected_mob.emote("cough") if(SPT_PROB(0.5, seconds_per_tick)) @@ -31,7 +31,7 @@ if(3) affected_mob.adjust_bodytemperature(10 * seconds_per_tick) if(SPT_PROB(2.5, seconds_per_tick)) - affected_mob.infectious_sneeze(src, TRUE) + affected_mob.emote("sneeze") if(SPT_PROB(2.5, seconds_per_tick)) affected_mob.emote("cough") if(SPT_PROB(2.5, seconds_per_tick)) diff --git a/code/datums/diseases/wizarditis.dm b/code/datums/diseases/wizarditis.dm index 21dce839dc697..fe0502387f9e3 100644 --- a/code/datums/diseases/wizarditis.dm +++ b/code/datums/diseases/wizarditis.dm @@ -99,7 +99,7 @@ var/datum/action/cooldown/spell/picked = pick(random_spells) picked.Activate(affected_mob) - affected_mob.sneeze() + affected_mob.emote("sneeze") return /datum/disease/wizarditis/proc/spawn_wizard_clothes(chance = 0) diff --git a/code/datums/elements/ai_retaliate.dm b/code/datums/elements/ai_retaliate.dm index 4cca4089633bc..03465d3c24644 100644 --- a/code/datums/elements/ai_retaliate.dm +++ b/code/datums/elements/ai_retaliate.dm @@ -22,4 +22,6 @@ /datum/element/ai_retaliate/proc/on_attacked(mob/victim, atom/attacker) SIGNAL_HANDLER + if (victim == attacker) + return victim.ai_controller?.insert_blackboard_key_lazylist(BB_BASIC_MOB_RETALIATE_LIST, attacker) diff --git a/code/datums/elements/chain_lightning_attack.dm b/code/datums/elements/chain_lightning_attack.dm new file mode 100644 index 0000000000000..dc4d48c15f50a --- /dev/null +++ b/code/datums/elements/chain_lightning_attack.dm @@ -0,0 +1,46 @@ +/// Applied to an item: Causes the item to deal shock damage to a target and jump to other targets +/datum/element/chain_lightning_attack + element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH_ON_HOST_DESTROY + argument_hash_start_idx = 2 + /// Damage dealt by the shock of the chain lightning + var/shock_damage + /// Range the shock will jump to another target + var/shock_range + /// Maximum number of jumps the chain lightning can make + var/chain_limit + +/datum/element/chain_lightning_attack/Attach(datum/target, shock_damage = 10, shock_range = 2, chain_limit = 3) + . = ..() + if(!isitem(target)) + return ELEMENT_INCOMPATIBLE + + src.shock_damage = shock_damage + src.shock_range = shock_range + src.chain_limit = chain_limit + RegisterSignal(target, COMSIG_ITEM_AFTERATTACK, PROC_REF(try_chain)) + +/datum/element/chain_lightning_attack/Detach(datum/source, ...) + . = ..() + UnregisterSignal(source, COMSIG_ITEM_AFTERATTACK) + +/datum/element/chain_lightning_attack/proc/try_chain(obj/item/source, atom/hit, mob/user) + SIGNAL_HANDLER + + if(!isliving(hit)) + return + do_chain(source, hit, user, list(user)) + +/datum/element/chain_lightning_attack/proc/do_chain(obj/item/source, mob/living/next_target, atom/last_target, list/dont_hit = list()) + if(!next_target.electrocute_act(shock_damage, source, flags = SHOCK_NOGLOVES|SHOCK_NOSTUN)) + return + if(last_target != next_target) + last_target.Beam(next_target, icon_state = "lightning[rand(1, 12)]", time = 0.5 SECONDS) + dont_hit += next_target + if(length(dont_hit) >= chain_limit + 1) + return + + for(var/mob/living/other_victim in view(next_target, shock_range)) + if(other_victim in dont_hit) + continue + do_chain(source, other_victim, next_target, dont_hit) + break diff --git a/code/datums/elements/dextrous.dm b/code/datums/elements/dextrous.dm index 240cfc88494d3..a73d58e18788a 100644 --- a/code/datums/elements/dextrous.dm +++ b/code/datums/elements/dextrous.dm @@ -67,7 +67,7 @@ /datum/element/dextrous/proc/on_examined(mob/living/examined, mob/user, list/examine_list) SIGNAL_HANDLER for(var/obj/item/held_item in examined.held_items) - if(held_item.item_flags & (ABSTRACT|EXAMINE_SKIP|HAND_ITEM)) + if((held_item.item_flags & (ABSTRACT|HAND_ITEM)) || HAS_TRAIT(held_item, TRAIT_EXAMINE_SKIP)) continue examine_list += span_info("[examined.p_They()] [examined.p_have()] [held_item.examine_title(user)] in [examined.p_their()] \ [examined.get_held_index_name(examined.get_held_index_of_item(held_item))].") diff --git a/code/datums/elements/elevation.dm b/code/datums/elements/elevation.dm index 959fa14f79837..bba8a4b1605a7 100644 --- a/code/datums/elements/elevation.dm +++ b/code/datums/elements/elevation.dm @@ -78,6 +78,7 @@ reset_elevation(changed) #define ELEVATE_TIME 0.2 SECONDS +#define ELEVATION_SOURCE(datum) "elevation_[REF(datum)]" /** * The core element attached to the turf itself. Do not use this directly! @@ -109,14 +110,10 @@ src.pixel_shift = pixel_shift - ADD_TRAIT(target, TRAIT_ELEVATED_TURF, REF(src)) + ADD_TRAIT(target, TRAIT_ELEVATED_TURF, ELEVATION_SOURCE(src)) for(var/mob/living/living in target) - ADD_TRAIT(living, TRAIT_ON_ELEVATED_SURFACE, REF(src)) - RegisterSignal(living, COMSIG_LIVING_SET_BUCKLED, PROC_REF(on_set_buckled)) - RegisterSignal(living, SIGNAL_ADDTRAIT(TRAIT_IGNORE_ELEVATION), PROC_REF(on_ignore_elevation_add)) - RegisterSignal(living, SIGNAL_REMOVETRAIT(TRAIT_IGNORE_ELEVATION), PROC_REF(on_ignore_elevation_remove)) - elevate_mob(living) + register_new_mob(living) /datum/element/elevation_core/Detach(datum/source) /** @@ -130,53 +127,72 @@ COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON, COMSIG_TURF_RESET_ELEVATION, )) - REMOVE_TRAIT(source, TRAIT_ELEVATED_TURF, REF(src)) + REMOVE_TRAIT(source, TRAIT_ELEVATED_TURF, ELEVATION_SOURCE(src)) for(var/mob/living/living in source) - if(!HAS_TRAIT_FROM(living, TRAIT_ON_ELEVATED_SURFACE, REF(src))) - continue - REMOVE_TRAIT(living, TRAIT_ON_ELEVATED_SURFACE, REF(src)) - elevate_mob(living, -pixel_shift) + deelevate_mob(living) UnregisterSignal(living, list(COMSIG_LIVING_SET_BUCKLED, SIGNAL_ADDTRAIT(TRAIT_IGNORE_ELEVATION), SIGNAL_REMOVETRAIT(TRAIT_IGNORE_ELEVATION))) return ..() /datum/element/elevation_core/proc/on_entered(turf/source, atom/movable/entered, atom/old_loc) SIGNAL_HANDLER - if((isnull(old_loc) || !HAS_TRAIT_FROM(old_loc, TRAIT_ELEVATED_TURF, REF(src))) && isliving(entered)) - ADD_TRAIT(entered, TRAIT_ON_ELEVATED_SURFACE, REF(src)) - var/elevate_time = isturf(old_loc) && source.Adjacent(old_loc) ? ELEVATE_TIME : 0 - elevate_mob(entered, elevate_time = elevate_time) - RegisterSignal(entered, COMSIG_LIVING_SET_BUCKLED, PROC_REF(on_set_buckled)) - RegisterSignal(entered, SIGNAL_ADDTRAIT(TRAIT_IGNORE_ELEVATION), PROC_REF(on_ignore_elevation_add)) - RegisterSignal(entered, SIGNAL_REMOVETRAIT(TRAIT_IGNORE_ELEVATION), PROC_REF(on_ignore_elevation_remove)) + if((isnull(old_loc) || !HAS_TRAIT_FROM(old_loc, TRAIT_ELEVATED_TURF, ELEVATION_SOURCE(src))) && isliving(entered)) + register_new_mob(entered, elevate_time = isturf(old_loc) && source.Adjacent(old_loc) ? ELEVATE_TIME : 0) /datum/element/elevation_core/proc/on_initialized_on(turf/source, atom/movable/spawned) SIGNAL_HANDLER - if(isliving(spawned) && !HAS_TRAIT(spawned, TRAIT_ON_ELEVATED_SURFACE)) - on_entered(entered = spawned) + if(isliving(spawned)) + register_new_mob(spawned, elevate_time = 0) /datum/element/elevation_core/proc/on_exited(turf/source, atom/movable/gone) SIGNAL_HANDLER - if((isnull(gone.loc) || !HAS_TRAIT_FROM(gone.loc, TRAIT_ELEVATED_TURF, REF(src))) && isliving(gone)) + if((isnull(gone.loc) || !HAS_TRAIT_FROM(gone.loc, TRAIT_ELEVATED_TURF, ELEVATION_SOURCE(src))) && isliving(gone)) // Always unregister the signals, we're still leaving even if not affected by elevation. UnregisterSignal(gone, list(COMSIG_LIVING_SET_BUCKLED, SIGNAL_ADDTRAIT(TRAIT_IGNORE_ELEVATION), SIGNAL_REMOVETRAIT(TRAIT_IGNORE_ELEVATION))) - if(!HAS_TRAIT_FROM(gone, TRAIT_ON_ELEVATED_SURFACE, REF(src))) - return - REMOVE_TRAIT(gone, TRAIT_ON_ELEVATED_SURFACE, REF(src)) - var/elevate_time = isturf(gone.loc) && source.Adjacent(gone.loc) ? ELEVATE_TIME : 0 - elevate_mob(gone, -pixel_shift, elevate_time) + deelevate_mob(gone, isturf(gone.loc) && source.Adjacent(gone.loc) ? ELEVATE_TIME : 0) + +/// Registers a new mob to be elevated, and elevates it. +/datum/element/elevation_core/proc/register_new_mob(mob/living/new_mob, elevate_time = ELEVATE_TIME) + elevate_mob(new_mob, elevate_time = elevate_time) + // mobs can reasonably be reigstered twice if the element is attached and then their init finishes + RegisterSignal(new_mob, COMSIG_LIVING_SET_BUCKLED, PROC_REF(on_set_buckled), override = TRUE) + RegisterSignal(new_mob, SIGNAL_ADDTRAIT(TRAIT_IGNORE_ELEVATION), PROC_REF(on_ignore_elevation_add), override = TRUE) + RegisterSignal(new_mob, SIGNAL_REMOVETRAIT(TRAIT_IGNORE_ELEVATION), PROC_REF(on_ignore_elevation_remove), override = TRUE) -/datum/element/elevation_core/proc/elevate_mob(mob/living/target, z_shift = pixel_shift, elevate_time = ELEVATE_TIME, force = FALSE) +/** + * Elevates the mob by pixel_shift amount. + * + * If the mob has the TRAIT_IGNORE_ELEVATION trait, it will not be elevated. + * + * If the mob is buckled to something... + * ...And that something is a vehicle, it will also be elevated. + * ...And that something is an object, neither the mob nor the object will be elevated. + * ...And that something is a mob, we will be elevated (but not the other mob). + */ +/datum/element/elevation_core/proc/elevate_mob(mob/living/target, elevate_time = ELEVATE_TIME, force = FALSE) if(HAS_TRAIT(target, TRAIT_IGNORE_ELEVATION) && !force) return - var/buckled_to_vehicle = FALSE + // while the offset system can natively handle this, + // we want to avoid accidentally double-elevating anything they're buckled to (namely vehicles) + if(target.has_offset(source = ELEVATION_SOURCE(src))) + return + // We are buckled to something if(target.buckled) + // We are buckled to a vehicle, so it also must be elevated if(isvehicle(target.buckled)) - buckled_to_vehicle = TRUE - else if(!isliving(target.buckled)) + animate(target.buckled, pixel_z = pixel_shift, time = elevate_time, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) + // We are buckled to a mob - they're elevated so we're elevated + else if(isliving(target.buckled)) + pass() + // We are buckled to some other object - perhaps the object itself - so skip + else return - animate(target, pixel_z = z_shift, time = elevate_time, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) - if(buckled_to_vehicle) - animate(target.buckled, pixel_z = z_shift, time = elevate_time, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) + target.add_offsets(ELEVATION_SOURCE(src), z_add = pixel_shift, animate = elevate_time > 0) + +/// Reverts elevation of the mob. +/datum/element/elevation_core/proc/deelevate_mob(mob/living/target, elevate_time = ELEVATE_TIME) + target.remove_offsets(ELEVATION_SOURCE(src), animate = elevate_time > 0) + if(isvehicle(target.buckled)) + animate(target.buckled, pixel_z = -pixel_shift, time = elevate_time, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) /** * If the mob is buckled or unbuckled to/from a vehicle, shift it up/down @@ -190,28 +206,40 @@ SIGNAL_HANDLER if(HAS_TRAIT(source, TRAIT_IGNORE_ELEVATION)) return + // We were buckled to something if(source.buckled) + // It was a vehicle, so reset its pixel_z if(isvehicle(source.buckled)) animate(source.buckled, pixel_z = -pixel_shift, time = ELEVATE_TIME, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) - else if(!isliving(source.buckled)) - animate(source, pixel_z = pixel_shift, time = ELEVATE_TIME, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) - if(!new_buckled) - return - if(isvehicle(new_buckled)) - animate(new_buckled, pixel_z = pixel_shift, time = ELEVATE_TIME, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) - else if(!isliving(new_buckled)) - animate(source, pixel_z = -pixel_shift, time = ELEVATE_TIME, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) + // It was a mob, so revert our pixel_z + else if(isliving(source.buckled)) + deelevate_mob(source) + // It was some object, maybe the object itself, elevate us + else + source.add_offsets(ELEVATION_SOURCE(src), z_add = pixel_shift) + // We are now buckled to something + if(new_buckled) + // It's a vehicle, so elevate it + if(isvehicle(new_buckled)) + animate(new_buckled, pixel_z = pixel_shift, time = ELEVATE_TIME, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) + // It's a mob, so elevate us + else if(isliving(new_buckled)) + elevate_mob(source) + // It's some object, maybe the object itself, so clear elevation + else + source.remove_offsets(ELEVATION_SOURCE(src)) /datum/element/elevation_core/proc/on_ignore_elevation_add(mob/living/source, trait) SIGNAL_HANDLER - elevate_mob(source, -pixel_shift, force = TRUE) + deelevate_mob(source) /datum/element/elevation_core/proc/on_ignore_elevation_remove(mob/living/source, trait) SIGNAL_HANDLER - elevate_mob(source, pixel_shift) + elevate_mob(source) /datum/element/elevation_core/proc/on_reset_elevation(turf/source, list/current_values) SIGNAL_HANDLER current_values[ELEVATION_CURRENT_PIXEL_SHIFT] = pixel_shift #undef ELEVATE_TIME +#undef ELEVATION_SOURCE diff --git a/code/datums/elements/immerse.dm b/code/datums/elements/immerse.dm index 4c57c40a79113..f5c1e75571809 100644 --- a/code/datums/elements/immerse.dm +++ b/code/datums/elements/immerse.dm @@ -335,23 +335,23 @@ GLOBAL_LIST_INIT(immerse_ignored_movable, typecacheof(list( /// Oh, yeah, didn't I mention turning a visual overlay affects its pixel x/y/w/z too? Yeah, it sucks. var/new_x = vis_overlay.extra_width var/new_y = vis_overlay.extra_height - var/old_div = source.current_size/resize - var/offset_lying = source.rotate_on_lying ? PIXEL_Y_OFFSET_LYING : source.get_pixel_y_offset_standing(source.current_size/resize) + var/old_div = source.current_size / resize + var/offset_lying = source.rotate_on_lying ? PIXEL_Y_OFFSET_LYING : source.get_transform_translation_size(old_div) switch(source.lying_prev) if(270) vis_overlay.pixel_x += -offset_lying / old_div if(90) vis_overlay.pixel_x += offset_lying / old_div if(0) - vis_overlay.pixel_y += -source.get_pixel_y_offset_standing(source.current_size/resize) / old_div + vis_overlay.pixel_y += -source.get_transform_translation_size(old_div) / old_div switch(new_lying_angle) if(270) - new_x += -source.body_position_pixel_y_offset / source.current_size + new_x += -offset_lying / source.current_size if(90) - new_x += source.body_position_pixel_y_offset / source.current_size + new_x += offset_lying / source.current_size if(0) - new_y += -source.body_position_pixel_y_offset / source.current_size + new_y += -source.get_transform_translation_size(old_div) / old_div animate(vis_overlay, transform = new_transform, pixel_x = new_x, pixel_y = new_y, time = UPDATE_TRANSFORM_ANIMATION_TIME, easing = (EASE_IN|EASE_OUT)) addtimer(CALLBACK(vis_overlay, TYPE_PROC_REF(/atom/movable/immerse_overlay, adjust_living_overlay_offset), source), UPDATE_TRANSFORM_ANIMATION_TIME) @@ -406,6 +406,4 @@ GLOBAL_LIST_INIT(immerse_ignored_movable, typecacheof(list( /atom/movable/immerse_overlay/proc/adjust_living_overlay_offset(mob/living/source) pixel_x = extra_width pixel_y = extra_height - overlay_appearance.pixel_y = -source.body_position_pixel_y_offset overlays = list(overlay_appearance) - overlay_appearance.pixel_y = 0 diff --git a/code/datums/elements/mirage_border.dm b/code/datums/elements/mirage_border.dm index ca7c422dd1127..b7af7ee91f605 100644 --- a/code/datums/elements/mirage_border.dm +++ b/code/datums/elements/mirage_border.dm @@ -20,9 +20,10 @@ var/x = target_turf.x var/y = target_turf.y var/z = clamp(target_turf.z, 1, world.maxz) - var/turf/southwest = locate(clamp(x - (direction & WEST ? range : 0), 1, world.maxx), clamp(y - (direction & SOUTH ? range : 0), 1, world.maxy), z) - var/turf/northeast = locate(clamp(x + (direction & EAST ? range : 0), 1, world.maxx), clamp(y + (direction & NORTH ? range : 0), 1, world.maxy), z) - holder.vis_contents += block(southwest, northeast) + holder.vis_contents += block( + x - (direction & WEST ? range : 0), y - (direction & SOUTH ? range : 0), z, + x + (direction & EAST ? range : 0), y + (direction & NORTH ? range : 0), z + ) if(direction & SOUTH) holder.pixel_y -= ICON_SIZE_Y * range if(direction & WEST) diff --git a/code/datums/elements/movetype_handler.dm b/code/datums/elements/movetype_handler.dm index e88aac6e26515..ed10a8825b89d 100644 --- a/code/datums/elements/movetype_handler.dm +++ b/code/datums/elements/movetype_handler.dm @@ -69,7 +69,8 @@ /// Called when the TRAIT_NO_FLOATING_ANIM trait is added to the movable. Stops it from bobbing up and down. /datum/element/movetype_handler/proc/on_no_floating_anim_trait_gain(atom/movable/source, trait) SIGNAL_HANDLER - STOP_FLOATING_ANIM(source) + if(source.movement_type & (FLOATING|FLYING)) + STOP_FLOATING_ANIM(source) /// Called when the TRAIT_NO_FLOATING_ANIM trait is removed from the mob. Restarts the bobbing animation. /datum/element/movetype_handler/proc/on_no_floating_anim_trait_loss(atom/movable/source, trait) diff --git a/code/datums/elements/slow_target_click_cd_attack.dm b/code/datums/elements/slow_target_click_cd_attack.dm new file mode 100644 index 0000000000000..93403501a34b3 --- /dev/null +++ b/code/datums/elements/slow_target_click_cd_attack.dm @@ -0,0 +1,54 @@ +/// Applied to items: Applies a status effect to the target that slows their click CD +/datum/element/slow_target_click_cd_attack + element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH_ON_HOST_DESTROY + argument_hash_start_idx = 2 + /// How much click CD to add to the target's clicks + var/reduction + +/datum/element/slow_target_click_cd_attack/Attach(datum/target, reduction = 0.2 SECONDS) + . = ..() + if(!isitem(target)) + return ELEMENT_INCOMPATIBLE + + src.reduction = reduction + RegisterSignal(target, COMSIG_ITEM_AFTERATTACK, PROC_REF(try_slow)) + +/datum/element/slow_target_click_cd_attack/Detach(datum/source, ...) + . = ..() + UnregisterSignal(source, COMSIG_ITEM_AFTERATTACK) + +/datum/element/slow_target_click_cd_attack/proc/try_slow(obj/item/source, atom/hit, mob/user) + SIGNAL_HANDLER + + if(!isliving(hit)) + return + var/mob/living/target = hit + target.apply_status_effect(/datum/status_effect/cd_slow, reduction, REF(src)) + +/// Applied by [/datum/element/slow_target_click_cd_attack] to slow the target's click CD +/datum/status_effect/cd_slow + id = "cd_slow" + duration = 4 SECONDS + status_type = STATUS_EFFECT_MULTIPLE + alert_type = null + tick_interval = STATUS_EFFECT_NO_TICK + /// How much click CD to add to the target's clicks + var/reduction + /// The source of the slow, they don't stack + var/source + +/datum/status_effect/cd_slow/on_creation(mob/living/new_owner, reduction, source) + src.reduction = reduction + src.source = source + return ..() + +/datum/status_effect/cd_slow/on_apply() + for(var/datum/status_effect/cd_slow/slow in owner) + if(slow.source == src.source) + slow.reduction = max(slow.reduction, src.reduction) + return FALSE + + return TRUE + +/datum/status_effect/cd_slow/nextmove_adjust() + return reduction diff --git a/code/datums/elements/strippable.dm b/code/datums/elements/strippable.dm index 14cdda8e4cf52..8269128e1b08f 100644 --- a/code/datums/elements/strippable.dm +++ b/code/datums/elements/strippable.dm @@ -362,7 +362,7 @@ continue var/obj/item/item = item_data.get_item(owner) - if (isnull(item) || (HAS_TRAIT(item, TRAIT_NO_STRIP) || (item.item_flags & EXAMINE_SKIP))) + if (isnull(item) || (HAS_TRAIT(item, TRAIT_NO_STRIP) || HAS_TRAIT(item, TRAIT_EXAMINE_SKIP))) items[strippable_key] = result continue diff --git a/code/datums/greyscale/layer.dm b/code/datums/greyscale/layer.dm index f12fb1992c9db..6512a6c3d5619 100644 --- a/code/datums/greyscale/layer.dm +++ b/code/datums/greyscale/layer.dm @@ -92,8 +92,7 @@ /datum/greyscale_layer/icon_state/Initialize(icon_file) . = ..() - var/list/icon_states = icon_states(icon_file) - if(!(icon_state in icon_states)) + if(!icon_exists(icon_file, icon_state)) CRASH("Configured icon state \[[icon_state]\] was not found in [icon_file]. Double check your json configuration.") icon = new(icon_file, icon_state) diff --git a/code/datums/martial/boxing.dm b/code/datums/martial/boxing.dm index e46467327ede7..c4028c47edda2 100644 --- a/code/datums/martial/boxing.dm +++ b/code/datums/martial/boxing.dm @@ -111,7 +111,7 @@ if(istype(potential_spine)) strength_bonus *= potential_spine.strength_bonus - damage += round(athletics_skill * check_streak(attacker, defender) + strength_bonus) + damage += round(athletics_skill * check_streak(attacker, defender) + strength_bonus, 1) grant_experience = TRUE var/current_atk_verb = atk_verb @@ -149,7 +149,7 @@ to_chat(attacker, span_danger("You [current_atk_verbed] [defender]!")) // Determines the total amount of experience earned per punch - var/experience_earned = round(damage * 0.25, 0.1) + var/experience_earned = round(damage/4, 1) defender.apply_damage(damage, damage_type, affecting, armor_block) @@ -168,7 +168,7 @@ var/defender_athletics_skill = clamp(defender.mind?.get_skill_modifier(/datum/skill/athletics, SKILL_RANDS_MODIFIER), 0, 100) //Determine our final probability, using a clamp to stop any prob() weirdness. - var/final_knockout_probability = clamp(round(attacker_athletics_skill - defender_athletics_skill), 0 , 100) + var/final_knockout_probability = clamp(round(attacker_athletics_skill - defender_athletics_skill, 1), 0 , 100) if(!prob(final_knockout_probability)) return TRUE @@ -222,10 +222,10 @@ /// Handles our instances of experience gain while boxing. It also applies the exercised status effect. /datum/martial_art/boxing/proc/skill_experience_adjustment(mob/living/boxer, experience_value) //Boxing in heavier gravity gives you more experience - var/gravity_modifier = boxer.has_gravity() > STANDARD_GRAVITY ? 1 : 0.5 + var/gravity_modifier = boxer.has_gravity() > STANDARD_GRAVITY ? 1 : 2 //You gotta sleep before you get any experience! - boxer.mind?.adjust_experience(/datum/skill/athletics, round(experience_value * gravity_modifier, 0.1)) + boxer.mind?.adjust_experience(/datum/skill/athletics, round(experience_value / gravity_modifier, 1)) boxer.apply_status_effect(/datum/status_effect/exercised) /// Handles our blocking signals, similar to hit_reaction() on items. Only blocks while the boxer is in throw mode. @@ -254,7 +254,7 @@ if(!honor_check(attacker)) return NONE - var/experience_earned = round(damage * 0.25, 0.1) + var/experience_earned = round(damage/4, 1) if(!damage) experience_earned = 2 @@ -346,16 +346,17 @@ human_attacker.say("[first_word_pick][second_word_pick]!!!", forced = "hunter boxing enthusiastic battlecry") defender.apply_status_effect(/datum/status_effect/rebuked) defender.apply_damage(damage * 2, default_damage_type, BODY_ZONE_CHEST, armor_block) //deals double our damage AGAIN - attacker.reagents.add_reagent(/datum/reagent/medicine/omnizine/godblood, 3) //Get a little healing in return for a successful crit + + var/healing_factor = round(damage/3, 1) + attacker.heal_overall_damage(healing_factor, healing_factor, healing_factor) log_combat(attacker, defender, "hunter crit punched (boxing)") -// Our hunter boxer speeds up their attacks when completing a combo against a valid target, and does a sizable amount of extra damage. +// Our hunter boxer does a sizable amount of extra damage on a successful combo or block /datum/martial_art/boxing/hunter/perform_extra_effect(mob/living/attacker, mob/living/defender) if(defender.mob_biotypes & MOB_HUMANOID && !istype(defender, /mob/living/simple_animal/hostile/megafauna)) return // Does not apply to humans (who aren't megafauna) - attacker.changeNext_move(CLICK_CD_RAPID) defender.apply_damage(rand(15,20), default_damage_type, BODY_ZONE_CHEST) #undef LEFT_RIGHT_COMBO diff --git a/code/datums/mind/_mind.dm b/code/datums/mind/_mind.dm index a9f0d7e501604..dccd0876c82e0 100644 --- a/code/datums/mind/_mind.dm +++ b/code/datums/mind/_mind.dm @@ -408,41 +408,6 @@ message_admins("[key_name_admin(usr)] has unemag'ed [ai]'s Cyborgs.") log_admin("[key_name(usr)] has unemag'ed [ai]'s Cyborgs.") - else if(href_list["edit_obj_tc"]) - var/datum/traitor_objective/objective = locate(href_list["edit_obj_tc"]) - if(!istype(objective)) - return - var/telecrystal = input("Set new telecrystal reward for [objective.name]","Syndicate uplink", objective.telecrystal_reward) as null | num - if(isnull(telecrystal)) - return - objective.telecrystal_reward = telecrystal - message_admins("[key_name_admin(usr)] changed [objective]'s telecrystal reward count to [telecrystal].") - log_admin("[key_name(usr)] changed [objective]'s telecrystal reward count to [telecrystal].") - else if(href_list["edit_obj_pr"]) - var/datum/traitor_objective/objective = locate(href_list["edit_obj_pr"]) - if(!istype(objective)) - return - var/progression = input("Set new progression reward for [objective.name]","Syndicate uplink", objective.progression_reward) as null | num - if(isnull(progression)) - return - objective.progression_reward = progression - message_admins("[key_name_admin(usr)] changed [objective]'s progression reward count to [progression].") - log_admin("[key_name(usr)] changed [objective]'s progression reward count to [progression].") - else if(href_list["fail_objective"]) - var/datum/traitor_objective/objective = locate(href_list["fail_objective"]) - if(!istype(objective)) - return - var/performed = objective.objective_state == OBJECTIVE_STATE_INACTIVE? "skipped" : "failed" - message_admins("[key_name_admin(usr)] forcefully [performed] [objective].") - log_admin("[key_name(usr)] forcefully [performed] [objective].") - objective.fail_objective() - else if(href_list["succeed_objective"]) - var/datum/traitor_objective/objective = locate(href_list["succeed_objective"]) - if(!istype(objective)) - return - message_admins("[key_name_admin(usr)] forcefully succeeded [objective].") - log_admin("[key_name(usr)] forcefully succeeded [objective].") - objective.succeed_objective() else if (href_list["common"]) switch(href_list["common"]) if("undress") @@ -478,26 +443,6 @@ uplink.uplink_handler.progression_points = progression message_admins("[key_name_admin(usr)] changed [current]'s progression point count to [progression].") log_admin("[key_name(usr)] changed [current]'s progression point count to [progression].") - uplink.uplink_handler.update_objectives() - uplink.uplink_handler.generate_objectives() - if("give_objective") - if(!check_rights(R_FUN)) - return - var/datum/component/uplink/uplink = find_syndicate_uplink() - if(!uplink || !uplink.uplink_handler) - return - var/list/all_objectives = subtypesof(/datum/traitor_objective) - var/objective_typepath = tgui_input_list(usr, "Select objective", "Select objective", all_objectives) - if(!objective_typepath) - return - var/datum/traitor_objective/objective = uplink.uplink_handler.try_add_objective(objective_typepath, force = TRUE) - if(objective) - message_admins("[key_name_admin(usr)] gave [current] a traitor objective ([objective_typepath]).") - log_admin("[key_name(usr)] gave [current] a traitor objective ([objective_typepath]).") - else - to_chat(usr, span_warning("Failed to generate the objective!")) - message_admins("[key_name_admin(usr)] failed to give [current] a traitor objective ([objective_typepath]).") - log_admin("[key_name(usr)] failed to give [current] a traitor objective ([objective_typepath]).") if("uplink") var/datum/antagonist/traitor/traitor_datum = has_antag_datum(/datum/antagonist/traitor) if(!give_uplink(antag_datum = traitor_datum || null)) diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm index bbfdc8b3fa5f4..1f93721d53ada 100644 --- a/code/datums/mutations/body.dm +++ b/code/datums/mutations/body.dm @@ -226,12 +226,10 @@ owner.emote("twitch") if(2 to 3) owner.say("[prob(50) ? ";" : ""][pick("SHIT", "PISS", "FUCK", "CUNT", "COCKSUCKER", "MOTHERFUCKER", "TITS")]", forced=name) - var/x_offset_old = owner.pixel_x - var/y_offset_old = owner.pixel_y - var/x_offset = owner.pixel_x + rand(-2,2) - var/y_offset = owner.pixel_y + rand(-1,1) - animate(owner, pixel_x = x_offset, pixel_y = y_offset, time = 1) - animate(owner, pixel_x = x_offset_old, pixel_y = y_offset_old, time = 1) + var/w_offset = rand(-2, 2) + var/z_offset = rand(-1, 1) + animate(owner, pixel_w = w_offset, pixel_z = z_offset, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) + animate(owner, pixel_w = -w_offset, pixel_z = -z_offset, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) //Deafness makes you deaf. diff --git a/code/datums/proximity_monitor/fields/heretic_arena.dm b/code/datums/proximity_monitor/fields/heretic_arena.dm new file mode 100644 index 0000000000000..af949963a7ca9 --- /dev/null +++ b/code/datums/proximity_monitor/fields/heretic_arena.dm @@ -0,0 +1,287 @@ +GLOBAL_LIST_EMPTY(heretic_arenas) + +// Invisible effect that doesnt exist outside of containing the prox monitor +/obj/effect/abstract/heretic_arena + icon = null + icon_state = null + alpha = 0 + invisibility = INVISIBILITY_ABSTRACT + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + anchored = TRUE + resistance_flags = INDESTRUCTIBLE + /// Proximity monitor that handles the effects we are looking for + var/datum/proximity_monitor/advanced/heretic_arena/arena + +/obj/effect/abstract/heretic_arena/Initialize(mapload, range, duration, caster) + . = ..() + arena = new(src, range) + QDEL_IN(src, duration) + arena.set_caster(caster) + GLOB.heretic_arenas += src + +/obj/effect/abstract/heretic_arena/Destroy(force) + QDEL_NULL(arena) + GLOB.heretic_arenas -= src + . = ..() + +/datum/proximity_monitor/advanced/heretic_arena + /// Reference to the caster, the spell collapses if they leave the arena + var/arena_caster + /// List of mobs inside our arena + var/list/contained_mobs = list() + /// List of border walls we have placed on the edges of the monitor + var/list/border_walls = list() + /// List of blades we've so generously handed out to the participants + var/list/welfare_blades = list() + /// List of immunities given to our combatants + var/static/list/given_immunities = list( + TRAIT_BOMBIMMUNE, + TRAIT_IGNORESLOWDOWN, + TRAIT_NO_SLIP_ALL, + TRAIT_NOBREATH, + TRAIT_PIERCEIMMUNE, + TRAIT_PUSHIMMUNE, + TRAIT_RADIMMUNE, + TRAIT_RESISTCOLD, + TRAIT_RESISTHEAT, + TRAIT_RESISTHIGHPRESSURE, + TRAIT_RESISTLOWPRESSURE, + TRAIT_SHOCKIMMUNE, + TRAIT_SLEEPIMMUNE, + TRAIT_STUNIMMUNE, + TRAIT_FORCED_GRAVITY, + ) + +/datum/proximity_monitor/advanced/heretic_arena/New(atom/_host, range, _ignore_if_not_on_turf) + . = ..() + recalculate_field(full_recalc = TRUE) + var/list/things_in_range = range(range) + for(var/mob/living/carbon/human/human_in_range in things_in_range) + human_in_range.add_traits(given_immunities, HERETIC_ARENA_TRAIT) + contained_mobs += human_in_range + if(!IS_HERETIC(human_in_range)) + var/obj/item/melee/sickly_blade/training/new_blade = new(get_turf(human_in_range)) + welfare_blades += new_blade + INVOKE_ASYNC(human_in_range, TYPE_PROC_REF(/mob, put_in_hands), new_blade) + human_in_range.mind?.add_antag_datum(/datum/antagonist/heretic_arena_participant) + human_in_range.apply_status_effect(/datum/status_effect/arena_tracker) + RegisterSignal(human_in_range, COMSIG_CAN_Z_MOVE, PROC_REF(on_try_z_move)) + RegisterSignal(human_in_range, COMSIG_LADDER_TRAVEL, PROC_REF(on_try_ladder)) + RegisterSignal(human_in_range, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(on_pre_move)) + RegisterSignal(human_in_range, COMSIG_MOVABLE_POST_TELEPORT, PROC_REF(on_teleport)) + +/datum/proximity_monitor/advanced/heretic_arena/Destroy() + for(var/mob/living/carbon/human/mob in contained_mobs) + mob.remove_traits(given_immunities, HERETIC_ARENA_TRAIT) + mob.remove_status_effect(/datum/status_effect/arena_tracker) + UnregisterSignal(mob, list(COMSIG_CAN_Z_MOVE, COMSIG_LADDER_TRAVEL, COMSIG_MOVABLE_PRE_MOVE, COMSIG_MOVABLE_POST_TELEPORT)) + if(mob.mind?.has_antag_datum(/datum/antagonist/heretic_arena_participant)) + mob.mind.remove_antag_datum(/datum/antagonist/heretic_arena_participant) + for(var/turf/to_restore in border_walls) + to_restore.ChangeTurf(border_walls[to_restore]) + for(var/obj/to_refund as anything in welfare_blades) + qdel(to_refund) + arena_caster = null + return ..() + +/datum/proximity_monitor/advanced/heretic_arena/setup_edge_turf(turf/target) + . = ..() + var/old_turf = target.type + target.ChangeTurf(/turf/closed/indestructible/heretic_wall) + border_walls += target + border_walls[target] += old_turf + +/datum/proximity_monitor/advanced/heretic_arena/field_edge_uncrossed(atom/movable/movable, turf/old_location, turf/new_location) + if(!isliving(movable)) + return + var/mob/living/living_mob = movable + addtimer(CALLBACK(living_mob, TYPE_PROC_REF(/mob/living, remove_status_effect), /datum/status_effect/arena_tracker), 10 SECONDS) + living_mob.remove_traits(given_immunities, HERETIC_ARENA_TRAIT) + if(living_mob == arena_caster) + QDEL_IN(host, 3 SECONDS) + +/// Prevents using ladders +/datum/proximity_monitor/advanced/heretic_arena/proc/on_try_ladder(mob/climber) + SIGNAL_HANDLER + return LADDER_TRAVEL_BLOCK + +/// If we try to enter a space turf that has a mirage, we will block the movement +/datum/proximity_monitor/advanced/heretic_arena/proc/on_pre_move(atom/movable/mover, atom/newloc) + if(locate(/atom/movable/mirage_holder) in newloc.contents) + return COMPONENT_MOVABLE_BLOCK_PRE_MOVE + +/// Blocks Z movement to new z levels +/datum/proximity_monitor/advanced/heretic_arena/proc/on_try_z_move(atom/movable/source, turf/start, turf/destination) + SIGNAL_HANDLER + if(start.z == destination.z) + return + return COMPONENT_CANT_Z_MOVE + +/// If our caster teleports away (after winning presumably) we'll collapse the arena so that it doens't needlessly linger +/datum/proximity_monitor/advanced/heretic_arena/proc/on_teleport(atom/teleportee, atom/destination, channel) + if(teleportee == arena_caster) + qdel(host) + +/datum/proximity_monitor/advanced/heretic_arena/proc/set_caster(atom/caster) + arena_caster = caster + +/turf/closed/indestructible/heretic_wall + name = "eldritch wall" + desc = "A wall penning in the sheep amongst the wolves. It glows with malevolent energy - prodding it is likely unwise." + icon = 'icons/turf/walls.dmi' + icon_state = "eldritch_forcewall" + opacity = FALSE + pass_flags_self = NONE // No PASSCLOSEDTURF because only arena victors are allowed to go in or out + +/turf/closed/indestructible/heretic_wall/CanAllowThrough(atom/movable/mover, border_dir) + if(isliving(mover)) + var/mob/living/living_mover = mover + var/datum/status_effect/arena_tracker/tracker = living_mover.has_status_effect(/datum/status_effect/arena_tracker) + if(tracker?.arena_victor) + return TRUE + return ..() + +/turf/closed/indestructible/heretic_wall/Bumped(atom/movable/bumped_atom) + . = ..() + if(!isliving(bumped_atom)) + return + var/mob/living/living_mob = bumped_atom + var/atom/target = get_edge_target_turf(living_mob, get_dir(src, get_step_away(living_mob, src))) + living_mob.throw_at(target, 4, 5) + to_chat(living_mob, span_userdanger("The wall repels you with tremendous force!")) + +/// Called when you crit somebody to update your crown +/datum/status_effect/arena_tracker/proc/on_crit_somebody() + owner.cut_overlay(crown_overlay) + crown_overlay = mutable_appearance('icons/mob/effects/crown.dmi', "arena_victor", -HALO_LAYER) + crown_overlay.pixel_y = 24 + owner.add_overlay(crown_overlay) + owner.remove_traits(list(TRAIT_ELDRITCH_ARENA_PARTICIPANT, TRAIT_NO_TELEPORT), TRAIT_STATUS_EFFECT(id)) + + // The mansus celebrates your efforts + if(IS_HERETIC(owner)) + owner.heal_overall_damage(60, 60, 60) + owner.adjustToxLoss(-60, forced = TRUE) // Slime heretics everywhere... + owner.adjustOxyLoss(-60) + if(iscarbon(owner)) + var/mob/living/carbon/carbon_owner = owner + for(var/datum/wound/wound as anything in carbon_owner.all_wounds) + wound.remove_wound() + + if(arena_victor) // No need to spam if we've already killed at least 1 person + return + if(IS_HERETIC(owner)) + to_chat(owner, span_big(span_hypnophrase("The mansus is pleased with your performance, you may leave now."))) + else + to_chat(owner, span_big(span_hypnophrase("You have done well, you may leave now."))) + arena_victor = TRUE + +/** + * Status applied to every mob in the heretic arena. + * Tracks the last person to damage owner. + * When owner enters crit, we send a signal to last_attacker status so they can leave the arena + */ + +/datum/status_effect/arena_tracker + id = "arena_tracker" + duration = STATUS_EFFECT_PERMANENT + tick_interval = STATUS_EFFECT_NO_TICK + status_type = STATUS_EFFECT_UNIQUE + alert_type = null + /// Tracks the last person who dealt damage to this mob + var/datum/weakref/last_attacker + /// If our mob is free to leave, set to true + var/arena_victor = FALSE + /// The overlay for our mob, changes color to indicate that they are a victor and are free to leave + var/mutable_appearance/crown_overlay + +/datum/status_effect/arena_tracker/on_apply() + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_CRITICAL_CONDITION), PROC_REF(on_enter_crit)) + RegisterSignal(owner, COMSIG_MOB_APPLY_DAMAGE, PROC_REF(damage_taken)) + owner.add_traits(list(TRAIT_ELDRITCH_ARENA_PARTICIPANT, TRAIT_NO_TELEPORT), TRAIT_STATUS_EFFECT(id)) + crown_overlay = mutable_appearance('icons/mob/effects/crown.dmi', "arena_fighter", -HALO_LAYER) + crown_overlay.pixel_y = 24 + owner.add_overlay(crown_overlay) + return TRUE + +/datum/status_effect/arena_tracker/on_remove() + UnregisterSignal(owner, list(SIGNAL_ADDTRAIT(TRAIT_CRITICAL_CONDITION), COMSIG_MOB_APPLY_DAMAGE)) + owner.remove_traits(list(TRAIT_ELDRITCH_ARENA_PARTICIPANT, TRAIT_NO_TELEPORT), TRAIT_STATUS_EFFECT(id)) + owner.cut_overlay(crown_overlay) + crown_overlay = null + +// If our last attacker is an arena participant, we let them know they've scored a critical hit +/datum/status_effect/arena_tracker/proc/on_enter_crit(mob/owner) + SIGNAL_HANDLER + if(!last_attacker) + return // Safety check in case they somehow enter crit with *nobody* attacking them + var/mob/living/our_attacker = last_attacker.resolve() + if(!isliving(our_attacker) || our_attacker == owner) // We don't allow people to crit themselves as a valid way to escape + return + var/datum/status_effect/arena_tracker/their_tracker = our_attacker.has_status_effect(/datum/status_effect/arena_tracker) + if(!their_tracker) + return // Somebody killed us who isn't an arena participant + their_tracker.on_crit_somebody() + +/datum/status_effect/arena_tracker/proc/damage_taken( + datum/source, + damage_amount, + damagetype, + def_zone, + blocked, + wound_bonus, + bare_wound_bonus, + sharpness, + attack_direction, + attacking_item, + wound_clothing, +) + SIGNAL_HANDLER + if(isnull(attacking_item)) + return + if(!isobj(attacking_item)) + return + var/obj/attacking_object = attacking_item + + // Track being hit by a mob holding a stick + if(ismob(attacking_object.loc)) + last_attacker = WEAKREF(attacking_object.loc) + return + + // Track being hit by a mob throwing a stick + if(isitem(attacking_object)) + var/obj/item/thrown_item = attacking_item + var/thrown_by = thrown_item.thrownby?.resolve() + if(ismob(thrown_by)) + last_attacker = WEAKREF(thrown_by) + return + + // Edge case. If our attacking_item is a gun which the owner has dropped we need to find out who shot us + // Track being hit by a mob shooting a stick + if(isprojectile(attacking_object)) + var/obj/projectile/attacking_projectile = attacking_object + if(ismob(attacking_projectile.firer)) + last_attacker = WEAKREF(attacking_projectile.firer) + +/datum/antagonist/heretic_arena_participant + name = "Arena Participant" + show_in_roundend = FALSE + replace_banned = FALSE + objectives = list() + antag_hud_name = "brainwashed" + block_midrounds = FALSE + +/datum/antagonist/heretic_arena_participant/on_gain() + forge_objectives() + return ..() + +/datum/antagonist/heretic_arena_participant/forge_objectives() + var/datum/objective/survive = new /datum/objective + survive.owner = owner + survive.explanation_text = "You have been trapped in an arena. The only way out is to slaughter someone else. Kill your captor, or betray your friends - the choice is yours." + objectives += survive + var/datum/objective/fight_to_escape = new /datum/objective + fight_to_escape.owner = owner + fight_to_escape.explanation_text = "Escape is impossible. The only way out is to defeat another participant in this battle to the death. \ + A weapon has been bestowed unto you, granting you a fighting chance, it would be quite a shame were you to attempt to break it." + objectives += fight_to_escape diff --git a/code/datums/quirks/negative_quirks/nyctophobia.dm b/code/datums/quirks/negative_quirks/nyctophobia.dm index af891a2058ad2..94664f43f8518 100644 --- a/code/datums/quirks/negative_quirks/nyctophobia.dm +++ b/code/datums/quirks/negative_quirks/nyctophobia.dm @@ -6,6 +6,7 @@ medical_record_text = "Patient demonstrates a fear of the dark. (Seriously?)" hardcore_value = 5 mail_goodies = list(/obj/effect/spawner/random/engineering/flashlight) + no_process_traits = list(TRAIT_MIND_TEMPORARILY_GONE, TRAIT_FEARLESS, TRAIT_KNOCKEDOUT) /datum/quirk/nyctophobia/add(client/client_source) RegisterSignal(quirk_holder, COMSIG_MOVABLE_MOVED, PROC_REF(on_holder_moved)) diff --git a/code/datums/request_message.dm b/code/datums/request_message.dm index d9cf51bc5bed0..18feada06cb9c 100644 --- a/code/datums/request_message.dm +++ b/code/datums/request_message.dm @@ -12,8 +12,8 @@ var/message_stamped_by = "" /// The priority of the message var/priority = "" - /// The radio frequency the message should be broadcasted on - var/radio_freq = null + /// The radio channel the message should be broadcasted on + var/radio_channel = null /// The type of the request var/request_type = "" /// A list to be appended after the message, for example, list of ores @@ -26,7 +26,7 @@ message_verified_by = data["verified"] message_stamped_by = data["stamped"] priority = data["priority"] - radio_freq = data["notify_freq"] + radio_channel = data["notify_channel"] request_type = data["ore_update"] ? ORE_UPDATE_REQUEST : data["request_type"] var/list/data_appended_list = data["appended_list"] if(data_appended_list && data_appended_list.len) diff --git a/code/datums/shuttles/_shuttle.dm b/code/datums/shuttles/_shuttle.dm index 94c20d41b7365..52cb31a11fd76 100644 --- a/code/datums/shuttles/_shuttle.dm +++ b/code/datums/shuttles/_shuttle.dm @@ -56,8 +56,8 @@ . = ..() if(!.) return - var/list/turfs = block( locate(.[MAP_MINX], .[MAP_MINY], .[MAP_MINZ]), - locate(.[MAP_MAXX], .[MAP_MAXY], .[MAP_MAXZ])) + var/list/turfs = block( .[MAP_MINX], .[MAP_MINY], .[MAP_MINZ], + .[MAP_MAXX], .[MAP_MAXY], .[MAP_MAXZ]) for(var/i in 1 to turfs.len) var/turf/place = turfs[i] if(isspaceturf(place)) // This assumes all shuttles are loaded in a single spot then moved to their real destination. diff --git a/code/datums/shuttles/arrival.dm b/code/datums/shuttles/arrival.dm index 35e28a10c064b..c609ccc57410d 100644 --- a/code/datums/shuttles/arrival.dm +++ b/code/datums/shuttles/arrival.dm @@ -26,6 +26,10 @@ suffix = "pubby" name = "arrival shuttle (Pubby)" +/datum/map_template/shuttle/arrival/northstar + suffix = "northstar" + name = "arrival shuttle (North Star)" + /datum/map_template/shuttle/arrival/nebula suffix = "nebula" name = "arrival shuttle (Nebula)" diff --git a/code/datums/shuttles/cargo.dm b/code/datums/shuttles/cargo.dm index 91b9c9bca417b..209ec59f66f2e 100644 --- a/code/datums/shuttles/cargo.dm +++ b/code/datums/shuttles/cargo.dm @@ -27,6 +27,10 @@ suffix = "delta" name = "cargo ferry (Delta)" +/datum/map_template/shuttle/cargo/northstar + suffix = "northstar" + name = "cargo ferry (North Star)" + /datum/map_template/shuttle/cargo/nebula suffix = "nebula" name = "supply shuttle (Nebula)" diff --git a/code/datums/shuttles/mining.dm b/code/datums/shuttles/mining.dm index 4bae7ebd78553..21747a488e326 100644 --- a/code/datums/shuttles/mining.dm +++ b/code/datums/shuttles/mining.dm @@ -44,6 +44,10 @@ suffix = "large" name = "mining shuttle (Large)" +/datum/map_template/shuttle/mining/northstar + suffix = "northstar" + name = "mining shuttle (North Star)" + /datum/map_template/shuttle/mining/nebula suffix = "nebula" name = "mining shuttle (Nebula)" @@ -60,3 +64,7 @@ /datum/map_template/shuttle/mining_common/kilo suffix = "kilo" name = "lavaland shuttle (Kilo)" + +/datum/map_template/shuttle/mining_common/northstar + suffix = "northstar" + name = "lavaland shuttle (North Star)" diff --git a/code/datums/status_effects/debuffs/debuffs.dm b/code/datums/status_effects/debuffs/debuffs.dm index 03b0775d72da7..ca2f678859dfa 100644 --- a/code/datums/status_effects/debuffs/debuffs.dm +++ b/code/datums/status_effects/debuffs/debuffs.dm @@ -802,7 +802,7 @@ if(prob(40)) fake_emote = "cough" else - owner.sneeze() + fake_emote = "sneeze" if(fake_emote) owner.emote(fake_emote) diff --git a/code/datums/status_effects/debuffs/jitteriness.dm b/code/datums/status_effects/debuffs/jitteriness.dm index 409d20f099bc2..32460b433b0e0 100644 --- a/code/datums/status_effects/debuffs/jitteriness.dm +++ b/code/datums/status_effects/debuffs/jitteriness.dm @@ -56,7 +56,7 @@ /// jitter_amount will only apply up to 300 (maximum jitter effect). /mob/living/proc/do_jitter_animation(jitter_amount = 100) var/amplitude = min(4, (jitter_amount / 100) + 1) - var/pixel_x_diff = rand(-amplitude, amplitude) - var/pixel_y_diff = rand(-amplitude / 3, amplitude / 3) - animate(src, pixel_x = pixel_x_diff, pixel_y = pixel_y_diff , time = 0.2 SECONDS, loop = 6, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) - animate(pixel_x = -pixel_x_diff , pixel_y = -pixel_y_diff , time = 0.2 SECONDS, flags = ANIMATION_RELATIVE) + var/pixel_w_diff = rand(-amplitude, amplitude) + var/pixel_z_diff = rand(-amplitude / 3, amplitude / 3) + animate(src, pixel_w = pixel_w_diff, pixel_z = pixel_z_diff , time = 0.2 SECONDS, loop = 6, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) + animate(pixel_w = -pixel_w_diff , pixel_z = -pixel_z_diff , time = 0.2 SECONDS, flags = ANIMATION_RELATIVE) diff --git a/code/datums/status_effects/debuffs/slime/slime_leech.dm b/code/datums/status_effects/debuffs/slime/slime_leech.dm index 78ccacc89d8cb..00c907d8d95e6 100644 --- a/code/datums/status_effects/debuffs/slime/slime_leech.dm +++ b/code/datums/status_effects/debuffs/slime/slime_leech.dm @@ -30,13 +30,17 @@ if(prob(bio_protection)) owner.apply_status_effect(/datum/status_effect/slimed, our_slime.slime_type.rgb_code, our_slime.slime_type.colour == SLIME_TYPE_RAINBOW) + UnregisterSignal(our_slime, list(COMSIG_LIVING_DEATH, COMSIG_MOB_UNBUCKLED, COMSIG_QDELETING,)) + if(!QDELETED(our_slime)) + our_slime.stop_feeding() + qdel(src) /datum/status_effect/slime_leech/on_remove() our_slime = null /datum/status_effect/slime_leech/tick(seconds_between_ticks) - if(our_slime.stat) + if(our_slime.stat != CONSCIOUS) our_slime.stop_feeding(silent = TRUE) return diff --git a/code/datums/status_effects/debuffs/staggered.dm b/code/datums/status_effects/debuffs/staggered.dm index dcb5dc5488800..9919a156c3191 100644 --- a/code/datums/status_effects/debuffs/staggered.dm +++ b/code/datums/status_effects/debuffs/staggered.dm @@ -43,70 +43,79 @@ /// Helper proc that causes the mob to do a stagger animation. /// Doesn't change significantly, just meant to represent swaying back and forth /mob/living/proc/do_stagger_animation() - var/normal_pos = base_pixel_x + body_position_pixel_x_offset - var/jitter_right = normal_pos + 4 - var/jitter_left = normal_pos - 4 - animate(src, pixel_x = jitter_left, 0.2 SECONDS, flags = ANIMATION_PARALLEL) - animate(pixel_x = jitter_right, time = 0.4 SECONDS) - animate(pixel_x = normal_pos, time = 0.2 SECONDS) + animate(src, pixel_w = 3, time = 0.2 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) + animate(pixel_w = -6, time = 0.4 SECONDS, flags = ANIMATION_RELATIVE) + animate(pixel_w = 3, time = 0.2 SECONDS, flags = ANIMATION_RELATIVE) /// Status effect specifically for instances where someone is vulnerable to being stunned when shoved. -/datum/status_effect/next_shove_stuns - id = "next shove stuns" - duration = 3 SECONDS +/datum/status_effect/dazed + id = "dazed" status_type = STATUS_EFFECT_UNIQUE tick_interval = 0.5 SECONDS alert_type = null remove_on_fullheal = TRUE /// Our visual cue for the vulnerable state this status effect puts us in. - var/mutable_appearance/vulnverability_overlay + var/mutable_appearance/dazed_overlay -/datum/status_effect/next_shove_stuns/on_apply() +/datum/status_effect/dazed/on_creation(mob/living/new_owner, duration = 3 SECONDS) + src.duration = duration + return ..() + +/datum/status_effect/dazed/on_apply() //Let's just clear this if they're dead or we can't stun them on a shove if(owner.stat == DEAD || HAS_TRAIT(owner, TRAIT_NO_SIDE_KICK) || HAS_TRAIT(owner, TRAIT_IMMOBILIZED)) return FALSE - RegisterSignal(owner, COMSIG_LIVING_DEATH, PROC_REF(clear_stun_vulnverability_on_death)) + RegisterSignal(owner, COMSIG_LIVING_DEATH, PROC_REF(clear_daze_on_death)) + RegisterSignal(owner, COMSIG_LIVING_SET_BODY_POSITION, PROC_REF(clear_daze_on_stand)) RegisterSignals(owner, list( COMSIG_LIVING_STATUS_PARALYZE, COMSIG_LIVING_STATUS_STUN, - COMSIG_LIVING_STATUS_IMMOBILIZE), PROC_REF(clear_stun_vulnverability) + COMSIG_LIVING_STATUS_IMMOBILIZE), PROC_REF(clear_daze) ) - ADD_TRAIT(owner, TRAIT_STUN_ON_NEXT_SHOVE, TRAIT_STATUS_EFFECT(id)) - vulnverability_overlay = mutable_appearance(icon = 'icons/effects/effects.dmi', icon_state = "dazed") - owner.add_overlay(vulnverability_overlay) + ADD_TRAIT(owner, TRAIT_DAZED, TRAIT_STATUS_EFFECT(id)) + dazed_overlay = mutable_appearance(icon = 'icons/effects/effects.dmi', icon_state = "dazed") + owner.add_overlay(dazed_overlay) return TRUE -/datum/status_effect/next_shove_stuns/on_remove() +/datum/status_effect/dazed/on_remove() UnregisterSignal(owner, list( + COMSIG_LIVING_DEATH, + COMSIG_LIVING_SET_BODY_POSITION, COMSIG_LIVING_STATUS_PARALYZE, COMSIG_LIVING_STATUS_STUN, COMSIG_LIVING_STATUS_IMMOBILIZE, - COMSIG_LIVING_DEATH, )) - REMOVE_TRAIT(owner, TRAIT_STUN_ON_NEXT_SHOVE, TRAIT_STATUS_EFFECT(id)) - if(vulnverability_overlay) - clear_stun_vulnverability_overlay() + REMOVE_TRAIT(owner, TRAIT_DAZED, TRAIT_STATUS_EFFECT(id)) + if(dazed_overlay) + clear_dazed_overlay() /// If our owner is either stunned, paralzyed or immobilized, we remove the status effect. /// This is both an anti-chainstun measure and a sanity check. -/datum/status_effect/next_shove_stuns/proc/clear_stun_vulnverability(mob/living/source, amount = 0, ignore_canstun = FALSE) +/datum/status_effect/dazed/proc/clear_daze(mob/living/source, amount = 0, ignore_canstun = FALSE) SIGNAL_HANDLER if(amount > 0) // Making absolutely sure we're removing this overlay - clear_stun_vulnverability_overlay() + clear_dazed_overlay() + qdel(src) + +/datum/status_effect/dazed/proc/clear_daze_on_stand(mob/living/source, new_position) + SIGNAL_HANDLER + + if(new_position == STANDING_UP) + clear_dazed_overlay() qdel(src) -/datum/status_effect/next_shove_stuns/proc/clear_stun_vulnverability_on_death(mob/living/source) +/datum/status_effect/dazed/proc/clear_daze_on_death(mob/living/source) SIGNAL_HANDLER - clear_stun_vulnverability_overlay() + clear_dazed_overlay() qdel(src) /// Clears our overlay where needed. -/datum/status_effect/next_shove_stuns/proc/clear_stun_vulnverability_overlay() - owner.cut_overlay(vulnverability_overlay) - vulnverability_overlay = null +/datum/status_effect/dazed/proc/clear_dazed_overlay() + owner.cut_overlay(dazed_overlay) + dazed_overlay = null /// Status effect to prevent stuns from a shove /// Only applied by shoving someone to paralyze them diff --git a/code/datums/votes/map_vote.dm b/code/datums/votes/map_vote.dm index c5f90f16d1361..08f792d291de9 100644 --- a/code/datums/votes/map_vote.dm +++ b/code/datums/votes/map_vote.dm @@ -4,13 +4,14 @@ count_method = VOTE_COUNT_METHOD_SINGLE winner_method = VOTE_WINNER_METHOD_NONE display_statistics = FALSE - /datum/vote/map_vote/New() . = ..() default_choices = SSmap_vote.get_valid_map_vote_choices() /datum/vote/map_vote/create_vote() - default_choices = SSmap_vote.get_valid_map_vote_choices() + var/list/new_choices = SSmap_vote.get_valid_map_vote_choices() + if (new_choices) + default_choices = new_choices . = ..() if(!.) return FALSE @@ -39,11 +40,16 @@ if(. != VOTE_AVAILABLE) return . + if(SSmap_vote.next_map_config) + return "The next map has already been selected." + + var/list/new_choices = SSmap_vote.get_valid_map_vote_choices() + if (new_choices) + default_choices = new_choices var/num_choices = length(default_choices) if(num_choices <= 1) return "There [num_choices == 1 ? "is only one map" : "are no maps"] to choose from." - if(SSmap_vote.next_map_config) - return "The next map has already been selected." + return VOTE_AVAILABLE /datum/vote/map_vote/get_result_text(list/all_winners, real_winner, list/non_voters) diff --git a/code/datums/weather/weather.dm b/code/datums/weather/weather.dm index fde148c51a8b7..0488f7146fb1b 100644 --- a/code/datums/weather/weather.dm +++ b/code/datums/weather/weather.dm @@ -14,8 +14,8 @@ var/desc = "Heavy gusts of wind blanket the area, periodically knocking down anyone caught in the open." /// The message displayed in chat to foreshadow the weather's beginning var/telegraph_message = span_warning("The wind begins to pick up.") - /// In deciseconds, how long from the beginning of the telegraph until the weather begins - var/telegraph_duration = 300 + /// How long from the beginning of the telegraph until the weather begins + var/telegraph_duration = 30 SECONDS /// The sound file played to everyone on an affected z-level var/telegraph_sound /// The overlay applied to all tiles on the z-level @@ -23,12 +23,12 @@ /// Displayed in chat once the weather begins in earnest var/weather_message = span_userdanger("The wind begins to blow ferociously!") - /// In deciseconds, how long the weather lasts once it begins - var/weather_duration = 1200 + /// How long the weather lasts once it begins + var/weather_duration = 2 MINUTES /// See above - this is the lowest possible duration - var/weather_duration_lower = 1200 + var/weather_duration_lower = 2 MINUTES /// See above - this is the highest possible duration - var/weather_duration_upper = 1500 + var/weather_duration_upper = 2.5 MINUTES /// Looping sound while weather is occuring var/weather_sound /// Area overlay while the weather is occuring @@ -38,8 +38,8 @@ /// Displayed once the weather is over var/end_message = span_danger("The wind relents its assault.") - /// In deciseconds, how long the "wind-down" graphic will appear before vanishing entirely - var/end_duration = 300 + /// How long the "wind-down" graphic will appear before vanishing entirely + var/end_duration = 30 SECONDS /// Sound that plays while weather is ending var/end_sound /// Area overlay while weather is ending diff --git a/code/datums/weather/weather_types/ash_storm.dm b/code/datums/weather/weather_types/ash_storm.dm index f9d9cfc612174..e793619fded7a 100644 --- a/code/datums/weather/weather_types/ash_storm.dm +++ b/code/datums/weather/weather_types/ash_storm.dm @@ -4,16 +4,16 @@ desc = "An intense atmospheric storm lifts ash off of the planet's surface and billows it down across the area, dealing intense fire damage to the unprotected." telegraph_message = span_boldwarning("An eerie moan rises on the wind. Sheets of burning ash blacken the horizon. Seek shelter.") - telegraph_duration = 300 + telegraph_duration = 30 SECONDS telegraph_overlay = "light_ash" weather_message = span_userdanger("Smoldering clouds of scorching ash billow down around you! Get inside!") - weather_duration_lower = 600 - weather_duration_upper = 1200 + weather_duration_lower = 1 MINUTES + weather_duration_upper = 2 MINUTES weather_overlay = "ash_storm" end_message = span_bolddanger("The shrieking wind whips away the last of the ash and falls to its usual murmur. It should be safe to go outside now.") - end_duration = 300 + end_duration = 30 SECONDS end_overlay = "light_ash" area_type = /area diff --git a/code/datums/weather/weather_types/floor_is_lava.dm b/code/datums/weather/weather_types/floor_is_lava.dm index 25037d433b5eb..2541463f4058b 100644 --- a/code/datums/weather/weather_types/floor_is_lava.dm +++ b/code/datums/weather/weather_types/floor_is_lava.dm @@ -4,15 +4,15 @@ desc = "The ground turns into surprisingly cool lava, lightly damaging anything on the floor." telegraph_message = span_warning("You feel the ground beneath you getting hot. Waves of heat distort the air.") - telegraph_duration = 150 + telegraph_duration = 15 SECONDS weather_message = span_userdanger("The floor is lava! Get on top of something!") - weather_duration_lower = 300 - weather_duration_upper = 600 + weather_duration_lower = 30 SECONDS + weather_duration_upper = 1 MINUTES weather_overlay = "lava" end_message = span_danger("The ground cools and returns to its usual form.") - end_duration = 0 + end_duration = 0 SECONDS area_type = /area protected_areas = list(/area/space) diff --git a/code/datums/weather/weather_types/radiation_storm.dm b/code/datums/weather/weather_types/radiation_storm.dm index 8acf8be4b9e66..8aa41e185fa54 100644 --- a/code/datums/weather/weather_types/radiation_storm.dm +++ b/code/datums/weather/weather_types/radiation_storm.dm @@ -3,17 +3,17 @@ name = "radiation storm" desc = "A cloud of intense radiation passes through the area dealing rad damage to those who are unprotected." - telegraph_duration = 400 + telegraph_duration = 40 SECONDS telegraph_message = span_danger("The air begins to grow warm.") weather_message = span_userdanger("You feel waves of heat wash over you! Find shelter!") weather_overlay = "ash_storm" - weather_duration_lower = 600 - weather_duration_upper = 1500 + weather_duration_lower = 1 MINUTES + weather_duration_upper = 2.5 MINUTES weather_color = "green" weather_sound = 'sound/announcer/alarm/bloblarm.ogg' - end_duration = 100 + end_duration = 10 SECONDS end_message = span_notice("The air seems to be cooling off again.") area_type = /area diff --git a/code/datums/weather/weather_types/snow_storm.dm b/code/datums/weather/weather_types/snow_storm.dm index 77aafed4f5dc5..660c69037dbee 100644 --- a/code/datums/weather/weather_types/snow_storm.dm +++ b/code/datums/weather/weather_types/snow_storm.dm @@ -4,16 +4,16 @@ probability = 90 telegraph_message = span_warning("Drifting particles of snow begin to dust the surrounding area..") - telegraph_duration = 300 + telegraph_duration = 30 SECONDS telegraph_overlay = "light_snow" weather_message = span_userdanger("Harsh winds pick up as dense snow begins to fall from the sky! Seek shelter!") weather_overlay = "snow_storm" - weather_duration_lower = 600 - weather_duration_upper = 1500 + weather_duration_lower = 1 MINUTES + weather_duration_upper = 2.5 MINUTES use_glow = FALSE - end_duration = 100 + end_duration = 10 SECONDS end_message = span_bolddanger("The snowfall dies down, it should be safe to go outside again.") area_type = /area diff --git a/code/datums/weather/weather_types/void_storm.dm b/code/datums/weather/weather_types/void_storm.dm index 617e3ff0230fd..eb43198e19177 100644 --- a/code/datums/weather/weather_types/void_storm.dm +++ b/code/datums/weather/weather_types/void_storm.dm @@ -8,8 +8,8 @@ weather_message = span_hypnophrase("You feel the air around you getting colder... and void's sweet embrace...") weather_overlay = "light_snow" weather_color = COLOR_BLACK - weather_duration_lower = 60 SECONDS - weather_duration_upper = 120 SECONDS + weather_duration_lower = 1 MINUTES + weather_duration_upper = 2 MINUTES use_glow = FALSE diff --git a/code/datums/wires/big_manipulator.dm b/code/datums/wires/big_manipulator.dm new file mode 100644 index 0000000000000..b23050c297820 --- /dev/null +++ b/code/datums/wires/big_manipulator.dm @@ -0,0 +1,54 @@ +/datum/wires/big_manipulator + holder_type = /obj/machinery/big_manipulator + proper_name = "Big_Manipulator" + +/datum/wires/big_manipulator/New(atom/holder) + wires = list( + WIRE_ON, + WIRE_DROP, + WIRE_ITEM_TYPE, + WIRE_CHANGE_MODE, + WIRE_ONE_PRIORITY_BUTTON, + WIRE_THROW_RANGE + ) + return ..() + +/datum/wires/big_manipulator/interactable(mob/user) + var/obj/machinery/big_manipulator/manipulator_big = holder + + return manipulator_big.panel_open ? ..() : FALSE + +/datum/wires/big_manipulator/get_status() + var/obj/machinery/big_manipulator/manipulator_big = holder + var/list/status = list() + status += "The big light bulb is [manipulator_big.on_button_cutted ? "went out" : manipulator_big.on ? "green" : "red"]." + status += "The small red light shows: [isnull(manipulator_big.containment_obj) ? "empty" : "full"]." + status += "Text on the yellow board shows: [manipulator_big.selected_type.name]." + status += "There are [manipulator_big.manipulate_mode] text on the small blue panel." + status += "The purple light is [manipulator_big.only_highest_priority ? "on" : "off"]." + status += "The number on small white panel shows [manipulator_big.manipulator_throw_range]." + return status + +/datum/wires/big_manipulator/on_pulse(wire) + var/obj/machinery/big_manipulator/manipulator_big = holder + switch(wire) + if(WIRE_ON) + manipulator_big.try_press_on(usr) + if(WIRE_DROP) + manipulator_big.drop_containment_item() + if(WIRE_ITEM_TYPE) + manipulator_big.change_what_take_type() + if(WIRE_CHANGE_MODE) + manipulator_big.change_mode() + if(WIRE_ONE_PRIORITY_BUTTON) + manipulator_big.only_highest_priority = !manipulator_big.only_highest_priority + if(WIRE_THROW_RANGE) + manipulator_big.change_throw_range() + +/datum/wires/big_manipulator/on_cut(wire, mend, source) + var/obj/machinery/big_manipulator/manipulator_big = holder + if(wire == WIRE_ON) + if(mend) + manipulator_big.on_button_cutted = FALSE + return + manipulator_big.on_button_cutted = TRUE diff --git a/code/datums/world_topic.dm b/code/datums/world_topic.dm index c34c018d59c65..b363423f0ac14 100644 --- a/code/datums/world_topic.dm +++ b/code/datums/world_topic.dm @@ -115,7 +115,7 @@ var/message = "CROSS-SECTOR MESSAGE (INCOMING): [input["sender_ckey"]] (from [input["source"]]) is about to send \ the following message (will autoapprove in [soft_filter_passed ? "[extended_time_display]" : "[normal_time_display]"]): \ REJECT

\ - [html_encode(input["message"])]" + [input["message"]]" if(soft_filter_passed) message += "

NOTE: This message passed the soft filter on the origin server! The time was automatically expanded to [extended_time_display]." @@ -205,6 +205,10 @@ .["hub"] = GLOB.hub_visibility .["identifier"] = CONFIG_GET(string/serversqlname) + var/public_address = CONFIG_GET(string/public_address) + if(public_address) + .["public_address"] = public_address + var/list/adm = get_admin_counts() var/list/presentmins = adm["present"] diff --git a/code/game/atom/_atom.dm b/code/game/atom/_atom.dm index a7d057aa9fa4d..4905d11ced25c 100644 --- a/code/game/atom/_atom.dm +++ b/code/game/atom/_atom.dm @@ -186,12 +186,14 @@ if(smoothing_flags & SMOOTH_QUEUED) SSicon_smooth.remove_from_queues(src) +#ifndef DISABLE_DREAMLUAU // These lists cease existing when src does, so we need to clear any lua refs to them that exist. if(!(datum_flags & DF_STATIC_OBJECT)) DREAMLUAU_CLEAR_REF_USERDATA(contents) DREAMLUAU_CLEAR_REF_USERDATA(filters) DREAMLUAU_CLEAR_REF_USERDATA(overlays) DREAMLUAU_CLEAR_REF_USERDATA(underlays) +#endif return ..() @@ -733,7 +735,6 @@ pixel_x = pixel_x + base_pixel_x - . - ///Setter for the `base_pixel_y` variable to append behavior related to its changing. /atom/proc/set_base_pixel_y(new_value) if(base_pixel_y == new_value) diff --git a/code/game/atom/atom_act.dm b/code/game/atom/atom_act.dm index 54f023eb86b59..197d6c9e38b49 100644 --- a/code/game/atom/atom_act.dm +++ b/code/game/atom/atom_act.dm @@ -150,7 +150,7 @@ step(harmed_atom, REVERSE_DIR(harmed_atom.dir)) ///Handle the atom being slipped over -/atom/proc/handle_slip(mob/living/carbon/slipped_carbon, knockdown_amount, obj/slipping_object, lube, paralyze, force_drop) +/atom/proc/handle_slip(mob/living/carbon/slipped_carbon, knockdown_amount, obj/slipping_object, lube, paralyze, daze, force_drop) return ///Used for making a sound when a mob involuntarily falls into the ground. diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index e6fe68ea4c487..26073c3d83259 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -237,9 +237,11 @@ LAZYNULL(client_mobs_in_contents) +#ifndef DISABLE_DREAMLUAU // These lists cease existing when src does, so we need to clear any lua refs to them that exist. DREAMLUAU_CLEAR_REF_USERDATA(vis_contents) DREAMLUAU_CLEAR_REF_USERDATA(vis_locs) +#endif . = ..() @@ -444,6 +446,8 @@ if(z_move_flags & ZMOVE_FEEDBACK) to_chat(rider || src, span_warning("There's nowhere to go in that direction!")) return FALSE + if(SEND_SIGNAL(src, COMSIG_CAN_Z_MOVE, start, destination) & COMPONENT_CANT_Z_MOVE) + return FALSE if(z_move_flags & ZMOVE_FALL_CHECKS && (throwing || (movement_type & (FLYING|FLOATING)) || !has_gravity(start))) return FALSE if(z_move_flags & ZMOVE_CAN_FLY_CHECKS && !(movement_type & (FLYING|FLOATING)) && has_gravity(start)) @@ -588,7 +592,7 @@ if(!. || !isliving(moving_atom)) return var/mob/living/pulled_mob = moving_atom - set_pull_offsets(pulled_mob, grab_state) + set_pull_offsets(pulled_mob, grab_state, animate = FALSE) /** * Checks if the pulling and pulledby should be stopped because they're out of reach. @@ -661,13 +665,12 @@ var/list/new_locs if(is_multi_tile_object && isturf(newloc)) + var/dx = newloc.x + var/dy = newloc.y + var/dz = newloc.z new_locs = block( - newloc, - locate( - min(world.maxx, newloc.x + CEILING(bound_width / 32, 1)), - min(world.maxy, newloc.y + CEILING(bound_height / 32, 1)), - newloc.z - ) + dx, dy, dz, + dx + ceil(bound_width / 32), dy + ceil(bound_height / 32), dz ) // If this is a multi-tile object then we need to predict the new locs and check if they allow our entrance. for(var/atom/entering_loc as anything in new_locs) if(!entering_loc.Enter(src)) @@ -1153,13 +1156,12 @@ return FALSE if(is_multi_tile && isturf(destination)) + var/dx = destination.x + var/dy = destination.y + var/dz = destination.z var/list/new_locs = block( - destination, - locate( - min(world.maxx, destination.x + ROUND_UP(bound_width / ICON_SIZE_X)), - min(world.maxy, destination.y + ROUND_UP(bound_height / ICON_SIZE_Y)), - destination.z - ) + dx, dy, dz, + dx + ROUND_UP(bound_width / ICON_SIZE_X), dy + ROUND_UP(bound_height / ICON_SIZE_Y), dz ) if(old_area && old_area != destarea) old_area.Exited(src, movement_dir) diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm index 7f88dc68758ce..d64f2e83535d2 100644 --- a/code/game/gamemodes/objective_items.dm +++ b/code/game/gamemodes/objective_items.dm @@ -1,7 +1,55 @@ +GLOBAL_DATUM_INIT(steal_item_handler, /datum/objective_item_handler, new()) + /proc/add_item_to_steal(source, type) GLOB.steal_item_handler.objectives_by_path[type] += source return type +/// Holds references to information about all of the items you might need to steal for objectives +/datum/objective_item_handler + var/list/list/objectives_by_path + var/generated_items = FALSE + +/datum/objective_item_handler/New() + . = ..() + objectives_by_path = list() + for(var/datum/objective_item/item as anything in subtypesof(/datum/objective_item)) + objectives_by_path[initial(item.targetitem)] = list() + RegisterSignal(SSatoms, COMSIG_SUBSYSTEM_POST_INITIALIZE, PROC_REF(save_items)) + RegisterSignal(SSdcs, COMSIG_GLOB_NEW_ITEM, PROC_REF(new_item_created)) + +/datum/objective_item_handler/proc/new_item_created(datum/source, obj/item/item) + SIGNAL_HANDLER + if(HAS_TRAIT(item, TRAIT_ITEM_OBJECTIVE_BLOCKED)) + return + if(!generated_items) + item.add_stealing_item_objective() + return + var/typepath = item.add_stealing_item_objective() + if(typepath != null) + register_item(item, typepath) + +/// Registers all items that are potentially stealable and removes ones that aren't. +/// We still need to do things this way because on mapload, items may not be on the station until everything has finished loading. +/datum/objective_item_handler/proc/save_items() + SIGNAL_HANDLER + for(var/obj/item/typepath as anything in objectives_by_path) + var/list/obj_by_path_cache = objectives_by_path[typepath].Copy() + for(var/obj/item/object as anything in obj_by_path_cache) + register_item(object, typepath) + generated_items = TRUE + +/datum/objective_item_handler/proc/register_item(atom/object, typepath) + var/turf/place = get_turf(object) + if(!place || !is_station_level(place.z)) + objectives_by_path[typepath] -= object + return + RegisterSignal(object, COMSIG_QDELETING, PROC_REF(remove_item)) + +/datum/objective_item_handler/proc/remove_item(atom/source) + SIGNAL_HANDLER + for(var/typepath in objectives_by_path) + objectives_by_path[typepath] -= source + //Contains the target item datums for Steal objectives. /datum/objective_item /// How the item is described in the objective diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm index 16a6615497ce4..bd2ca0ad37c4b 100644 --- a/code/game/machinery/PDApainter.dm +++ b/code/game/machinery/PDApainter.dm @@ -347,7 +347,7 @@ var/selection = params["selection"] for(var/path in card_trims) - if(!(card_trims[path] == selection)) + if(card_trims[path] != selection) continue if(SSid_access.apply_trim_to_card(stored_id_card, path, copy_access = FALSE)) diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm index eb66e140d98fb..e7bb603ef07a8 100644 --- a/code/game/machinery/announcement_system.dm +++ b/code/game/machinery/announcement_system.dm @@ -16,115 +16,91 @@ GLOBAL_LIST_EMPTY(announcement_systems) circuit = /obj/item/circuitboard/machine/announcement_system + ///All possible announcements and their local configurations + var/list/datum/aas_config_entry/config_entries = list() + ///The headset that we use for broadcasting var/obj/item/radio/headset/radio - ///The message that we send when someone is joining. - var/arrival = "%PERSON has signed up as %RANK" - ///Whether the arrival message is sent - var/arrival_toggle = TRUE - ///The message that we send when a department head arrives. - var/newhead = "%PERSON, %RANK, is the department head." - ///Whether the newhead message is sent. - var/newhead_toggle = TRUE + ///AIs headset support all stations channels, but it may require an override for away site or syndie AASs. + var/radio_type = /obj/item/radio/headset/silicon/ai var/greenlight = "Light_Green" var/pinklight = "Light_Pink" var/errorlight = "Error_Red" - ///If true, researched nodes will be announced to the appropriate channels - var/announce_research_node = TRUE - /// The text that we send when announcing researched nodes. - var/node_message = "The %NODE techweb node has been researched" - /obj/machinery/announcement_system/Initialize(mapload) . = ..() GLOB.announcement_systems += src - radio = new /obj/item/radio/headset/silicon/ai(src) + radio = new radio_type(src) + config_entries = init_subtypes(/datum/aas_config_entry, list()) update_appearance() /obj/machinery/announcement_system/randomize_language_if_on_station() return /obj/machinery/announcement_system/update_icon_state() - icon_state = "[base_icon_state]_[is_operational ? "On" : "Off"][panel_open ? "_Open" : null]" + icon_state = "[base_icon_state]_[is_operational && !(machine_stat & EMPED) ? "On" : "Off"][panel_open ? "_Open" : null]" return ..() /obj/machinery/announcement_system/update_overlays() . = ..() - if(arrival_toggle) + var/datum/aas_config_entry/entry = locate(/datum/aas_config_entry/arrival) in config_entries + if(entry && entry.enabled) . += greenlight - if(newhead_toggle) + entry = locate(/datum/aas_config_entry/newhead) in config_entries + if(entry && entry.enabled) . += pinklight - if(machine_stat & BROKEN) + if(machine_stat & EMPED) . += errorlight /obj/machinery/announcement_system/Destroy() QDEL_NULL(radio) + QDEL_LAZYLIST(config_entries) GLOB.announcement_systems -= src //"OH GOD WHY ARE THERE 100,000 LISTED ANNOUNCEMENT SYSTEMS?!!" return ..() /obj/machinery/announcement_system/screwdriver_act(mob/living/user, obj/item/tool) - tool.play_tool_sound(src) - toggle_panel_open() - to_chat(user, span_notice("You [panel_open ? "open" : "close"] the maintenance hatch of [src].")) - update_appearance() - return TRUE + var/icon_state_assemble = "[base_icon_state]_[is_operational && !(machine_stat & EMPED) ? "On" : "Off"]" + if(default_deconstruction_screwdriver(user, "[icon_state_assemble]_Open", icon_state_assemble, tool)) + return ITEM_INTERACT_SUCCESS + return ITEM_INTERACT_BLOCKING /obj/machinery/announcement_system/crowbar_act(mob/living/user, obj/item/tool) + . = ..() if(default_deconstruction_crowbar(tool)) - return TRUE + return ITEM_INTERACT_SUCCESS /obj/machinery/announcement_system/multitool_act(mob/living/user, obj/item/tool) - if(!panel_open || !(machine_stat & BROKEN)) - return FALSE + if(!panel_open || !(machine_stat & EMPED)) + return ITEM_INTERACT_BLOCKING to_chat(user, span_notice("You reset [src]'s firmware.")) - set_machine_stat(machine_stat & ~BROKEN) + set_machine_stat(machine_stat & ~EMPED) update_appearance() + return ITEM_INTERACT_SUCCESS -/obj/machinery/announcement_system/proc/CompileText(str, user, rank) //replaces user-given variables with actual thingies. - str = replacetext(str, "%PERSON", "[user]") - str = replacetext(str, "%RANK", "[rank]") - return str - -/obj/machinery/announcement_system/proc/announce(message_type, target, rank, list/channels) - if(!is_operational) - return - - var/message - - switch(message_type) - if(AUTO_ANNOUNCE_ARRIVAL) - if(!arrival_toggle) - return - message = CompileText(arrival, target, rank) - if(AUTO_ANNOUNCE_NEWHEAD) - if(!newhead_toggle) - return - message = CompileText(newhead, target, rank) - if(AUTO_ANNOUNCE_ARRIVALS_BROKEN) - message = "The arrivals shuttle has been damaged. Docking for repairs..." - if(AUTO_ANNOUNCE_NODE) - message = replacetext(node_message, "%NODE", target) - - broadcast(message, channels) - -/// Announces a new security officer joining over the radio -/obj/machinery/announcement_system/proc/announce_officer(mob/officer, department) - if (!is_operational) +/// Does funny breakage stuff +/obj/machinery/announcement_system/proc/act_up() + if (machine_stat & EMPED) return + set_machine_stat(machine_stat | EMPED) + update_appearance() + for (var/datum/aas_config_entry/config in config_entries) + config.act_up() - broadcast("Officer [officer.real_name] has been assigned to [department].", list(RADIO_CHANNEL_SECURITY)) +/obj/machinery/announcement_system/emp_act(severity) + . = ..() + if(!(machine_stat & (NOPOWER|EMPED|BROKEN)) && !(. & EMP_PROTECT_SELF)) + act_up() -/// Sends a message to the appropriate channels. -/obj/machinery/announcement_system/proc/broadcast(message, list/channels) - use_energy(active_power_usage) - if(channels.len == 0) - radio.talk_into(src, message, null) - else - for(var/channel in channels) - radio.talk_into(src, message, channel) +/obj/machinery/announcement_system/emag_act(mob/user, obj/item/card/emag/emag_card) + if(obj_flags & EMAGGED) + return FALSE + obj_flags |= EMAGGED + act_up() + balloon_alert(user, "announcement strings corrupted") + return TRUE /obj/machinery/announcement_system/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) @@ -133,83 +109,237 @@ GLOBAL_LIST_EMPTY(announcement_systems) ui.open() /obj/machinery/announcement_system/ui_data() - var/list/data = list() - data["arrival"] = arrival - data["arrivalToggle"] = arrival_toggle - data["newhead"] = newhead - data["newheadToggle"] = newhead_toggle - data["node_message"] = node_message - data["node_toggle"] = announce_research_node - return data - -/obj/machinery/announcement_system/ui_act(action, param) + var/list/configs = list() + for(var/datum/aas_config_entry/config in config_entries) + configs += list(list( + name = config.name, + entryRef = REF(config), + enabled = config.enabled, + modifiable = config.modifiable, + announcementLinesMap = config.announcement_lines_map, + generalTooltip = config.general_tooltip, + varsAndTooltipsMap = config.vars_and_tooltips_map + )) + return list("config_entries" = configs) + +/obj/machinery/announcement_system/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return if(!usr.can_perform_action(src, ALLOW_SILICON_REACH)) return - if(machine_stat & BROKEN) + if(machine_stat & EMPED) visible_message(span_warning("[src] buzzes."), span_hear("You hear a faint buzz.")) playsound(src.loc, 'sound/machines/buzz/buzz-two.ogg', 50, TRUE) return - switch(action) - if("ArrivalText") - var/new_message = trim(html_encode(param["newText"]), MAX_MESSAGE_LEN) - if(new_message) - arrival = new_message - usr.log_message("updated the arrivals announcement to: [new_message]", LOG_GAME) - if("NewheadText") - var/new_message = trim(html_encode(param["newText"]), MAX_MESSAGE_LEN) - if(new_message) - newhead = new_message - usr.log_message("updated the head announcement to: [new_message]", LOG_GAME) - if("node_message") - var/new_message = trim(html_encode(param["newText"]), MAX_MESSAGE_LEN) - if(new_message) - node_message = new_message - usr.log_message("updated the researched node announcement to: [node_message]", LOG_GAME) - if("newhead_toggle") - newhead_toggle = !newhead_toggle - update_appearance() - if("arrivalToggle") - arrival_toggle = !arrival_toggle - update_appearance() - if("node_toggle") - announce_research_node = !announce_research_node + add_fingerprint(usr) + var/datum/aas_config_entry/config = locate(params["entryRef"]) in config_entries + if(!config || !config.modifiable) + return -/obj/machinery/announcement_system/attack_robot(mob/living/silicon/user) - . = attack_ai(user) + switch(action) + if("Toggle") + config.enabled = !config.enabled + if (config.type in list(/datum/aas_config_entry/arrival, /datum/aas_config_entry/newhead)) + update_appearance() + if("Text") + if(!(params["lineKey"] in config.announcement_lines_map)) + message_admins("[ADMIN_LOOKUPFLW(usr)] tried to set announcement line for nonexisting line in the [config.name] for AAS. Probably href injection. Received line: [params["lineKey"]]") + log_game("[key_name(usr)] tried to mess with AAS. For [config.name] he tried to edit nonexistend [params["lineKey"]]") + return + var/new_message = trim(html_encode(params["newText"]), MAX_MESSAGE_LEN) + if(new_message) + config.announcement_lines_map[params["lineKey"]] = new_message + usr.log_message("updated [params["lineKey"]] line in the [config.name] to: [new_message]", LOG_GAME) -/obj/machinery/announcement_system/attack_ai(mob/user) - if(!user.can_perform_action(src, ALLOW_SILICON_REACH)) +/obj/machinery/announcement_system/can_interact(mob/user) + . = ..() + if (!.) return - if(machine_stat & BROKEN) + + if (machine_stat & EMPED) to_chat(user, span_warning("[src]'s firmware appears to be malfunctioning!")) + if (!isAI(user)) // Deus Ex Machina goes without multitool in his default complectation. + to_chat(user, span_warning("However, you can reset it with [EXAMINE_HINT("multitool")], while its [EXAMINE_HINT("panel is open")]!")) + return FALSE + +/// If AAS can't broadcast message, it shouldn't be picked by randomizer. +/obj/machinery/announcement_system/proc/has_supported_channels(list/channels) + if (!LAZYLEN(channels) || (RADIO_CHANNEL_COMMON in channels)) + // Okay, I am not proud of this, but I don't want CentCom or Syndie AASs to broadcast on Common. + return src.type == /obj/machinery/announcement_system + for(var/channel in channels) + if(radio.channels[channel]) + return TRUE + return FALSE + +/// Can AAS receive request for broadcast from you? +/obj/machinery/announcement_system/proc/can_be_reached_from(atom/source) + if(!source || !istype(source)) + return TRUE + var/turf/source_turf = get_turf(source) + if (!source_turf) + return TRUE + // Keep updated with broadcasting.dm (/datum/signal/subspace/vocal/New) + return z in SSmapping.get_connected_levels(source_turf) + +/// Compiles the announcement message with the provided variables. Announcement line is optional. +/obj/machinery/announcement_system/proc/compile_config_message(aas_config_entry_type, list/variables_map, announcement_line, fail_if_disabled=FALSE) + var/datum/aas_config_entry/config = locate(aas_config_entry_type) in config_entries + if (!config || (fail_if_disabled && !config.enabled)) + return + return config.compile_announce(variables_map, announcement_line) + +/// Sends a message to the appropriate channels. +/obj/machinery/announcement_system/proc/broadcast(message, list/channels, command_span = FALSE) + use_energy(active_power_usage) + if(!LAZYLEN(channels)) + radio.talk_into(src, message, null, command_span ? list(speech_span, SPAN_COMMAND) : null) return - interact(user) -/obj/machinery/announcement_system/proc/act_up() //does funny breakage stuff - if(!atom_break()) // if badmins flag this unbreakable or its already broken + // For some reasons, radio can't recognize RADIO_CHANNEL_COMMON in channels, so we need to handle it separately. + if (RADIO_CHANNEL_COMMON in channels) + radio.talk_into(src, message, null, command_span ? list(speech_span, SPAN_COMMAND) : null) + channels -= RADIO_CHANNEL_COMMON + for(var/channel in channels) + radio.talk_into(src, message, channel, command_span ? list(speech_span, SPAN_COMMAND) : null) + +/// Announces configs entry message with the provided variables. Channels and announcement_line are optional. +/obj/machinery/announcement_system/proc/announce(aas_config_entry_type, list/variables_map, list/channels, announcement_line, command_span) + var/msg = compile_config_message(aas_config_entry_type, variables_map, announcement_line, TRUE) + if (msg) + broadcast(msg, channels, command_span) + +/// Returns a random announcement system that is operational, has the specified config entry, signal can reach source and radio supports any channel in list. Config entry, source and channels are optional. +/proc/get_announcement_system(aas_config_entry_type, source, list/channels) + if (!GLOB.announcement_systems.len) + return null + var/list/intact_aass = list() + for(var/obj/machinery/announcement_system/announce as anything in GLOB.announcement_systems) + if(!QDELETED(announce) && announce.is_operational && announce.has_supported_channels(channels) && announce.can_be_reached_from(source)) + if(aas_config_entry_type) + var/datum/aas_config_entry/entry = locate(aas_config_entry_type) in announce.config_entries + if(!entry || !entry.enabled) + continue + intact_aass += announce + return intact_aass.len ? pick(intact_aass) : null + +/// Announces the provided message with the provided variables and config entry type. Channels, announcement_line, command_span and source are optional. +/proc/aas_config_announce(aas_config_entry_type, list/variables_map, source, list/channels, announcement_line, command_span) + var/obj/machinery/announcement_system/announcer = get_announcement_system(aas_config_entry_type, source, channels) + if (!announcer) + return + announcer.announce(aas_config_entry_type, variables_map, channels, announcement_line, command_span) + +/datum/aas_config_entry + var/name = "AAS configurable entry" + // Should we broadcast this announcement? + var/enabled = TRUE + // The announcement message. Key will be displayed in the UI. + var/list/announcement_lines_map = list("Message" = "This is a default announcement line.") + // Goes before tooltips for vars, mainly used if announcement has no replacable vars + var/general_tooltip + // Contains all replacable vars and their tooltips + var/list/vars_and_tooltips_map = list() + // Can be changed or disabled by players + var/modifiable = TRUE + +/// Compiles the announcement message with the provided variables. Announcement line is optional. +/datum/aas_config_entry/proc/compile_announce(list/variables_map, announcement_line) + var/announcement_message = LAZYACCESS(announcement_lines_map, announcement_line) + // If index was provided LAZYACCESS will return us a key, not value + if (isnum(announcement_line)) + announcement_message = announcement_lines_map[announcement_message] + // Fallback - first line + if (!announcement_message) + announcement_message = announcement_lines_map[announcement_lines_map[1]] + // Replace variables with their value + for(var/variable in vars_and_tooltips_map) + announcement_message = replacetext_char(announcement_message, "%[variable]", variables_map[variable] || "\[NO DATA\]") + return announcement_message + +/// Called when the announcement system is emagged or EMPed. +/datum/aas_config_entry/proc/act_up() + SHOULD_CALL_PARENT(TRUE) + + // Please do not mess with entries, that players can't fix. + if(!modifiable) + return TRUE + return FALSE + +/* + Global config entries for the announcement system. +*/ + +/datum/aas_config_entry/arrival + name = "Arrival Announcement" + announcement_lines_map = list( + "Message" = "%PERSON has signed up as %RANK") + vars_and_tooltips_map = list( + "PERSON" = "will be replaced with their name.", + "RANK" = "with their job." + ) + +/datum/aas_config_entry/arrival/act_up() + . = ..() + if (.) return - arrival = pick("#!@%ERR-34%2 CANNOT LOCAT@# JO# F*LE!", "CRITICAL ERROR 99.", "ERR)#: DA#AB@#E NOT F(*ND!") - newhead = pick("OV#RL()D: \[UNKNOWN??\] DET*#CT)D!", "ER)#R - B*@ TEXT F*O(ND!", "AAS.exe is not responding. NanoOS is searching for a solution to the problem.") - node_message = pick(list( - replacetext(/obj/machinery/announcement_system::node_message, "%NODE", /datum/techweb_node/mech_clown::display_name), - "R/NT1M3 A= ANNOUN-*#nt_SY!?EM.dm, LI%£ 86: N=0DE NULL!", - "BEPIS BEPIS BEPIS", - )) + announcement_lines_map["Message"] = pick("#!@%ERR-34%2 CANNOT LOCAT@# JO# F*LE!", + "CRITICAL ERROR 99.", + "ERR)#: DA#AB@#E NOT F(*ND!") -/obj/machinery/announcement_system/emp_act(severity) +/datum/aas_config_entry/newhead + name = "Departmental Head Announcement" + announcement_lines_map = list( + "Message" = "%PERSON, %RANK, is the department head.") + vars_and_tooltips_map = list( + "PERSON" = "will be replaced with their name.", + "RANK" = "with their job." + ) + +/datum/aas_config_entry/newhead/act_up() . = ..() - if(!(machine_stat & (NOPOWER|BROKEN)) && !(. & EMP_PROTECT_SELF)) - act_up() + if (.) + return -/obj/machinery/announcement_system/emag_act(mob/user, obj/item/card/emag/emag_card) - if(obj_flags & EMAGGED) - return FALSE - obj_flags |= EMAGGED - act_up() - balloon_alert(user, "announcement strings corrupted") - return TRUE + announcement_lines_map["Message"] = pick("OV#RL()D: \[UNKNOWN??\] DET*#CT)D!", + "ER)#R - B*@ TEXT F*O(ND!", + "AAS.exe is not responding. NanoOS is searching for a solution to the problem.") + +/datum/aas_config_entry/researched_node + name = "Research Node Announcement" + announcement_lines_map = list( + "Message" = "The %NODE techweb node has been researched") + vars_and_tooltips_map = list( + "NODE" = "will be replaced with the researched node." + ) + +/datum/aas_config_entry/researched_node/act_up() + . = ..() + if (.) + return + + announcement_lines_map["Message"] = pick( + replacetext(/datum/aas_config_entry/researched_node::announcement_lines_map["Message"], "%NODE", /datum/techweb_node/mech_clown::display_name), + "R/NT1M3 A= ANNOUN-*#nt_SY!?EM.dm, LI%£ 86: N=0DE NULL!", + "BEPIS BEPIS BEPIS", + "ERR)#R - B*@ TEXT F*O(ND!") + +/datum/aas_config_entry/arrivals_broken + name = "Arrivals Shuttle Malfunction Announcement" + announcement_lines_map = list( + "Message" = "The arrivals shuttle has been damaged. Docking for repairs...") + general_tooltip = "Broadcasted, when arrivals shuttle docks for repairs. No replacable variables provided." + modifiable = FALSE + +/datum/aas_config_entry/announce_officer + name = "Security Alert: Officer Arrival Announcement" + announcement_lines_map = list( + "Message" = "Officer %OFFICER has been assigned to %DEPARTMENT.") + vars_and_tooltips_map = list( + "OFFICER" = "will be replaced with the officer's name.", + "DEPARTMENT" = "with the department they were assigned to." + ) + modifiable = FALSE diff --git a/code/game/machinery/big_manipulator.dm b/code/game/machinery/big_manipulator.dm index a14a6b8531174..96f7418c2db7e 100644 --- a/code/game/machinery/big_manipulator.dm +++ b/code/game/machinery/big_manipulator.dm @@ -1,5 +1,6 @@ -#define DROP_ITEM_MODE 1 -#define THROW_ITEM_MODE 2 +#define DROP_ITEM_MODE "drop" +#define USE_ITEM_MODE "use" +#define THROW_ITEM_MODE "throw" #define TAKE_ITEMS 1 #define TAKE_CLOSETS 2 @@ -33,8 +34,10 @@ var/turf/drop_turf /// How will manipulator manipulate the object? drop it out by default. var/manipulate_mode = DROP_ITEM_MODE - /// Priority settings depending on the manipulator mode that are available to this manipulator. Filled during Initialize. + /// Priority settings depending on the manipulator drop mode that are available to this manipulator. Filled during Initialize. var/list/priority_settings_for_drop = list() + /// Priority settings depending on the manipulator use mode that are available to this manipulator. Filled during Initialize. + var/list/priority_settings_for_use = list() /// What priority settings are available to use at the moment. /// We also use this list to sort priorities from ascending to descending. var/list/allowed_priority_settings = list() @@ -42,12 +45,14 @@ var/datum/weakref/containment_obj /// Obj used as filter var/datum/weakref/filter_obj + /// Poor monkey that needs to use mode works. + var/datum/weakref/monkey_worker /// Other manipulator component. var/obj/effect/big_manipulator_hand/manipulator_hand /// Here some ui setting we can on/off: /// If activated: after item was used manipulator will also drop it. var/drop_item_after_use = TRUE - /// If acrivated: will select only 1 priority and will not continue to look at the priorities below. + /// If activated: will select only 1 priority and will not continue to look at the priorities below. var/only_highest_priority = FALSE /// Var for throw item mode: changes the range from which the manipulator throws an object. var/manipulator_throw_range = 1 @@ -55,6 +60,8 @@ var/atom/selected_type /// Just a lazy number to change selected_type type in array. var/selected_type_by_number = 1 + /// Variable for the wire that disables the power button if the wire is cut. + var/on_button_cutted = FALSE /// List where we can set selected type. Taking items by Initialize. var/list/allowed_types_to_pick_up = list( /obj/item, @@ -71,16 +78,22 @@ selected_type = allowed_types_to_pick_up[selected_type_by_number] if(on) press_on(pressed_by = null) + set_wires(new /datum/wires/big_manipulator(src)) /// Init priority settings list for all modes. /obj/machinery/big_manipulator/proc/set_up_priority_settings() for(var/datum/manipulator_priority/priority_for_drop as anything in subtypesof(/datum/manipulator_priority/for_drop)) priority_settings_for_drop += new priority_for_drop + for(var/datum/manipulator_priority/priority_for_use as anything in subtypesof(/datum/manipulator_priority/for_use)) + priority_settings_for_use += new priority_for_use update_priority_list() /obj/machinery/big_manipulator/examine(mob/user) . = ..() . += "You can change direction with alternative wrench usage." + var/mob/monkey_resolve = monkey_worker?.resolve() + if(!isnull(monkey_resolve)) + . += "You can see [monkey_resolve]: [src] manager." /obj/machinery/big_manipulator/Destroy(force) . = ..() @@ -91,6 +104,23 @@ if(!isnull(filter_obj)) var/obj/filter_resolve = filter_obj?.resolve() filter_resolve?.forceMove(get_turf(filter_resolve)) + var/mob/monkey_resolve = monkey_worker?.resolve() + if(!isnull(monkey_resolve)) + monkey_resolve.forceMove(get_turf(monkey_resolve)) + +/obj/machinery/big_manipulator/Exited(atom/movable/gone, direction) + if(isnull(monkey_worker)) + return + var/mob/living/carbon/human/species/monkey/poor_monkey = monkey_worker.resolve() + if(gone != poor_monkey) + return + if(!is_type_in_list(poor_monkey, manipulator_hand.vis_contents)) + return + manipulator_hand.vis_contents -= poor_monkey + if(manipulate_mode == USE_ITEM_MODE) + change_mode() + poor_monkey.remove_offsets(type) + monkey_worker = null /obj/machinery/big_manipulator/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change) . = ..() @@ -146,11 +176,74 @@ return ITEM_INTERACT_SUCCESS return ITEM_INTERACT_BLOCKING +/obj/machinery/big_manipulator/multitool_act(mob/living/user, obj/item/multitool/tool) + if(!panel_open) + return ITEM_INTERACT_BLOCKING + wires.interact(user) + return ITEM_INTERACT_SUCCESS + +/obj/machinery/big_manipulator/multitool_act_secondary(mob/living/user, obj/item/tool) + return multitool_act(user, tool) + +/obj/machinery/big_manipulator/wirecutter_act(mob/living/user, obj/item/tool) + if(!panel_open) + return ITEM_INTERACT_BLOCKING + wires.interact(user) + return ITEM_INTERACT_SUCCESS + +/obj/machinery/big_manipulator/wirecutter_act_secondary(mob/living/user, obj/item/tool) + return wirecutter_act(user, tool) + /obj/machinery/big_manipulator/RefreshParts() . = ..() manipulator_lvl() +/obj/machinery/big_manipulator/mouse_drop_dragged(atom/drop_point, mob/user, src_location, over_location, params) + if(isnull(monkey_worker)) + return + if(on_work) + balloon_alert(user, "turn it off first!") + return + var/mob/living/carbon/human/species/monkey/poor_monkey = monkey_worker.resolve() + if(isnull(poor_monkey)) + return + balloon_alert(user, "trying unbuckle...") + if(!do_after(user, 3 SECONDS, src)) + balloon_alert(user, "interrupted") + return + balloon_alert(user, "unbuckled") + poor_monkey.drop_all_held_items() + poor_monkey.forceMove(drop_point) + +/obj/machinery/big_manipulator/mouse_drop_receive(atom/monkey, mob/user, params) + if(!ismonkey(monkey)) + return + if(!isnull(monkey_worker)) + return + if(on_work) + balloon_alert(user, "turn it off first!") + return + var/mob/living/carbon/human/species/monkey/poor_monkey = monkey + if(poor_monkey.mind) + balloon_alert(user, "too smart!") + return + poor_monkey.balloon_alert(user, "trying buckle...") + if(!do_after(user, 3 SECONDS, poor_monkey)) + poor_monkey.balloon_alert(user, "interrupted") + return + balloon_alert(user, "buckled") + monkey_worker = WEAKREF(poor_monkey) + poor_monkey.drop_all_held_items() + poor_monkey.forceMove(src) + manipulator_hand.vis_contents += poor_monkey + poor_monkey.dir = manipulator_hand.dir + poor_monkey.add_offsets( + type, + x_add = 32 + manipulator_hand.calculate_item_offset(TRUE, pixels_to_offset = 16), + y_add = 32 + manipulator_hand.calculate_item_offset(FALSE, pixels_to_offset = 16) + ) + /// Creat manipulator hand effect on manipulator core. /obj/machinery/big_manipulator/proc/create_manipulator_hand() manipulator_hand = new/obj/effect/big_manipulator_hand(src) @@ -211,6 +304,9 @@ take_here = NORTH drop_here = SOUTH manipulator_hand.dir = take_here + var/mob/monkey = monkey_worker?.resolve() + if(!isnull(monkey)) + monkey.dir = manipulator_hand.dir take_and_drop_turfs_check() /// Deliting hand will destroy our manipulator core. @@ -273,6 +369,8 @@ switch(manipulate_mode) if(DROP_ITEM_MODE) addtimer(CALLBACK(src, PROC_REF(drop_thing), target), working_speed) + if(USE_ITEM_MODE) + addtimer(CALLBACK(src, PROC_REF(use_thing), target), working_speed) if(THROW_ITEM_MODE) addtimer(CALLBACK(src, PROC_REF(throw_thing), target), working_speed) @@ -296,6 +394,57 @@ target.forceMove(where_we_drop) finish_manipulation() +/// 3.2 take and drop proc from [take and drop procs loop]: +/// Use our item on random atom in drop turf contents then +/// Starts manipulator hand backward animation by defualt, but +/// You can also set the setting in ui so that it does not return to its privious position and continues to use object in its hand. +/// Checks the priority so that you can configure which object it will select: mob/obj/turf. +/// Also can use filter to interact only with obj in filter. +/obj/machinery/big_manipulator/proc/use_thing(atom/movable/target) + var/obj/obj_resolve = containment_obj?.resolve() + if(isnull(obj_resolve)) + finish_manipulation() + return + var/mob/living/carbon/human/species/monkey/monkey_resolve = monkey_worker?.resolve() + if(isnull(monkey_resolve)) + finish_manipulation() + return + /// If we forceMoved from manipulator we are free now. + if(obj_resolve.loc != src && obj_resolve.loc != monkey_resolve) + finish_manipulation() + return + if(!isitem(target)) + target.forceMove(drop_turf) /// We use only items + target.dir = get_dir(get_turf(target), get_turf(src)) + finish_manipulation() + return + var/obj/item/im_item = target + var/atom/type_to_use = search_type_by_priority_in_drop_turf(allowed_priority_settings) + if(isnull(type_to_use)) + check_end_of_use(im_item, target, item_was_used = FALSE) + return + monkey_resolve.put_in_active_hand(im_item) + if(im_item.GetComponent(/datum/component/two_handed)) /// Using two-handed items in two hands. + im_item.attack_self(monkey_resolve) + im_item.melee_attack_chain(monkey_resolve, type_to_use) + do_attack_animation(drop_turf) + manipulator_hand.do_attack_animation(drop_turf) + check_end_of_use(im_item, item_was_used = TRUE) + +/// Check what we gonna do next with our item. Drop it or use again. +/obj/machinery/big_manipulator/proc/check_end_of_use(obj/item/my_item, item_was_used) + if(!on) + my_item.forceMove(drop_turf) + my_item.dir = get_dir(get_turf(my_item), get_turf(src)) + finish_manipulation() + return + if(drop_item_after_use && item_was_used) + my_item.forceMove(drop_turf) + my_item.dir = get_dir(get_turf(my_item), get_turf(src)) + finish_manipulation() + return + addtimer(CALLBACK(src, PROC_REF(use_thing), my_item), working_speed) + /// 3.3 take and drop proc from [take and drop procs loop]: /// Throw item away!!! /obj/machinery/big_manipulator/proc/throw_thing(atom/movable/target) @@ -352,9 +501,16 @@ /// Proc called when we changing item interaction mode. /obj/machinery/big_manipulator/proc/change_mode() - manipulate_mode++ - if(manipulate_mode > THROW_ITEM_MODE) - manipulate_mode = DROP_ITEM_MODE + switch(manipulate_mode) + if(DROP_ITEM_MODE) + if(!isnull(monkey_worker)) + manipulate_mode = USE_ITEM_MODE + else + manipulate_mode = THROW_ITEM_MODE + if(USE_ITEM_MODE) + manipulate_mode = THROW_ITEM_MODE + if(THROW_ITEM_MODE) + manipulate_mode = DROP_ITEM_MODE update_priority_list() is_work_check() @@ -364,6 +520,8 @@ var/list/priority_mode_list if(manipulate_mode == DROP_ITEM_MODE) priority_mode_list = priority_settings_for_drop.Copy() + if(manipulate_mode == USE_ITEM_MODE) + priority_mode_list = priority_settings_for_use.Copy() if(isnull(priority_mode_list)) return for(var/we_need_increasing in 1 to length(priority_mode_list)) @@ -396,8 +554,39 @@ return if(on) RegisterSignal(take_turf, COMSIG_ATOM_ENTERED, PROC_REF(try_take_thing)) + RegisterSignal(take_turf, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON, PROC_REF(try_take_thing)) else UnregisterSignal(take_turf, COMSIG_ATOM_ENTERED) + UnregisterSignal(take_turf, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON) + +/// Proc that check if button not cutted when we press on button. +/obj/machinery/big_manipulator/proc/try_press_on(mob/user) + if(on_button_cutted) + balloon_alert(user, "button is cut off!") + return + press_on(pressed_by = TRUE) + +/// Drop item that manipulator is manipulating. +/obj/machinery/big_manipulator/proc/drop_containment_item() + if(isnull(containment_obj)) + return + var/obj/obj_resolve = containment_obj?.resolve() + obj_resolve?.forceMove(get_turf(obj_resolve)) + finish_manipulation() + +/// Changes the type of objects that the manipulator will pick up +/obj/machinery/big_manipulator/proc/change_what_take_type() + selected_type_by_number++ + if(selected_type_by_number > allowed_types_to_pick_up.len) + selected_type_by_number = 1 + selected_type = allowed_types_to_pick_up[selected_type_by_number] + is_work_check() + +/// Changes range with which the manipulator throws objects, from 1 to 7. +/obj/machinery/big_manipulator/proc/change_throw_range() + manipulator_throw_range++ + if(manipulator_throw_range > 7) + manipulator_throw_range = 1 /obj/machinery/big_manipulator/ui_interact(mob/user, datum/tgui/ui) if(!anchored) @@ -411,16 +600,11 @@ /obj/machinery/big_manipulator/ui_data(mob/user) var/list/data = list() - var/mode - switch(manipulate_mode) - if(DROP_ITEM_MODE) - mode = "Drop" - if(THROW_ITEM_MODE) - mode = "Throw" data["active"] = on data["item_as_filter"] = filter_obj?.resolve() data["selected_type"] = selected_type.name - data["manipulate_mode"] = mode + data["manipulate_mode"] = manipulate_mode + data["drop_after_use"] = drop_item_after_use data["highest_priority"] = only_highest_priority data["throw_range"] = manipulator_throw_range var/list/priority_list = list() @@ -439,21 +623,13 @@ return switch(action) if("on") - press_on(pressed_by = TRUE) + try_press_on(ui.user) return TRUE if("drop") - if(isnull(containment_obj)) - return - var/obj/obj_resolve = containment_obj?.resolve() - obj_resolve?.forceMove(get_turf(obj_resolve)) - finish_manipulation() + drop_containment_item() return TRUE if("change_take_item_type") - selected_type_by_number++ - if(selected_type_by_number > allowed_types_to_pick_up.len) - selected_type_by_number = 1 - selected_type = allowed_types_to_pick_up[selected_type_by_number] - is_work_check() + change_what_take_type() return TRUE if("change_mode") change_mode() @@ -480,6 +656,9 @@ if("highest_priority_change") only_highest_priority = !only_highest_priority return TRUE + if("drop_use_change") + drop_item_after_use = !drop_item_after_use + return TRUE if("change_priority") var/new_priority_number = params["priority"] for(var/datum/manipulator_priority/new_order as anything in allowed_priority_settings) @@ -491,9 +670,7 @@ update_priority_list() return TRUE if("change_throw_range") - manipulator_throw_range++ - if(manipulator_throw_range > 7) - manipulator_throw_range = 1 + change_throw_range() return TRUE /// Using on change_priority: looks for a setting with the same number that we set earlier and reduce it. @@ -523,16 +700,18 @@ /obj/effect/big_manipulator_hand/update_overlays() . = ..() + . += update_item_overlay() + +/obj/effect/big_manipulator_hand/proc/update_item_overlay() if(isnull(item_in_my_claw)) - icon_overlay = null - return + return icon_overlay = null var/atom/movable/item_data = item_in_my_claw.resolve() - icon_overlay = mutable_appearance(item_data.icon, item_data.icon_state, item_data.layer, src, item_data.appearance_flags) + icon_overlay = mutable_appearance(item_data.icon, item_data.icon_state, item_data.layer, src, item_data.plane, item_data.alpha, item_data.appearance_flags) icon_overlay.color = item_data.color icon_overlay.appearance = item_data.appearance icon_overlay.pixel_x = 32 + calculate_item_offset(is_x = TRUE) icon_overlay.pixel_y = 32 + calculate_item_offset(is_x = FALSE) - . += icon_overlay + return icon_overlay /// Updates item that is in the claw. /obj/effect/big_manipulator_hand/proc/update_claw(clawed_item) @@ -540,17 +719,17 @@ update_appearance() /// Calculate x and y coordinates so that the item icon appears in the claw and not somewhere in the corner. -/obj/effect/big_manipulator_hand/proc/calculate_item_offset(is_x = TRUE) +/obj/effect/big_manipulator_hand/proc/calculate_item_offset(is_x = TRUE, pixels_to_offset = 32) var/offset switch(dir) if(NORTH) - offset = is_x ? 0 : 32 + offset = is_x ? 0 : pixels_to_offset if(SOUTH) - offset = is_x ? 0 : -32 + offset = is_x ? 0 : -pixels_to_offset if(EAST) - offset = is_x ? 32 : 0 + offset = is_x ? pixels_to_offset : 0 if(WEST) - offset = is_x ? -32 : 0 + offset = is_x ? -pixels_to_offset : 0 return offset /// Priorities that manipulator use to choose to work on item with type same with what_type. @@ -577,7 +756,28 @@ what_type = /obj/item/storage number = 2 +/datum/manipulator_priority/for_use/on_living + name = "Use on Living" + what_type = /mob/living + number = 1 + +/datum/manipulator_priority/for_use/on_structure + name = "Use on Structure" + what_type = /obj/structure + number = 2 + +/datum/manipulator_priority/for_use/on_machinery + name = "Use on Machinery" + what_type = /obj/machinery + number = 3 + +/datum/manipulator_priority/for_use/on_items + name = "Use on Items" + what_type = /obj/item + number = 4 + #undef DROP_ITEM_MODE +#undef USE_ITEM_MODE #undef THROW_ITEM_MODE #undef TAKE_ITEMS diff --git a/code/game/machinery/civilian_bounties.dm b/code/game/machinery/civilian_bounties.dm index dcd967e082e5f..0d74cdd5d49b6 100644 --- a/code/game/machinery/civilian_bounties.dm +++ b/code/game/machinery/civilian_bounties.dm @@ -309,25 +309,10 @@ var/datum/bank_account/bounty_holder_account ///Bank account of the person who receives the handling tip. var/datum/bank_account/bounty_handler_account - ///Our internal radio. - var/obj/item/radio/radio - ///The key our internal radio uses. - var/radio_key = /obj/item/encryptionkey/headset_cargo /obj/item/bounty_cube/Initialize(mapload) . = ..() ADD_TRAIT(src, TRAIT_NO_BARCODES, INNATE_TRAIT) // Don't allow anyone to override our pricetag component with a barcode - radio = new(src) - radio.keyslot = new radio_key - radio.set_listening(FALSE) - radio.recalculateChannels() - RegisterSignal(radio, COMSIG_ITEM_PRE_EXPORT, PROC_REF(on_export)) - -/obj/item/bounty_cube/Destroy() - if(radio) - UnregisterSignal(radio, COMSIG_ITEM_PRE_EXPORT) - QDEL_NULL(radio) - return ..() /obj/item/bounty_cube/examine() . = ..() @@ -336,29 +321,20 @@ if(handler_tip && !bounty_handler_account) . += span_notice("Scan this in the cargo shuttle with an export scanner to register your bank account for the [bounty_value * handler_tip] credit handling tip.") -/* - * Signal proc for [COMSIG_ITEM_EXPORTED], registered on the internal radio. - * - * Deletes the internal radio before being exported, - * to stop it from bring counted as an export. - * - * No 4 free credits for you! - */ -/obj/item/bounty_cube/proc/on_export(datum/source) - SIGNAL_HANDLER - - QDEL_NULL(radio) - return COMPONENT_STOP_EXPORT // stops the radio from exporting, not the cube - /obj/item/bounty_cube/process(seconds_per_tick) //if our nag cooldown has finished and we aren't on Centcom or in transit, then nag if(COOLDOWN_FINISHED(src, next_nag_time) && !is_centcom_level(z) && !is_reserved_level(z)) - //set up our nag message + //set up our fallback message, in case of AAS being broken it will be sent to card holders var/nag_message = "[src] is unsent in [get_area(src)]." //nag on Supply channel and reduce the speed bonus multiplier to nothing - var/speed_bonus_lost = "[speed_bonus ? " Speedy delivery bonus of [bounty_value * speed_bonus] credit\s lost." : ""]" - radio.talk_into(src, "[nag_message][speed_bonus_lost]", RADIO_CHANNEL_SUPPLY) + var/obj/machinery/announcement_system/aas = get_announcement_system(/datum/aas_config_entry/bounty_cube_unsent, src) + if (aas) + nag_message = aas.compile_config_message(/datum/aas_config_entry/bounty_cube_unsent, list("LOCATION" = get_area_name(src), "COST" = bounty_value), "Regular Message") + if (speed_bonus) + aas.announce(/datum/aas_config_entry/bounty_cube_unsent, list("LOCATION" = get_area_name(src), "COST" = bounty_value, "BONUSLOST" = bounty_value * speed_bonus), list(RADIO_CHANNEL_SUPPLY), "When Bonus Lost") + else + aas.broadcast("[nag_message]", list(RADIO_CHANNEL_SUPPLY)) speed_bonus = 0 //alert the holder @@ -383,7 +359,13 @@ AddComponent(/datum/component/gps, "[src]") START_PROCESSING(SSobj, src) COOLDOWN_START(src, next_nag_time, nag_cooldown) - radio.talk_into(src,"Created in [get_area(src)] by [bounty_holder] ([bounty_holder_job]). Speedy delivery bonus lost in [time2text(next_nag_time - world.time,"mm:ss")].", RADIO_CHANNEL_SUPPLY) + aas_config_announce(/datum/aas_config_entry/bounty_cube_created, list( + "LOCATION" = get_area_name(src), + "PERSON" = bounty_holder, + "RANK" = bounty_holder_job, + "BONUSTIME" = time2text(next_nag_time - world.time,"mm:ss"), + "COST" = bounty_value + ), src, list(RADIO_CHANNEL_SUPPLY)) //for when you need a REAL bounty cube to test with and don't want to do a bounty each time your code changes /obj/item/bounty_cube/debug_cube @@ -429,4 +411,27 @@ qdel(src) uses-- +/datum/aas_config_entry/bounty_cube_created + name = "Cargo Alert: Bounty Cube Created" + announcement_lines_map = list( + "Message" = "A %COST cr bounty cube has been created in %LOCATION by %PERSON (%RANK). Speedy delivery bonus lost in %BONUSTIME.") + vars_and_tooltips_map = list( + "LOCATION" = "will be replaced with the location of the cube.", + "PERSON" = "with who created the cube.", + "RANK" = "with their job.", + "BONUSTIME" = "with the time left for speedy delivery tip.", + "COST" = "with the cost of the cube.", + ) + +/datum/aas_config_entry/bounty_cube_unsent + name = "Cargo Alert: Bounty Cube Unsent" + announcement_lines_map = list( + "Regular Message" = "The %COST cr bounty cube is unsent in %LOCATION.", + "When Bonus Lost" = "The %COST cr bounty cube is unsent in %LOCATION. Speedy delivery bonus of %BONUSLOST credits lost.") + vars_and_tooltips_map = list( + "LOCATION" = "will be replaced with the location of the cube.", + "COST" = "with the cost of the cube.", + "BONUSLOST" = "with the lost bonus tip, it will be sent just for When Bonus Lost message!", + ) + #undef CIV_BOUNTY_SPLIT diff --git a/code/game/machinery/computer/apc_control.dm b/code/game/machinery/computer/apc_control.dm index fdebf44e52abb..892113713617d 100644 --- a/code/game/machinery/computer/apc_control.dm +++ b/code/game/machinery/computer/apc_control.dm @@ -188,7 +188,10 @@ var/ref = params["ref"] playsound(src, SFX_TERMINAL_TYPE, 50, FALSE) var/obj/machinery/power/apc/remote_target = locate(ref) in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/power/apc) + if(!remote_target || !check_apc(remote_target)) + return connect_apc(remote_target, user) + return TRUE if("check-logs") log_activity("Checked Logs") if("check-apcs") @@ -198,13 +201,19 @@ var/type = params["type"] var/value = params["value"] var/obj/machinery/power/apc/target = locate(ref) in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/power/apc) - if(!target) + if(!target || !check_apc(target)) return value = target.setsubsystem(text2num(value)) switch(type) // Sanity check - if("equipment", "lighting", "environ") - target.vars[type] = value + if("equipment") + target.equipment = value + if("lighting") + target.lighting = value + if("environ") + target.environ = value + if(null) + return else message_admins("Warning: possible href exploit by [key_name(user)] - attempted to set [html_encode(type)] on [target] to [html_encode(value)]") user.log_message("possibly trying to href exploit - attempted to set [html_encode(type)] on [target] to [html_encode(value)]", LOG_ADMIN) @@ -227,9 +236,12 @@ if("breaker") var/ref = params["ref"] var/obj/machinery/power/apc/breaker_target = locate(ref) in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/power/apc) + if(!breaker_target || !check_apc(breaker_target)) + return breaker_target.toggle_breaker(user) var/setTo = breaker_target.operating ? "On" : "Off" log_activity("Turned APC [breaker_target.area.name]'s breaker [setTo]") + return TRUE /obj/machinery/computer/apc_control/ui_close(mob/user) . = ..() diff --git a/code/game/machinery/computer/arcade/orion.dm b/code/game/machinery/computer/arcade/orion.dm index c8236b5e8839f..5c2ed9b6d469e 100644 --- a/code/game/machinery/computer/arcade/orion.dm +++ b/code/game/machinery/computer/arcade/orion.dm @@ -28,7 +28,6 @@ var/spaceport_raided = FALSE var/gameStatus = ORION_STATUS_START - var/obj/item/radio/radio var/list/gamers = list() var/killed_crew = 0 @@ -40,15 +39,12 @@ var/datum/orion_event/new_event = new path(src) events[new_event] = new_event.weight orion_events = events - radio = new /obj/item/radio(src) - radio.set_listening(FALSE) setup_events() /obj/machinery/computer/arcade/orion_trail/proc/setup_events() events = orion_events.Copy() /obj/machinery/computer/arcade/orion_trail/Destroy() - QDEL_NULL(radio) events = null return ..() @@ -123,14 +119,15 @@ gamers[gamer]++ // How many times the player has 'prestiged' (massacred their crew) if(gamers[gamer] > ORION_GAMER_REPORT_THRESHOLD && prob(20 * gamers[gamer])) + aas_config_announce(/datum/aas_config_entry/orion_violent_behavior_alert, list( + "PERSON" = gamer.name, + "LOCATION" = get_area_name(src), + "SOURCE" = name), src, list(RADIO_CHANNEL_SECURITY), RADIO_CHANNEL_SECURITY) - radio.set_frequency(FREQ_SECURITY) - radio.talk_into(src, "SECURITY ALERT: Crewmember [gamer] recorded displaying antisocial tendencies in [get_area(src)]. Please watch for violent behavior.", FREQ_SECURITY) - - radio.set_frequency(FREQ_MEDICAL) - radio.talk_into(src, "PSYCH ALERT: Crewmember [gamer] recorded displaying antisocial tendencies in [get_area(src)]. Please schedule psych evaluation.", FREQ_MEDICAL) - - remove_radio_all(radio)//so we dont keep transmitting sec and medical comms + aas_config_announce(/datum/aas_config_entry/orion_violent_behavior_alert, list( + "PERSON" = gamer.name, + "LOCATION" = get_area_name(src), + "SOURCE" = name), src, list(RADIO_CHANNEL_MEDICAL), RADIO_CHANNEL_MEDICAL) gamers[gamer] = ORION_GAMER_PAMPHLET //next report send a pamph @@ -547,4 +544,17 @@ dialogue_level++ addtimer(CALLBACK(src, PROC_REF(commit_explosion), dialogue_level), time_for_next_level) +/datum/aas_config_entry/orion_violent_behavior_alert + // Well we don't want to show that only Orion Trails reports violent behavior, eh-h? + name = "Violent Behavior Alert" + announcement_lines_map = list( + RADIO_CHANNEL_SECURITY = "SECURITY ALERT: Crewmember %PERSON recorded displaying antisocial tendencies in %LOCATION by %SOURCE. Please watch for violent behavior.", + RADIO_CHANNEL_MEDICAL = "PSYCH ALERT: Crewmember %PERSON recorded displaying antisocial tendencies in %LOCATION by %SOURCE. Please schedule psych evaluation.", + ) + vars_and_tooltips_map = list( + "PERSON" = "will be replaced with the crewmember reported", + "LOCATION" = "with the area of violent behavior", + "SOURCE" = "with the reporter", + ) + #undef ORION_TRAIL_WINTURN diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 6ad2833a3784e..ee46d9e8be009 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -321,7 +321,7 @@ if (!COOLDOWN_FINISHED(src, important_action_cooldown)) return - var/message = trim(params["message"], MAX_MESSAGE_LEN) + var/message = trim(html_encode(params["message"]), MAX_MESSAGE_LEN) if (!message) return @@ -335,13 +335,16 @@ if(soft_filter_result) if(tgui_alert(user,"Your message contains \"[soft_filter_result[CHAT_FILTER_INDEX_WORD]]\". \"[soft_filter_result[CHAT_FILTER_INDEX_REASON]]\", Are you sure you want to use it?", "Soft Blocked Word", list("Yes", "No")) != "Yes") return - message_admins("[ADMIN_LOOKUPFLW(user)] has passed the soft filter for \"[soft_filter_result[CHAT_FILTER_INDEX_WORD]]\". They may be using a disallowed term for a cross-station message. Increasing delay time to reject.\n\n Message: \"[html_encode(message)]\"") + message_admins("[ADMIN_LOOKUPFLW(user)] has passed the soft filter for \"[soft_filter_result[CHAT_FILTER_INDEX_WORD]]\". They may be using a disallowed term for a cross-station message. Increasing delay time to reject.\n\n Message: \"[message]\"") log_admin_private("[key_name(user)] has passed the soft filter for \"[soft_filter_result[CHAT_FILTER_INDEX_WORD]]\". They may be using a disallowed term for a cross-station message. Increasing delay time to reject.\n\n Message: \"[message]\"") GLOB.communications_controller.soft_filtering = TRUE playsound(src, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE) var/destination = params["destination"] + if (!(destination in CONFIG_GET(keyed_list/cross_server)) && destination != "all") + message_admins("[ADMIN_LOOKUPFLW(user)] has passed an invalid destination into comms console cross-sector message. Message: \"[message]\"") + return user.log_message("is about to send the following message to [destination]: [message]", LOG_GAME) to_chat( @@ -350,7 +353,7 @@ "CROSS-SECTOR MESSAGE (OUTGOING): [ADMIN_LOOKUPFLW(user)] is about to send \ the following message to [destination] (will autoapprove in [GLOB.communications_controller.soft_filtering ? DisplayTimeText(EXTENDED_CROSS_SECTOR_CANCEL_TIME) : DisplayTimeText(CROSS_SECTOR_CANCEL_TIME)]): \ REJECT
\ - [html_encode(message)]" \ + [message]" \ ) ) diff --git a/code/game/machinery/computer/orders/order_computer/cook_order.dm b/code/game/machinery/computer/orders/order_computer/cook_order.dm index 88266ea63b8ab..b378c53b17d96 100644 --- a/code/game/machinery/computer/orders/order_computer/cook_order.dm +++ b/code/game/machinery/computer/orders/order_computer/cook_order.dm @@ -8,12 +8,13 @@ CATEGORY_SAUCES_REAGENTS, ) blackbox_key = "chef" + announcement_line = "The kitchen has ordered groceries which will arrive on the cargo shuttle! Please make sure it gets to them as soon as possible!" // Discount for items in the chefs category like mining/bitrunning consoles cargo_cost_multiplier = 0.65 /obj/machinery/computer/order_console/cook/order_groceries(mob/living/purchaser, obj/item/card/id/card, list/groceries) say("Thank you for your purchase! It will arrive on the next cargo shuttle!") - radio.talk_into(src, "The kitchen has ordered groceries which will arrive on the cargo shuttle! Please make sure it gets to them as soon as possible!", radio_channel) + aas_config_announce(/datum/aas_config_entry/order_console, list(), src, list(radio_channel), capitalize(blackbox_key)) for(var/datum/orderable_item/ordered_item in groceries) if(!(ordered_item.category_index in order_categories)) groceries.Remove(ordered_item) diff --git a/code/game/machinery/computer/orders/order_computer/mining_order.dm b/code/game/machinery/computer/orders/order_computer/mining_order.dm index 98c1e8eed2f28..e73ecfb341cf7 100644 --- a/code/game/machinery/computer/orders/order_computer/mining_order.dm +++ b/code/game/machinery/computer/orders/order_computer/mining_order.dm @@ -24,6 +24,7 @@ CATEGORY_PKA, ) blackbox_key = "mining" + announcement_line = "A shaft miner has ordered equipment which will arrive on the cargo shuttle! Please make sure it gets to them as soon as possible!" /obj/machinery/computer/order_console/mining/subtract_points(final_cost, obj/item/card/id/card) if(final_cost <= card.registered_account.mining_points) @@ -56,7 +57,7 @@ can_be_cancelled = FALSE, ) say("Thank you for your purchase! It will arrive on the next cargo shuttle!") - radio.talk_into(src, "A shaft miner has ordered equipment which will arrive on the cargo shuttle! Please make sure it gets to them as soon as possible!", radio_channel) + aas_config_announce(/datum/aas_config_entry/order_console, list(), src, list(radio_channel), capitalize(blackbox_key)) SSshuttle.shopping_list += new_order /obj/machinery/computer/order_console/mining/retrieve_points(obj/item/card/id/id_card) diff --git a/code/game/machinery/computer/orders/order_computer/order_computer.dm b/code/game/machinery/computer/orders/order_computer/order_computer.dm index b74601ee8a35d..a83b930eada44 100644 --- a/code/game/machinery/computer/orders/order_computer/order_computer.dm +++ b/code/game/machinery/computer/orders/order_computer/order_computer.dm @@ -19,10 +19,10 @@ GLOBAL_LIST_EMPTY(order_console_products) COOLDOWN_DECLARE(order_cooldown) ///Cooldown time between uses, express console will have extra time depending on express_cost_multiplier. var/cooldown_time = 60 SECONDS - ///The radio the console can speak into - var/obj/item/radio/radio ///The channel we will attempt to speak into through our radio. var/radio_channel = RADIO_CHANNEL_SUPPLY + ///What line we should announce on ordering_groceries + var/announcement_line ///The kind of cash does the console use. var/credit_type = CREDIT_TYPE_CREDIT @@ -41,11 +41,6 @@ GLOBAL_LIST_EMPTY(order_console_products) /obj/machinery/computer/order_console/Initialize(mapload) . = ..() - radio = new(src) - radio.set_frequency(FREQ_SUPPLY) - radio.subspace_transmission = TRUE - radio.canhear_range = 0 - radio.recalculateChannels() if(GLOB.order_console_products.len) return @@ -54,10 +49,6 @@ GLOBAL_LIST_EMPTY(order_console_products) continue GLOB.order_console_products += new path -/obj/machinery/computer/order_console/Destroy() - QDEL_NULL(radio) - return ..() - /obj/machinery/computer/order_console/proc/get_total_cost() var/cost = 0 for(var/datum/orderable_item/item as anything in grocery_list) @@ -243,4 +234,21 @@ GLOBAL_LIST_EMPTY(order_console_products) /obj/machinery/computer/order_console/proc/order_groceries(mob/living/purchaser, obj/item/card/id/card, list/groceries) return +/datum/aas_config_entry/order_console + name = "Local Ordering Console Announcements" + announcement_lines_map = list() + general_tooltip = "Used to make announces, when consoles listed here placing new order" + +/datum/aas_config_entry/order_console/New() + . = ..() + for(var/obj/machinery/computer/order_console/subconsole as anything in subtypesof(/obj/machinery/computer/order_console)) + if(subconsole.blackbox_key) + announcement_lines_map[capitalize(subconsole.blackbox_key)] = subconsole.announcement_line + +/datum/aas_config_entry/order_console/compile_announce(list/variables_map, announcement_line) + if (!announcement_lines_map.len) + announcement_lines_map["Error"] = "Unknown Error happened, while we tried to procceed an order, please report this to Nanotrasen." + . = ..() + + #undef CREDIT_TYPE_CREDIT diff --git a/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm b/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm index 27e6bf239023d..16165e80d932e 100644 --- a/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm @@ -172,6 +172,7 @@ dna_block = DNA_FISH_TAIL_BLOCK wag_flags = NONE organ_traits = list(TRAIT_FLOPPING) + restyle_flags = EXTERNAL_RESTYLE_FLESH // Fishlike reagents, you could serve it raw like fish food_reagents = list( diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index 10aa52cfd7bed..cd468ac4e0c06 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -31,15 +31,12 @@ var/list/flashers = list() ///List of weakrefs to nearby closets var/list/closets = list() - ///needed to send messages to sec radio - var/obj/item/radio/sec_radio + ///Channel to report prisoneer's release + var/broadcast_channel = RADIO_CHANNEL_SECURITY /obj/machinery/status_display/door_timer/Initialize(mapload) . = ..() - sec_radio = new/obj/item/radio(src) - sec_radio.set_listening(FALSE) - if(id != null) for(var/obj/machinery/door/window/brigdoor/M in urange(20, src)) if (M.id == id) @@ -136,8 +133,7 @@ return 0 if(!forced) - sec_radio.set_frequency(FREQ_SECURITY) - sec_radio.talk_into(src, "Timer has expired. Releasing prisoner.", FREQ_SECURITY) + aas_config_announce(/datum/aas_config_entry/brig_cell_release_announcement, list("CELL" = name), src, list(broadcast_channel)) timing = FALSE activation_time = 0 @@ -280,6 +276,15 @@ continue timer_end(forced = TRUE) +/datum/aas_config_entry/brig_cell_release_announcement + name = "Security Alert: Cell Timer Expired" + announcement_lines_map = list( + "Message" = "Timer for %CELL has expired. Releasing prisoner.", + ) + vars_and_tooltips_map = list( + "CELL" = "will be replaced with the cell name.", + ) + #undef PRESET_SHORT #undef PRESET_MEDIUM #undef PRESET_LONG diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index 6db5f9d4f1515..1705a4241fb68 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -429,11 +429,13 @@ if("set_pos") var/new_x = text2num(params["x"]) var/new_y = text2num(params["y"]) + // sanitizes our ranges for us our_pad.set_offset(new_x, new_y) . = TRUE if("move_pos") var/plus_x = text2num(params["x"]) var/plus_y = text2num(params["y"]) + // sanitizes our ranges for us our_pad.set_offset( x = our_pad.x_offset + plus_x, y = our_pad.y_offset + plus_y @@ -441,7 +443,7 @@ . = TRUE if("rename") . = TRUE - var/new_name = params["name"] + var/new_name = reject_bad_name(params["name"], allow_numbers = TRUE, max_length = MAX_NAME_LEN, cap_after_symbols = FALSE) if(!new_name) return our_pad.display_name = new_name diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm index 834d7115b0418..f3d8e236c73c0 100644 --- a/code/game/machinery/limbgrower.dm +++ b/code/game/machinery/limbgrower.dm @@ -7,6 +7,7 @@ icon_state = "limbgrower_idleoff" density = TRUE circuit = /obj/item/circuitboard/machine/limbgrower + interaction_flags_atom = parent_type::interaction_flags_atom | INTERACT_ATOM_REQUIRES_ANCHORED /// The category of limbs we're browing in our UI. var/selected_category = SPECIES_HUMAN @@ -32,6 +33,25 @@ stored_research = GLOB.autounlock_techwebs[/datum/techweb/autounlocking/limbgrower] . = ..() AddComponent(/datum/component/plumbing/simple_demand) + AddComponent(/datum/component/simple_rotation) + register_context() + +/obj/machinery/limbgrower/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = ..() + if(!held_item) + return NONE + + switch(held_item.tool_behaviour) + if(TOOL_SCREWDRIVER) + context[SCREENTIP_CONTEXT_LMB] = "[panel_open ? "Close" : "Open"] panel" + . = CONTEXTUAL_SCREENTIP_SET + if(TOOL_WRENCH) + context[SCREENTIP_CONTEXT_LMB] = "[anchored ? "Unan" : "An"]chor" + . = CONTEXTUAL_SCREENTIP_SET + + if(istype(held_item, /obj/item/disk/design_disk/limbs)) + context[SCREENTIP_CONTEXT_LMB] = "Load limb designs" + . = CONTEXTUAL_SCREENTIP_SET /// Emagging a limbgrower allows you to build synthetic armblades. /obj/machinery/limbgrower/emag_act(mob/user, obj/item/card/emag/emag_card) @@ -121,41 +141,57 @@ reagents.trans_to(our_beaker, our_beaker.reagents.maximum_volume) return ..() -/obj/machinery/limbgrower/attackby(obj/item/user_item, mob/living/user, params) - if (busy) - to_chat(user, span_warning("The Limb Grower is busy. Please wait for completion of previous operation.")) - return +/obj/machinery/limbgrower/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + . = ..() + if(user.combat_mode) + return ITEM_INTERACT_SKIP_TO_ATTACK + + if(check_busy(user)) + return ITEM_INTERACT_BLOCKING - if(istype(user_item, /obj/item/disk/design_disk/limbs)) - user.visible_message(span_notice("[user] begins to load \the [user_item] in \the [src]..."), - span_notice("You begin to load designs from \the [user_item]..."), + if(istype(tool, /obj/item/disk/design_disk/limbs)) + user.visible_message(span_notice("[user] begins to load \the [tool] in \the [src]..."), + span_notice("You begin to load designs from \the [tool]..."), span_hear("You hear the clatter of a floppy drive.")) busy = TRUE - var/obj/item/disk/design_disk/limbs/limb_design_disk = user_item + var/obj/item/disk/design_disk/limbs/limb_design_disk = tool if(do_after(user, 2 SECONDS, target = src)) for(var/datum/design/found_design in limb_design_disk.blueprints) imported_designs[found_design.id] = TRUE update_static_data(user) busy = FALSE - return + return ITEM_INTERACT_SUCCESS + +/obj/machinery/limbgrower/screwdriver_act(mob/living/user, obj/item/tool) + . = ..() + if(check_busy(user)) + return ITEM_INTERACT_BLOCKING - if(default_deconstruction_screwdriver(user, "limbgrower_panelopen", "limbgrower_idleoff", user_item)) + . = default_deconstruction_screwdriver(user, "limbgrower_panelopen", "limbgrower_idleoff", tool) + if(.) ui_close(user) - return - if(panel_open && default_deconstruction_crowbar(user_item)) - return +/obj/machinery/limbgrower/crowbar_act(mob/living/user, obj/item/tool) + . = ..() + if(check_busy(user)) + return ITEM_INTERACT_BLOCKING + + return default_deconstruction_crowbar(tool) + +/obj/machinery/limbgrower/wrench_act(mob/living/user, obj/item/tool) + . = ..() + if(check_busy(user)) + return ITEM_INTERACT_BLOCKING - if(user.combat_mode) //so we can hit the machine - return ..() + if(default_unfasten_wrench(user, tool)) + return ITEM_INTERACT_SUCCESS /obj/machinery/limbgrower/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return - if (busy) - to_chat(usr, span_warning("The limb grower is busy. Please wait for completion of previous operation.")) + if (check_busy(usr)) return switch(action) @@ -166,7 +202,12 @@ if("make_limb") var/design_id = params["design_id"] - if(!stored_research.researched_designs.Find(design_id) && !stored_research.hacked_designs.Find(design_id) && !imported_designs.Find(design_id)) + var/temp_category = params["active_tab"] + if(!stored_research.researched_designs[design_id] && !stored_research.hacked_designs[design_id] && !imported_designs[design_id]) + return + if(!(obj_flags & EMAGGED) && stored_research.hacked_designs.Find(design_id)) + return + if(!(temp_category in categories)) return being_built = SSresearch.techweb_design_by_id(design_id) // All the reagents we're using to make our organ. @@ -187,9 +228,6 @@ use_energy(power) flick("limbgrower_fill", src) icon_state = "limbgrower_idleon" - var/temp_category = params["active_tab"] - if( ! (temp_category in categories) ) - return FALSE //seriously come on selected_category = temp_category addtimer(CALLBACK(src, PROC_REF(build_item), consumed_reagents_list), production_speed * production_coefficient) return TRUE @@ -268,6 +306,18 @@ if(in_range(user, src) || isobserver(user)) . += span_notice("The status display reads: Storing up to [reagents.maximum_volume]u of reagents.
Reagent consumption rate at [production_coefficient * 100]%.") +/** + * Check if the limb grower is currently busy. + * + * user - user initiating the check. + * + * returns the value of src.busy. + */ +/obj/machinery/limbgrower/proc/check_busy(mob/user) + . = busy + if(.) + to_chat(user, span_warning("The limb grower is busy. Please wait for completion of previous operation.")) + /* * Checks our reagent list to see if a design can be built. * diff --git a/code/game/machinery/medical_kiosk.dm b/code/game/machinery/medical_kiosk.dm index 882d3bebc90cb..c37d20d26b9ff 100644 --- a/code/game/machinery/medical_kiosk.dm +++ b/code/game/machinery/medical_kiosk.dm @@ -367,7 +367,7 @@ data["active_status_4"] = scan_active & KIOSK_SCANNING_REAGENTS // Reagents/hallucination Scan Check return data -/obj/machinery/medical_kiosk/ui_act(action,active) +/obj/machinery/medical_kiosk/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/machinery/medipen_refiller.dm b/code/game/machinery/medipen_refiller.dm index 57c3fa2f8d493..45b8a27d8e276 100644 --- a/code/game/machinery/medipen_refiller.dm +++ b/code/game/machinery/medipen_refiller.dm @@ -24,24 +24,33 @@ /obj/machinery/medipen_refiller/Initialize(mapload) . = ..() AddComponent(/datum/component/plumbing/simple_demand) + AddComponent(/datum/component/simple_rotation) register_context() CheckParts() /obj/machinery/medipen_refiller/add_context(atom/source, list/context, obj/item/held_item, mob/user) - if(held_item) - if(held_item.tool_behaviour == TOOL_WRENCH) - context[SCREENTIP_CONTEXT_LMB] = anchored ? "Unsecure" : "Secure" - else if(held_item.tool_behaviour == TOOL_CROWBAR && panel_open) - context[SCREENTIP_CONTEXT_LMB] = "Deconstruct" - else if(held_item.tool_behaviour == TOOL_SCREWDRIVER) - context[SCREENTIP_CONTEXT_LMB] = panel_open ? "Close panel" : "Open panel" - else if(is_reagent_container(held_item) && held_item.is_open_container()) - context[SCREENTIP_CONTEXT_LMB] = "Refill machine" - else if(istype(held_item, /obj/item/reagent_containers/hypospray/medipen) && reagents.has_reagent(allowed_pens[held_item.type])) - context[SCREENTIP_CONTEXT_LMB] = "Refill medipen" - else if(istype(held_item, /obj/item/plunger)) - context[SCREENTIP_CONTEXT_LMB] = "Plunge machine" - return CONTEXTUAL_SCREENTIP_SET + . = ..() + if(!held_item) + return NONE + + if(held_item.tool_behaviour == TOOL_WRENCH) + context[SCREENTIP_CONTEXT_LMB] = anchored ? "Unsecure" : "Secure" + . = CONTEXTUAL_SCREENTIP_SET + else if(held_item.tool_behaviour == TOOL_CROWBAR && panel_open) + context[SCREENTIP_CONTEXT_LMB] = "Deconstruct" + . = CONTEXTUAL_SCREENTIP_SET + else if(held_item.tool_behaviour == TOOL_SCREWDRIVER) + context[SCREENTIP_CONTEXT_LMB] = panel_open ? "Close panel" : "Open panel" + . = CONTEXTUAL_SCREENTIP_SET + else if(is_reagent_container(held_item) && held_item.is_open_container()) + context[SCREENTIP_CONTEXT_LMB] = "Refill machine" + . = CONTEXTUAL_SCREENTIP_SET + else if(istype(held_item, /obj/item/reagent_containers/hypospray/medipen) && reagents.has_reagent(allowed_pens[held_item.type])) + context[SCREENTIP_CONTEXT_LMB] = "Refill medipen" + . = CONTEXTUAL_SCREENTIP_SET + else if(istype(held_item, /obj/item/plunger)) + context[SCREENTIP_CONTEXT_LMB] = "Plunge machine" + . = CONTEXTUAL_SCREENTIP_SET /obj/machinery/medipen_refiller/RefreshParts() . = ..() @@ -53,32 +62,43 @@ reagents.maximum_volume = new_volume return TRUE -/obj/machinery/medipen_refiller/attackby(obj/item/weapon, mob/user, params) +/obj/machinery/medipen_refiller/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + . = ..() + if(user.combat_mode) + return ITEM_INTERACT_SKIP_TO_ATTACK + if(DOING_INTERACTION(user, src)) balloon_alert(user, "already interacting!") - return - if(is_reagent_container(weapon) && weapon.is_open_container()) - var/obj/item/reagent_containers/reagent_container = weapon + return ITEM_INTERACT_BLOCKING + + if(is_reagent_container(tool) && tool.is_open_container()) + var/obj/item/reagent_containers/reagent_container = tool if(!length(reagent_container.reagents.reagent_list)) balloon_alert(user, "nothing to transfer!") - return + return ITEM_INTERACT_BLOCKING + var/units = reagent_container.reagents.trans_to(src, reagent_container.amount_per_transfer_from_this, transferred_by = user) if(units) balloon_alert(user, "[units] units transferred") + return ITEM_INTERACT_SUCCESS else balloon_alert(user, "reagent storage full!") - return - if(istype(weapon, /obj/item/reagent_containers/hypospray/medipen)) - var/obj/item/reagent_containers/hypospray/medipen/medipen = weapon + return ITEM_INTERACT_BLOCKING + + if(istype(tool, /obj/item/reagent_containers/hypospray/medipen)) + var/obj/item/reagent_containers/hypospray/medipen/medipen = tool if(!(LAZYFIND(allowed_pens, medipen.type))) balloon_alert(user, "medipen incompatible!") - return + return ITEM_INTERACT_BLOCKING + if(medipen.reagents?.reagent_list.len) balloon_alert(user, "medipen full!") - return + return ITEM_INTERACT_BLOCKING + if(!reagents.has_reagent(allowed_pens[medipen.type], 10)) balloon_alert(user, "not enough reagents!") - return + return ITEM_INTERACT_BLOCKING + add_overlay("active") if(do_after(user, 2 SECONDS, src)) medipen.used_up = FALSE @@ -87,8 +107,7 @@ balloon_alert(user, "refilled") use_energy(active_power_usage) cut_overlays() - return - return ..() + return ITEM_INTERACT_SUCCESS /obj/machinery/medipen_refiller/plunger_act(obj/item/plunger/P, mob/living/user, reinforced) user.balloon_alert_to_viewers("furiously plunging...", "plunging medipen refiller...") @@ -103,7 +122,7 @@ /obj/machinery/medipen_refiller/crowbar_act(mob/living/user, obj/item/tool) default_deconstruction_crowbar(tool) - return TRUE + return ITEM_INTERACT_SUCCESS /obj/machinery/medipen_refiller/screwdriver_act(mob/living/user, obj/item/tool) return default_deconstruction_screwdriver(user, "[initial(icon_state)]_open", initial(icon_state), tool) diff --git a/code/game/machinery/modular_shield.dm b/code/game/machinery/modular_shield.dm index 2e8fa632e42bf..8cef5211c9800 100644 --- a/code/game/machinery/modular_shield.dm +++ b/code/game/machinery/modular_shield.dm @@ -284,7 +284,7 @@ if ("set_radius") if (active) return - var/change_radius = max(1,(text2num(params["new_radius"]))) + var/change_radius = clamp(text2num(params["new_radius"]), 1, max_radius) if(change_radius >= 10) radius = round(change_radius)//if its over 10 we don't allow decimals return diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm index de7c6351e38d4..3c0bf1775400e 100644 --- a/code/game/machinery/pipe/pipe_dispenser.dm +++ b/code/game/machinery/pipe/pipe_dispenser.dm @@ -171,10 +171,8 @@ /obj/machinery/pipedispenser/wrench_act(mob/living/user, obj/item/tool) . = ..() - if(default_unfasten_wrench(user, tool, time = 4 SECONDS)) - user << browse(null, "window=pipedispenser") - - return TRUE + default_unfasten_wrench(user, tool, time = 4 SECONDS) + return ITEM_INTERACT_SUCCESS /obj/machinery/pipedispenser/disposal diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 6124d15a7f4b7..a5ed6f8da6321 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -43,8 +43,6 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments) var/message_verified_by = "" /// If a message is stamped, this will contain the stamp name var/message_stamped_by = "" - /// Reference to the internal radio - var/obj/item/radio/radio ///If an emergency has been called by this device. Acts as both a cooldown and lets the responder know where it the emergency was triggered from var/emergency /// If ore redemption machines will send an update when it receives new ores. @@ -124,13 +122,9 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments) GLOB.req_console_all += src GLOB.req_console_ckey_departments[ckey(department)] = department // and then we set ourselves a listed name - - radio = new /obj/item/radio(src) - radio.set_listening(FALSE) find_and_hang_on_wall() /obj/machinery/requests_console/Destroy() - QDEL_NULL(radio) QDEL_LIST(messages) GLOB.req_console_all -= src return ..() @@ -168,20 +162,15 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments) if("set_emergency") if(emergency) return - var/radio_freq switch(params["emergency"]) if(REQ_EMERGENCY_SECURITY) //Security - radio_freq = FREQ_SECURITY + aas_config_announce(/datum/aas_config_entry/rc_emergency, list("LOCATION" = department), null, list(RADIO_CHANNEL_SECURITY), REQ_EMERGENCY_SECURITY) if(REQ_EMERGENCY_ENGINEERING) //Engineering - radio_freq = FREQ_ENGINEERING + aas_config_announce(/datum/aas_config_entry/rc_emergency, list("LOCATION" = department), null, list(RADIO_CHANNEL_ENGINEERING), REQ_EMERGENCY_ENGINEERING) if(REQ_EMERGENCY_MEDICAL) //Medical - radio_freq = FREQ_MEDICAL - if(radio_freq) - emergency = params["emergency"] - radio.set_frequency(radio_freq) - radio.talk_into(src,"[emergency] emergency in [department]!!",radio_freq) - update_appearance() - addtimer(CALLBACK(src, PROC_REF(clear_emergency)), 5 MINUTES) + aas_config_announce(/datum/aas_config_entry/rc_emergency, list("LOCATION" = department), null, list(RADIO_CHANNEL_MEDICAL), REQ_EMERGENCY_MEDICAL) + update_appearance() + addtimer(CALLBACK(src, PROC_REF(clear_emergency)), 5 MINUTES) return TRUE if("send_announcement") if(!COOLDOWN_FINISHED(src, announcement_cooldown)) @@ -242,20 +231,22 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments) ///Sends the message from the request console /obj/machinery/requests_console/proc/send_message(recipient, message, priority, request_type) - var/radio_freq + var/radio_channel + // They all naming them wrong, all the time... I'll probably rewrite this later in separate PR. + // Automatically from areas or via mapping helpers. (ther is no "Cargobay Request Console" in any map) switch(ckey(recipient)) if("bridge") - radio_freq = FREQ_COMMAND + radio_channel = RADIO_CHANNEL_COMMAND if("medbay") - radio_freq = FREQ_MEDICAL + radio_channel = RADIO_CHANNEL_MEDICAL if("science") - radio_freq = FREQ_SCIENCE + radio_channel = RADIO_CHANNEL_SCIENCE if("engineering") - radio_freq = FREQ_ENGINEERING + radio_channel = RADIO_CHANNEL_ENGINEERING if("security") - radio_freq = FREQ_SECURITY + radio_channel = RADIO_CHANNEL_SECURITY if("cargobay", "mining") - radio_freq = FREQ_SUPPLY + radio_channel = RADIO_CHANNEL_SUPPLY var/datum/signal/subspace/messaging/rc/signal = new(src, list( "sender_department" = department, @@ -264,7 +255,7 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments) "verified" = message_verified_by, "stamped" = message_stamped_by, "priority" = priority, - "notify_freq" = radio_freq, + "notify_channel" = radio_channel, "request_type" = request_type, )) signal.send_to_receivers() @@ -347,15 +338,26 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments) SStgui.update_uis(src) - var/alert = new_message.get_alert() - if(!silent) playsound(src, 'sound/machines/beep/twobeep_high.ogg', 50, TRUE) - say(alert) - - if(new_message.radio_freq) - radio.set_frequency(new_message.radio_freq) - radio.talk_into(src, "[alert]: [new_message.content]", new_message.radio_freq) + say(new_message.get_alert()) + + if(new_message.radio_channel) + var/authentication + var/announcement_line = "Unauthenticated" + if (new_message.message_verified_by) + authentication = new_message.message_verified_by + announcement_line = "Verified with ID" + else if (new_message.message_stamped_by) + authentication = new_message.message_stamped_by + announcement_line = "Stamped with stamp" + + aas_config_announce(/datum/aas_config_entry/rc_new_message, list( + "AUTHENTICATION" = authentication, + "SENDER" = new_message.sender_department, + "RECEIVER" = department, + "MESSAGE" = new_message.content + ), null, list(new_message.radio_channel), announcement_line, new_message.priority == REQ_EXTREME_MESSAGE_PRIORITY) /obj/machinery/requests_console/crowbar_act(mob/living/user, obj/item/tool) tool.play_tool_sound(src, 50) @@ -412,6 +414,32 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/requests_console/auto_name, 30) result_path = /obj/machinery/requests_console/auto_name pixel_shift = 30 +/datum/aas_config_entry/rc_emergency + name = "RC Alert: Emergency" + announcement_lines_map = list( + "Security" = "Security emergency in %LOCATION!!!", + "Engineering" = "Engineering emergency in %LOCATION!!!", + "Medical" = "Medical emergency in %LOCATION!!!", + ) + vars_and_tooltips_map = list( + "LOCATION" = "will be replaced with the department name", + ) + +/datum/aas_config_entry/rc_new_message + name = "RC Alert: New Message " + // Yes, players can't use html tags, however they can use speech mods like | or +, but sh-sh-sh, don't tell them! + announcement_lines_map = list( + "Unauthenticated" = "Message from %SENDER to %RECEIVER: %MESSAGE", + "Verified with ID" = "Message from %SENDER to %RECEIVER, Verified by %AUTHENTICATION (Authenticated): %MESSAGE", + "Stamped with stamp" = "Message from %SENDER to %RECEIVER, Stamped by %AUTHENTICATION (Authenticated): %MESSAGE", + ) + vars_and_tooltips_map = list( + "AUTHENTICATION" = "will be replaced with ID or stamp, if present", + "SENDER" = "with the sender department ", + "RECEIVER" = "with the receiver department", + "MESSAGE" = "with the message content", + ) + #undef REQ_EMERGENCY_SECURITY #undef REQ_EMERGENCY_ENGINEERING #undef REQ_EMERGENCY_MEDICAL diff --git a/code/game/machinery/scanner_gate.dm b/code/game/machinery/scanner_gate.dm index ee93f41cf552e..25b7587513ba6 100644 --- a/code/game/machinery/scanner_gate.dm +++ b/code/game/machinery/scanner_gate.dm @@ -39,7 +39,7 @@ ///Base false positive/negative chance var/base_false_beep = 5 ///List of species that can be scanned by the gate. Supports adding more species' IDs during in-game. - var/list/available_species = list( + var/static/list/available_species = list( SPECIES_HUMAN, SPECIES_LIZARD, SPECIES_FLYPERSON, @@ -51,6 +51,31 @@ SPECIES_GOLEM, SPECIES_ZOMBIE, ) + /// All scan modes available to the scanner + var/static/list/all_modes = list( + SCANGATE_NONE, + SCANGATE_MINDSHIELD, + SCANGATE_DISEASE, + SCANGATE_GUNS, + SCANGATE_WANTED, + SCANGATE_SPECIES, + SCANGATE_NUTRITION, + ) + /// All disease severity thresholds available to the scanner + var/static/list/all_disease_thresholds = list( + DISEASE_SEVERITY_POSITIVE, + DISEASE_SEVERITY_NONTHREAT, + DISEASE_SEVERITY_MINOR, + DISEASE_SEVERITY_MEDIUM, + DISEASE_SEVERITY_HARMFUL, + DISEASE_SEVERITY_DANGEROUS, + DISEASE_SEVERITY_BIOHAZARD, + ) + /// All nutrition levels available to the scanner + var/static/list/nutrition_modes = list( + "Starving", + "Obese", + ) /// Overlay object we're using for scanlines var/obj/effect/overlay/scanline = null @@ -292,6 +317,8 @@ switch(action) if("set_mode") var/new_mode = params["new_mode"] + if(!new_mode || !(new_mode in all_modes)) + return scangate_mode = new_mode . = TRUE if("toggle_reverse") @@ -303,26 +330,25 @@ . = TRUE if("set_disease_threshold") var/new_threshold = params["new_threshold"] + if(!new_threshold || !(new_threshold in all_disease_thresholds)) + return disease_threshold = new_threshold . = TRUE if("set_target_species") var/new_specie_id = params["new_species_id"] - if(!(new_specie_id in available_species)) + if(!new_specie_id || !(new_specie_id in available_species)) return detect_species_id = new_specie_id . = TRUE if("set_target_nutrition") var/new_nutrition = params["new_nutrition"] - var/nutrition_list = list( - "Starving", - "Obese" - ) - if(new_nutrition && (new_nutrition in nutrition_list)) - switch(new_nutrition) - if("Starving") - detect_nutrition = NUTRITION_LEVEL_STARVING - if("Obese") - detect_nutrition = NUTRITION_LEVEL_FAT + if(!new_nutrition || !(new_nutrition in nutrition_modes)) + return + switch(new_nutrition) + if("Starving") + detect_nutrition = NUTRITION_LEVEL_STARVING + if("Obese") + detect_nutrition = NUTRITION_LEVEL_FAT . = TRUE /obj/machinery/scanner_gate/preset_guns diff --git a/code/game/objects/effects/anomalies/anomalies_pyroclastic.dm b/code/game/objects/effects/anomalies/anomalies_pyroclastic.dm index f09cd7cf56d9f..db8b44beb0462 100644 --- a/code/game/objects/effects/anomalies/anomalies_pyroclastic.dm +++ b/code/game/objects/effects/anomalies/anomalies_pyroclastic.dm @@ -6,13 +6,25 @@ /// How many seconds between each gas release var/releasedelay = 10 anomaly_core = /obj/item/assembly/signaler/anomaly/pyro + /// Observer chosen to become a pyro slime + var/mob/chosen_one + /// Has a poll started + var/already_polling = FALSE + /// Delay before spawning a slime + var/poll_time = 10 SECONDS /obj/effect/anomaly/pyro/Initialize(mapload, new_lifespan) . = ..() apply_wibbly_filters(src) +/obj/effect/anomaly/pyro/Destroy() + chosen_one = null + return ..() + /obj/effect/anomaly/pyro/anomalyEffect(seconds_per_tick) ..() + if(!already_polling && death_time < (world.time - poll_time)) + start_poll() ticks += seconds_per_tick if(ticks < releasedelay) return FALSE @@ -26,6 +38,10 @@ /obj/effect/anomaly/pyro/detonate() INVOKE_ASYNC(src, PROC_REF(makepyroslime)) +/obj/effect/anomaly/pyro/proc/start_poll() + already_polling = TRUE + chosen_one = SSpolling.poll_ghosts_for_target(check_jobban = ROLE_SENTIENCE, poll_time = poll_time, checked_target = src, ignore_category = POLL_IGNORE_PYROSLIME, alert_pic = src, role_name_text = "pyroclastic anomaly slime") + /obj/effect/anomaly/pyro/proc/makepyroslime() var/turf/open/tile = get_turf(src) if(istype(tile)) @@ -34,14 +50,14 @@ var/new_colour = pick(/datum/slime_type/red, /datum/slime_type/orange) var/mob/living/basic/slime/pyro = new(tile, new_colour, SLIME_LIFE_STAGE_ADULT) pyro.set_enraged_behaviour() - - var/mob/chosen_one = SSpolling.poll_ghosts_for_target(check_jobban = ROLE_SENTIENCE, poll_time = 10 SECONDS, checked_target = pyro, ignore_category = POLL_IGNORE_PYROSLIME, alert_pic = pyro, role_name_text = "pyroclastic anomaly slime") + // Failed to find a player, or somehow detonated prematurely if(isnull(chosen_one)) return pyro.key = chosen_one.key pyro.mind.special_role = ROLE_PYROCLASTIC_SLIME pyro.mind.add_antag_datum(/datum/antagonist/pyro_slime) pyro.log_message("was made into a slime by pyroclastic anomaly", LOG_GAME) + chosen_one = null ///Bigger, meaner, immortal pyro anomaly /obj/effect/anomaly/pyro/big diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index b70d105953e95..4760a8981083e 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -520,10 +520,6 @@ add_fingerprint(usr) return ..() -/obj/item/vv_get_dropdown() - . = ..() - VV_DROPDOWN_OPTION(VV_HK_ADD_FANTASY_AFFIX, "Add Fantasy Affix") - /obj/item/vv_do_topic(list/href_list) . = ..() @@ -696,6 +692,7 @@ if(item_flags & DROPDEL && !QDELETED(src)) qdel(src) item_flags &= ~IN_INVENTORY + UnregisterSignal(src, list(SIGNAL_ADDTRAIT(TRAIT_NO_WORN_ICON), SIGNAL_REMOVETRAIT(TRAIT_NO_WORN_ICON))) SEND_SIGNAL(src, COMSIG_ITEM_DROPPED, user) if(!silent) playsound(src, drop_sound, DROP_SOUND_VOLUME, vary = sound_vary, ignore_walls = FALSE) @@ -760,6 +757,7 @@ give_item_action(action, user, slot) item_flags |= IN_INVENTORY + RegisterSignals(src, list(SIGNAL_ADDTRAIT(TRAIT_NO_WORN_ICON), SIGNAL_REMOVETRAIT(TRAIT_NO_WORN_ICON)), PROC_REF(update_slot_icon), override = TRUE) if(!initial) if(equip_sound && (slot_flags & slot)) playsound(src, equip_sound, EQUIP_SOUND_VOLUME, TRUE, ignore_walls = FALSE) @@ -924,6 +922,7 @@ return null /obj/item/proc/update_slot_icon() + SIGNAL_HANDLER if(!ismob(loc)) return var/mob/owner = loc diff --git a/code/game/objects/items/airlock_painter.dm b/code/game/objects/items/airlock_painter.dm index 948e22a2f97d8..660b6bd330559 100644 --- a/code/game/objects/items/airlock_painter.dm +++ b/code/game/objects/items/airlock_painter.dm @@ -306,16 +306,24 @@ switch(action) //Lists of decals and designs if("select decal") - var/selected_decal = params["decal"] - var/selected_dir = text2num(params["dir"]) - stored_decal = selected_decal - stored_dir = selected_dir + . = TRUE + for(var/decal_set in decal_list) + if(decal_set[2] == params["decal"]) + stored_decal = params["decal"] + break + for(var/dir_set in dir_list) + if(dir_set[2] == text2num(params["dir"])) + stored_dir = text2num(params["dir"]) + break + if("select color") - var/selected_color = params["color"] - stored_color = selected_color + . = TRUE + stored_color = params["color"] + if("pick custom color") if(supports_custom_color) pick_painting_tool_color(usr, stored_custom_color) + update_decal_path() . = TRUE diff --git a/code/game/objects/items/body_egg.dm b/code/game/objects/items/body_egg.dm index 7a8d70888f066..40ea0ba37b5fe 100644 --- a/code/game/objects/items/body_egg.dm +++ b/code/game/objects/items/body_egg.dm @@ -5,6 +5,7 @@ visual = TRUE zone = BODY_ZONE_CHEST slot = ORGAN_SLOT_PARASITE_EGG + organ_flags = parent_type::organ_flags | ORGAN_HAZARDOUS /obj/item/organ/body_egg/on_find(mob/living/finder) ..() diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index cb8f561122fc5..6f83659c99d75 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -920,20 +920,15 @@ /// Re-generates the honorific title. Returns the compiled honorific_title value /obj/item/card/id/proc/update_honorific() - var/is_mononym = is_mononym(registered_name) switch(honorific_position) if(HONORIFIC_POSITION_FIRST) honorific_title = "[chosen_honorific] [first_name(registered_name)]" if(HONORIFIC_POSITION_LAST) honorific_title = "[chosen_honorific] [last_name(registered_name)]" if(HONORIFIC_POSITION_FIRST_FULL) - honorific_title = "[chosen_honorific] [first_name(registered_name)]" - if(!is_mononym) - honorific_title += " [last_name(registered_name)]" + honorific_title = "[chosen_honorific] [registered_name]" if(HONORIFIC_POSITION_LAST_FULL) - if(!is_mononym) - honorific_title += "[first_name(registered_name)] " - honorific_title += "[last_name(registered_name)][chosen_honorific]" + honorific_title = "[registered_name][chosen_honorific]" return honorific_title /// Returns the trim assignment name. @@ -1593,9 +1588,9 @@ return ..() balloon_alert(user, "flipped") if(trim_assignment_override) - SSid_access.remove_trim_from_chameleon_card(src) + SSid_access.remove_trim_override(src) else - SSid_access.apply_trim_to_chameleon_card(src, alt_trim) + SSid_access.apply_trim_override(src, alt_trim) update_label() update_appearance() @@ -1811,7 +1806,7 @@ if(forged) //reset the ID if forged registered_name = initial(registered_name) assignment = initial(assignment) - SSid_access.remove_trim_from_chameleon_card(src) + SSid_access.remove_trim_override(src) REMOVE_TRAIT(src, TRAIT_MAGNETIC_ID_CARD, CHAMELEON_ITEM_TRAIT) user.log_message("reset \the [initial(name)] named \"[src]\" to default.", LOG_GAME) update_label() @@ -1866,7 +1861,7 @@ registered_name = input_name if(selected_trim_path) - SSid_access.apply_trim_to_chameleon_card(src, trim_list[selected_trim_path]) + SSid_access.apply_trim_override(src, trim_list[selected_trim_path]) if(target_occupation) assignment = sanitize(target_occupation) if(new_age) diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 1e48d8fe4e8a6..11ce1c4ed5b12 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -905,6 +905,9 @@ if(pre_noise || post_noise) playsound(user.loc, 'sound/effects/spray.ogg', 25, TRUE, 5) + if(SEND_SIGNAL(target, COMSIG_CARBON_SPRAYPAINTED, user, src)) + return ITEM_INTERACT_BLOCKING + var/mob/living/carbon/carbon_target = target user.visible_message(span_danger("[user] sprays [src] into the face of [target]!")) to_chat(target, span_userdanger("[user] sprays [src] into your face!")) diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm index fbdf3bae40a88..5783b3c867f52 100644 --- a/code/game/objects/items/devices/chameleonproj.dm +++ b/code/game/objects/items/devices/chameleonproj.dm @@ -77,9 +77,7 @@ saved_appearance = temp.appearance /obj/item/chameleon/proc/check_sprite(atom/target) - if(target.icon_state in icon_states(target.icon)) - return TRUE - return FALSE + return icon_exists(target.icon, target.icon_state) /obj/item/chameleon/proc/toggle(mob/user) if(!can_use || !saved_appearance) diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 32c31fb511015..b3f4e087a82ce 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -792,8 +792,10 @@ /// The timer id powering our burning var/timer_id = TIMER_ID_NULL -/obj/item/flashlight/glowstick/Initialize(mapload, fuel_override = null) +/obj/item/flashlight/glowstick/Initialize(mapload, fuel_override = null, fuel_type_override = null) max_fuel = isnull(fuel_override) ? rand(20, 25) : fuel_override + if (fuel_type_override) + fuel_type = fuel_type_override create_reagents(max_fuel + oxygen_added, DRAWABLE | INJECTABLE) reagents.add_reagent(fuel_type, max_fuel) . = ..() diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 4d67b4a0e3882..e0ffc2fc167e3 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -352,7 +352,7 @@ if(isliving(talking_movable)) var/mob/living/talking_living = talking_movable - var/volume_modifier = (talking_living.client?.prefs.read_preference(/datum/preference/numeric/sound_radio_noise)) + var/volume_modifier = (talking_living.client?.prefs.read_preference(/datum/preference/numeric/volume/sound_radio_noise)) if(radio_noise && talking_living.can_hear() && volume_modifier && signal.frequency != FREQ_COMMON && !LAZYACCESS(message_mods, MODE_SEQUENTIAL) && COOLDOWN_FINISHED(src, audio_cooldown)) COOLDOWN_START(src, audio_cooldown, 0.5 SECONDS) var/sound/radio_noise = sound('sound/items/radio/radio_talk.ogg', volume = volume_modifier) @@ -434,8 +434,8 @@ return var/mob/living/holder = loc - var/volume_modifier = (holder.client?.prefs.read_preference(/datum/preference/numeric/sound_radio_noise)) - if(!radio_noise || HAS_TRAIT(holder, TRAIT_DEAF) || !holder.client?.prefs.read_preference(/datum/preference/numeric/sound_radio_noise)) + var/volume_modifier = (holder.client?.prefs.read_preference(/datum/preference/numeric/volume/sound_radio_noise)) + if(!radio_noise || HAS_TRAIT(holder, TRAIT_DEAF) || !holder.client?.prefs.read_preference(/datum/preference/numeric/volume/sound_radio_noise)) return var/list/spans = data["spans"] if(COOLDOWN_FINISHED(src, audio_cooldown)) diff --git a/code/game/objects/items/devices/scanners/plant_analyzer.dm b/code/game/objects/items/devices/scanners/plant_analyzer.dm index 25bfab652f796..363ae5067b0df 100644 --- a/code/game/objects/items/devices/scanners/plant_analyzer.dm +++ b/code/game/objects/items/devices/scanners/plant_analyzer.dm @@ -64,13 +64,15 @@ if(isliving(interacting_with)) playsound(src, SFX_INDUSTRIAL_SCAN, 20, TRUE, -2, TRUE, FALSE) - var/mob/living/L = interacting_with - if(L.mob_biotypes & MOB_PLANT) - plant_biotype_health_scan(interacting_with, user) + var/mob/living/living_target = interacting_with + if(living_target.mob_biotypes & MOB_PLANT) + plant_biotype_health_scan(living_target, user) return ITEM_INTERACT_SUCCESS + return ITEM_INTERACT_BLOCKING - analyze(user, interacting_with) - return ITEM_INTERACT_SUCCESS + if(analyze(user, interacting_with)) + return ITEM_INTERACT_SUCCESS + return NONE /// Same as above, but with right click. Right-clicking scans for chemicals. /obj/item/plant_analyzer/interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers) @@ -78,7 +80,10 @@ if(!user.can_read(src)) return ITEM_INTERACT_BLOCKING - return do_plant_chem_scan(interacting_with, user) ? ITEM_INTERACT_SUCCESS : ITEM_INTERACT_BLOCKING + if(do_plant_chem_scan(interacting_with, user)) + return ITEM_INTERACT_SUCCESS + + return NONE /* * Scan the target on chemical scan mode. This prints chemical genes and reagents to the user. @@ -91,10 +96,10 @@ */ /obj/item/plant_analyzer/proc/do_plant_chem_scan(atom/scan_target, mob/user) if(isliving(scan_target)) - var/mob/living/L = scan_target - if(L.mob_biotypes & MOB_PLANT) + var/mob/living/living_target = scan_target + if(living_target.mob_biotypes & MOB_PLANT) plant_biotype_chem_scan(scan_target, user) - return TRUE + return TRUE return analyze(user, scan_target) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 341231d767a14..3270bdfa5afaa 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -355,11 +355,13 @@ effective or pretty fucking useless. user.balloon_alert(user, "disruptor wave released!") to_chat(user, span_notice("You release a disruptor wave, disabling all nearby radio devices.")) for (var/atom/potential_owner in view(7, user)) - disable_radios_on(potential_owner) + disable_radios_on(potential_owner, ignore_syndie = TRUE) COOLDOWN_START(src, jam_cooldown, jam_cooldown_duration) /obj/item/jammer/attack_self_secondary(mob/user, modifiers) . = ..() + if(.) + return to_chat(user, span_notice("You [active ? "deactivate" : "activate"] [src].")) user.balloon_alert(user, "[active ? "deactivated" : "activated"] the jammer") active = !active @@ -368,6 +370,7 @@ effective or pretty fucking useless. else GLOB.active_jammers -= src update_appearance() + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN /obj/item/jammer/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) . = ..() @@ -385,8 +388,10 @@ effective or pretty fucking useless. return ITEM_INTERACT_SUCCESS -/obj/item/jammer/proc/disable_radios_on(atom/target) +/obj/item/jammer/proc/disable_radios_on(atom/target, ignore_syndie = FALSE) for (var/obj/item/radio/radio in target.get_all_contents() + target) + if(ignore_syndie && (radio.special_channels & RADIO_SPECIAL_SYNDIE)) + continue radio.set_broadcasting(FALSE) /obj/item/jammer/Destroy() diff --git a/code/game/objects/items/grenades/_grenade.dm b/code/game/objects/items/grenades/_grenade.dm index 664a31c226207..bf2b93f6cc125 100644 --- a/code/game/objects/items/grenades/_grenade.dm +++ b/code/game/objects/items/grenades/_grenade.dm @@ -24,6 +24,10 @@ var/dud_flags = NONE ///Is this grenade currently armed? var/active = FALSE + /// Sound played when the grenade is armed + var/grenade_arm_sound = 'sound/items/weapons/armbomb.ogg' + /// If the sound of the grenade should be varied + var/grenade_sound_vary = TRUE ///Is it a cluster grenade? We don't wanna spam admin logs with these. var/type_cluster = FALSE ///How long it takes for a grenade to explode after being armed @@ -155,7 +159,7 @@ if(shrapnel_type && shrapnel_radius) shrapnel_initialized = TRUE AddComponent(/datum/component/pellet_cloud, projectile_type = shrapnel_type, magnitude = shrapnel_radius) - playsound(src, 'sound/items/weapons/armbomb.ogg', volume, TRUE) + playsound(src, grenade_arm_sound, volume, grenade_sound_vary) if(istype(user)) user.add_mob_memory(/datum/memory/bomb_planted, antagonist = src) active = TRUE diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm index 78031af7d744d..6ee8b54aff9a1 100644 --- a/code/game/objects/items/grenades/chem_grenade.dm +++ b/code/game/objects/items/grenades/chem_grenade.dm @@ -234,7 +234,7 @@ active = TRUE update_icon_state() - playsound(src, 'sound/items/weapons/armbomb.ogg', volume, TRUE) + playsound(src, grenade_arm_sound, volume, grenade_sound_vary) if(landminemode) landminemode.activate() return diff --git a/code/game/objects/items/grenades/clusterbuster.dm b/code/game/objects/items/grenades/clusterbuster.dm index fe5666267e07f..33f0c87748360 100644 --- a/code/game/objects/items/grenades/clusterbuster.dm +++ b/code/game/objects/items/grenades/clusterbuster.dm @@ -13,7 +13,6 @@ var/base_state = "clusterbang" var/payload = /obj/item/grenade/flashbang/cluster var/payload_spawner = /obj/effect/payload_spawner - var/prime_sound = 'sound/items/weapons/armbomb.ogg' var/min_spawned = 4 var/max_spawned = 8 var/segment_chance = 35 @@ -44,7 +43,7 @@ new /obj/item/grenade/clusterbuster/segment(drop_location(), src)//Creates 'segments' that launches a few more payloads new payload_spawner(drop_location(), payload, numspawned)//Launches payload - playsound(src, prime_sound, 75, TRUE, -3) + playsound(src, grenade_arm_sound, 75, TRUE, -3) qdel(src) ////////////////////// @@ -66,7 +65,7 @@ icon_state = base_state payload_spawner = base.payload_spawner payload = base.payload - prime_sound = base.prime_sound + grenade_arm_sound = base.grenade_arm_sound min_spawned = base.min_spawned max_spawned = base.max_spawned icon_state = "[base_state]_active" @@ -78,7 +77,7 @@ /obj/item/grenade/clusterbuster/segment/detonate(mob/living/lanced_by) new payload_spawner(drop_location(), payload, rand(min_spawned, max_spawned)) - playsound(src, prime_sound, 75, TRUE, -3) + playsound(src, grenade_arm_sound, 75, TRUE, -3) qdel(src) ////////////////////////////////// @@ -207,7 +206,7 @@ icon_state = "slimebang" base_state = "slimebang" payload_spawner = /obj/effect/payload_spawner/random_slime - prime_sound = 'sound/effects/bubbles/bubbles.ogg' + grenade_arm_sound = 'sound/effects/bubbles/bubbles.ogg' /obj/item/grenade/clusterbuster/slime/volatile payload_spawner = /obj/effect/payload_spawner/random_slime/volatile diff --git a/code/game/objects/items/gun_maintenance.dm b/code/game/objects/items/gun_maintenance.dm index 072ec395c191c..77ba80352910b 100644 --- a/code/game/objects/items/gun_maintenance.dm +++ b/code/game/objects/items/gun_maintenance.dm @@ -1,6 +1,78 @@ /obj/item/gun_maintenance_supplies - name = "gun maintenance supplies" - desc = "plastic box containing gun maintenance supplies and spare parts. Use them on a rifle to clean it." - icon = 'icons/obj/storage/box.dmi' - icon_state = "plasticbox" - w_class = WEIGHT_CLASS_SMALL + name = "gun maintenance kit" + desc = "A toolbox containing gun maintenance supplies and spare parts. Can be applied to firearms to maintain them." + icon = 'icons/obj/storage/toolbox.dmi' + icon_state = "maint_kit" + inhand_icon_state = "ammobox" + lefthand_file = 'icons/mob/inhands/equipment/toolbox_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/toolbox_righthand.dmi' + force = 12 + throwforce = 12 + throw_speed = 2 + throw_range = 7 + demolition_mod = 1.25 + w_class = WEIGHT_CLASS_BULKY + drop_sound = 'sound/items/handling/ammobox_drop.ogg' + pickup_sound = 'sound/items/handling/ammobox_pickup.ogg' + /// How many times we can use this maintenance kit to maintain a gun + var/uses = 3 + /// THe maximum uses, used for our examine text. + var/max_uses = 3 + +/obj/item/gun_maintenance_supplies/examine(mob/user) + . = ..() + . += span_info("This kit has [uses] uses out of [max_uses] left.") + +/obj/item/gun_maintenance_supplies/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) + . = ..() + if(. & ITEM_INTERACT_ANY_BLOCKER) + return ITEM_INTERACT_BLOCKING + + if(!isgun(interacting_with)) + balloon_alert(user, "not a gun!") + return ITEM_INTERACT_BLOCKING + + var/obj/item/gun/gun_to_fix = interacting_with + + var/gun_is_damaged = gun_to_fix.get_integrity() < gun_to_fix.max_integrity + var/use_charge = FALSE + + if(gun_is_damaged) + gun_to_fix.repair_damage(gun_to_fix.max_integrity) + use_charge = TRUE + + if(istype(gun_to_fix, /obj/item/gun/ballistic)) + var/obj/item/gun/ballistic/ballistic_gun_to_fix = gun_to_fix + + if(ballistic_gun_to_fix.misfire_probability > initial(ballistic_gun_to_fix.misfire_probability)) + ballistic_gun_to_fix.misfire_probability = initial(ballistic_gun_to_fix.misfire_probability) + + if(istype(ballistic_gun_to_fix, /obj/item/gun/ballistic/rifle/boltaction)) + var/obj/item/gun/ballistic/rifle/boltaction/rifle_to_fix = ballistic_gun_to_fix + if(rifle_to_fix.jammed) + rifle_to_fix.jammed = FALSE + rifle_to_fix.unjam_chance = initial(rifle_to_fix.unjam_chance) + rifle_to_fix.jamming_chance = initial(rifle_to_fix.jamming_chance) + use_charge = TRUE + + if(!use_charge) + balloon_alert(user, "no need for repair!") + return ITEM_INTERACT_BLOCKING + + balloon_alert(user, "maintenance complete") + use_the_kit() + return ITEM_INTERACT_SUCCESS + +/obj/item/gun_maintenance_supplies/proc/use_the_kit() + uses -- + if(!uses) + qdel(src) + +/obj/item/gun_maintenance_supplies/makeshift + name = "makeshift gun maintenance kit" + desc = "A toolbox containing enough supplies to juryrig repairs on firearms. Can be applied to firearms to maintain them. \ + The tools are a little basic, and the materials low-quality, but it gets the job done." + icon_state = "maint_kit_makeshift" + inhand_icon_state = "toolbox_blue" + uses = 1 + max_uses = 1 diff --git a/code/game/objects/items/hand_items.dm b/code/game/objects/items/hand_items.dm index eb9c9ca4d0532..cf4486ea59950 100644 --- a/code/game/objects/items/hand_items.dm +++ b/code/game/objects/items/hand_items.dm @@ -480,12 +480,6 @@ return ranged_interact_with_atom(interacting_with, user, modifiers) /obj/item/hand_item/kisser/ranged_interact_with_atom(atom/target, mob/living/user, list/modifiers) - if(HAS_TRAIT(user, TRAIT_GARLIC_BREATH)) - kiss_type = /obj/projectile/kiss/french - - if(HAS_TRAIT(user, TRAIT_CHEF_KISS)) - kiss_type = /obj/projectile/kiss/chef - var/obj/projectile/blown_kiss = new kiss_type(get_turf(user)) user.visible_message("[user] blows \a [blown_kiss] at [target]!", span_notice("You blow \a [blown_kiss] at [target]!")) @@ -545,6 +539,18 @@ color = COLOR_ALMOST_BLACK kiss_type = /obj/projectile/kiss/ink +/obj/item/hand_item/kisser/french + name = "french kiss" + desc = "You really should brush your teeth." + color = COLOR_GRAY + kiss_type = /obj/projectile/kiss/french + +/obj/item/hand_item/kisser/chef + name = "chef's kiss" + desc = "The secret ingridient is love. And opium, but mostly love." + color = COLOR_LIGHT_PINK + kiss_type = /obj/projectile/kiss/chef + /obj/projectile/kiss name = "kiss" icon = 'icons/mob/simple/animal.dmi' diff --git a/code/game/objects/items/melee/baton.dm b/code/game/objects/items/melee/baton.dm index 74e5d54e8b128..946a9e47eaeb9 100644 --- a/code/game/objects/items/melee/baton.dm +++ b/code/game/objects/items/melee/baton.dm @@ -382,7 +382,7 @@ RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, PROC_REF(on_transform)) /obj/item/melee/baton/telescopic/additional_effects_non_cyborg(mob/living/target, mob/living/user) - target.apply_status_effect(/datum/status_effect/next_shove_stuns) + target.apply_status_effect(/datum/status_effect/dazed) /obj/item/melee/baton/telescopic/suicide_act(mob/living/user) var/mob/living/carbon/human/human_user = user @@ -530,6 +530,8 @@ var/active_changes_inhand = TRUE ///Whether or not our baton visibly changes the inhand sprite based on inserted cell var/tip_changes_color = TRUE + ///When set, inhand_icon_state defaults to this instead of base_icon_state + var/base_inhand_state = null /datum/armor/baton_security bomb = 50 @@ -594,20 +596,21 @@ update_appearance() /obj/item/melee/baton/security/update_icon_state() + var/base_inhand = base_inhand_state || base_icon_state if(active) icon_state = "[base_icon_state]_active" if(active_changes_inhand) if(tip_changes_color) - inhand_icon_state = "[base_icon_state]_active_[get_baton_tip_color()]" + inhand_icon_state = "[base_inhand]_active_[get_baton_tip_color()]" else - inhand_icon_state = "[base_icon_state]_active" + inhand_icon_state = "[base_inhand]_active" return ..() if(!cell) icon_state = "[base_icon_state]_nocell" - inhand_icon_state = "[base_icon_state]" + inhand_icon_state = base_inhand return ..() - icon_state = "[base_icon_state]" - inhand_icon_state = "[base_icon_state]" + icon_state = base_icon_state + inhand_icon_state = base_inhand return ..() /obj/item/melee/baton/security/examine(mob/user) @@ -833,6 +836,7 @@ icon_state = "stunprod" base_icon_state = "stunprod" inhand_icon_state = "prod" + base_inhand_state = "prod" worn_icon_state = null icon_angle = -45 lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' diff --git a/code/game/objects/items/pillow.dm b/code/game/objects/items/pillow.dm index af2096a9c2caa..b491d17d1fe33 100644 --- a/code/game/objects/items/pillow.dm +++ b/code/game/objects/items/pillow.dm @@ -22,6 +22,8 @@ var/hit_sound ///if we have a brick inside us var/bricked = FALSE + drop_sound = SFX_CLOTH_DROP + pickup_sound = SFX_CLOTH_PICKUP /obj/item/pillow/Initialize(mapload) . = ..() diff --git a/code/game/objects/items/rcd/RLD.dm b/code/game/objects/items/rcd/RLD.dm index 953f02c72dea4..9c227cd15d4f8 100644 --- a/code/game/objects/items/rcd/RLD.dm +++ b/code/game/objects/items/rcd/RLD.dm @@ -198,7 +198,20 @@ if(!useResource(GLOW_STICK_COST, user)) return ITEM_INTERACT_BLOCKING activate() - var/obj/item/flashlight/glowstick/new_stick = new /obj/item/flashlight/glowstick(start) + // Picks the closest fitting color for the fluid by hue + var/closest_diff = null + var/closest_fluid = null + var/list/unwrapped_color = rgb2num(color_choice, COLORSPACE_HSV) + var/chosen_hue = unwrapped_color[1] + for (var/datum/reagent/luminescent_fluid/glowstick_fluid as anything in typesof(/datum/reagent/luminescent_fluid)) + unwrapped_color = rgb2num(glowstick_fluid::color, COLORSPACE_HSV) + var/hue_diff = abs(chosen_hue - unwrapped_color[1]) + if (hue_diff > 180) + hue_diff = 360 - hue_diff + if (isnull(closest_diff) || hue_diff < closest_diff) + closest_diff = hue_diff + closest_fluid = glowstick_fluid + var/obj/item/flashlight/glowstick/new_stick = new /obj/item/flashlight/glowstick(start, null, closest_fluid) new_stick.color = color_choice new_stick.set_light_color(new_stick.color) new_stick.throw_at(interacting_with, 9, 3, user) diff --git a/code/game/objects/items/rcd/RTD.dm b/code/game/objects/items/rcd/RTD.dm index e76e4a377cb26..7a6802d54b493 100644 --- a/code/game/objects/items/rcd/RTD.dm +++ b/code/game/objects/items/rcd/RTD.dm @@ -34,79 +34,62 @@ var/design_category = "Standard" /// design selected by player var/datum/tile_info/selected_design - /// temp var to store an single design from GLOB.floor_design while iterating through this list - var/datum/tile_info/tile_design + /// direction currently selected + var/selected_direction = SOUTH /// overlays on a tile var/list/design_overlays = list() var/ranged = TRUE + /// stores the name, type, icon & cost for each tile type /datum/tile_info /// name of this tile design for ui var/name /// path to create this tile type var/obj/item/stack/tile/tile_type - /// icon for this tile to display for ui + /// path for the turf + var/turf/open/floor/turf_type + /// icon file used by the turf + var/icon_file + /// icon_state for this tile to display for ui var/icon_state /// rcd units to consume for this tile creation var/cost ///directions this tile can be placed on the turf - var/list/tile_directions - /// user friendly names of the tile_directions to be sent to ui - var/list/ui_directional_data - /// current direction this tile should be rotated in before being placed on the plating - var/selected_direction + var/list/tile_directions_text + var/list/tile_directions_numbers + + /// CSS selector for the icon in TGUI + var/icon_css_class /// decompress a single tile design list element from GLOB.floor_designs into its individual variables -/datum/tile_info/proc/set_info(list/design) +/datum/tile_info/New(list/design) name = design["name"] tile_type = design["type"] - icon_state = initial(tile_type.icon_state) + turf_type = initial(tile_type.turf_type) + icon_file = initial(turf_type.icon) + icon_state = initial(turf_type.icon_state) + icon_css_class = sanitize_css_class_name("[icon_file]-[icon_state]") + var/obj/item/stack/tile/tile_obj = new tile_type // lists stored on types compile to be inside New() + tile_directions_text = assoc_to_keys(tile_obj.tile_rotate_dirs) + tile_directions_numbers = tile_obj.tile_rotate_dirs_number + qdel(tile_obj) cost = design["tile_cost"] - tile_directions = design["tile_rotate_dirs"] - if(!tile_directions) - selected_direction = null - ui_directional_data = null - return - - ui_directional_data = list() - for(var/tile_direction in tile_directions) - ui_directional_data += dir2text(tile_direction) - selected_direction = tile_directions[1] - /// fill all information to be sent to the UI -/datum/tile_info/proc/fill_ui_data(list/data) +/datum/tile_info/proc/fill_ui_data(list/data, selected_direction) data["selected_recipe"] = name - data["selected_icon"] = get_icon_state() + data["selected_icon"] = icon_css_class - if(!tile_directions) + if(!tile_directions_text) data["selected_direction"] = null return - data["tile_dirs"] = ui_directional_data + data["tile_dirs"] = tile_directions_text data["selected_direction"] = dir2text(selected_direction) -/// change the direction the tile is laid on the turf -/datum/tile_info/proc/set_direction(direction) - if(tile_directions == null || !(direction in tile_directions)) - return - selected_direction = direction - -/** - * retrieve the icon for this tile design based on its direction - * for complex directions like NORTHSOUTH etc we create an seperated blended icon in the asset file for example floor-northsouth - * so we check which icons we want to retrieve based on its direction - * for basic directions its rotated with CSS so there is no need for icon - */ -/datum/tile_info/proc/get_icon_state() - var/prefix = "" - if(selected_direction) - prefix = (selected_direction in GLOB.tile_dont_rotate) ? "" : "-[dir2text(selected_direction)]" - return icon_state + prefix - ///convinience proc to quickly convert the tile design into an physical tile to lay on the plating -/datum/tile_info/proc/new_tile(loc) +/datum/tile_info/proc/new_tile(loc, selected_direction) var/obj/item/stack/tile/final_tile = new tile_type(loc, 1) final_tile.turf_dir = selected_direction return final_tile @@ -142,13 +125,13 @@ /obj/item/construction/rtd/Initialize(mapload) . = ..() - selected_design = new - tile_design = new - selected_design.set_info(GLOB.floor_designs[root_category][design_category][1]) + var/list/design = GLOB.floor_designs[root_category][design_category][1] + if(!design["datum"]) + populate_rtd_datums() + selected_design = design["datum"] /obj/item/construction/rtd/Destroy() - QDEL_NULL(selected_design) - QDEL_NULL(tile_design) + selected_design = null QDEL_LIST(design_overlays) return ..() @@ -182,8 +165,11 @@ var/list/designs = list() //initialize all designs under this category for(var/list/design as anything in target_category) - tile_design.set_info(design) - designs += list(list("name" = tile_design.name, "icon" = tile_design.get_icon_state())) + var/datum/tile_info/tile_design = design["datum"] + if(!istype(tile_design)) + populate_rtd_datums() + tile_design = design["datum"] + designs += list(list("name" = tile_design.name, "icon" = tile_design.icon_css_class)) data["categories"] += list(list("category_name" = sub_category, "recipes" = designs)) @@ -193,7 +179,7 @@ var/list/data = ..() data["selected_category"] = design_category - selected_design.fill_ui_data(data) + selected_design.fill_ui_data(data, selected_direction) return data @@ -212,7 +198,7 @@ var/direction = text2dir(params["dir"]) if(!direction) return FALSE - selected_design.set_direction(direction) + selected_direction = direction if("recipe") var/list/main_root = floor_designs[root_category] @@ -227,7 +213,10 @@ QDEL_LIST(design_overlays) design_category = params["category_name"] - selected_design.set_info(target_design) + if(!target_design["datum"]) + populate_rtd_datums() + selected_design = target_design["datum"] + selected_direction = SOUTH blueprint_changed = TRUE return TRUE @@ -285,8 +274,8 @@ //store all information about this tile root_category = main_root design_category = sub_category - selected_design.set_info(design_info) - selected_design.set_direction(floor.dir) + selected_design = design_info["datum"] + selected_direction = floor.dir balloon_alert(user, "tile changed to [selected_design.name]") return ITEM_INTERACT_SUCCESS @@ -320,7 +309,7 @@ return ITEM_INTERACT_BLOCKING activate() //step 1 create tile - var/obj/item/stack/tile/final_tile = selected_design.new_tile(user.drop_location()) + var/obj/item/stack/tile/final_tile = selected_design.new_tile(user.drop_location(), selected_direction) if(QDELETED(final_tile)) //if you were standing on a stack of tiles this newly spawned tile could get merged with it cause its spawned on your location qdel(rcd_effect) balloon_alert(user, "tile got merged with the stack beneath you!") diff --git a/code/game/objects/items/shrapnel.dm b/code/game/objects/items/shrapnel.dm index cb0cea91ed677..6eb6a461c82e6 100644 --- a/code/game/objects/items/shrapnel.dm +++ b/code/game/objects/items/shrapnel.dm @@ -20,6 +20,13 @@ icon_state = "s-casing" embed_type = null +/obj/item/shrapnel/plastic + name = "plastic shard" + custom_materials = list(/datum/material/plastic = SMALL_MATERIAL_AMOUNT * 0.5) + icon_state = "titaniummedium" + sharpness = SHARP_EDGED + embed_type = /datum/embedding/shrapnel + /obj/projectile/bullet/shrapnel name = "flying shrapnel shard" damage = 14 diff --git a/code/game/objects/items/signs.dm b/code/game/objects/items/signs.dm index d0ed3425f9719..0bc545b01898a 100644 --- a/code/game/objects/items/signs.dm +++ b/code/game/objects/items/signs.dm @@ -46,17 +46,17 @@ user.manual_emote("waves around a blank sign.") var/direction = prob(50) ? -1 : 1 if(NSCOMPONENT(user.dir)) //So signs are waved horizontally relative to what way the player waving it is facing. - animate(user, pixel_x = user.pixel_x + (1 * direction), time = 1, easing = SINE_EASING) - animate(pixel_x = user.pixel_x - (2 * direction), time = 1, easing = SINE_EASING) - animate(pixel_x = user.pixel_x + (2 * direction), time = 1, easing = SINE_EASING) - animate(pixel_x = user.pixel_x - (2 * direction), time = 1, easing = SINE_EASING) - animate(pixel_x = user.pixel_x + (1 * direction), time = 1, easing = SINE_EASING) + animate(user, pixel_w = (1 * direction), time = 0.1 SECONDS, easing = SINE_EASING, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) + animate(pixel_w = (-2 * direction), time = 0.1 SECONDS, easing = SINE_EASING, flags = ANIMATION_RELATIVE) + animate(pixel_w = (2 * direction), time = 0.1 SECONDS, easing = SINE_EASING, flags = ANIMATION_RELATIVE) + animate(pixel_w = (-2 * direction), time = 0.1 SECONDS, easing = SINE_EASING, flags = ANIMATION_RELATIVE) + animate(pixel_w = (1 * direction), time = 0.1 SECONDS, easing = SINE_EASING, flags = ANIMATION_RELATIVE) else - animate(user, pixel_y = user.pixel_y + (1 * direction), time = 1, easing = SINE_EASING) - animate(pixel_y = user.pixel_y - (2 * direction), time = 1, easing = SINE_EASING) - animate(pixel_y = user.pixel_y + (2 * direction), time = 1, easing = SINE_EASING) - animate(pixel_y = user.pixel_y - (2 * direction), time = 1, easing = SINE_EASING) - animate(pixel_y = user.pixel_y + (1 * direction), time = 1, easing = SINE_EASING) + animate(user, pixel_z = (1 * direction), time = 0.1 SECONDS, easing = SINE_EASING, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) + animate(pixel_z = (-2 * direction), time = 0.1 SECONDS, easing = SINE_EASING, flags = ANIMATION_RELATIVE) + animate(pixel_z = (2 * direction), time = 0.1 SECONDS, easing = SINE_EASING, flags = ANIMATION_RELATIVE) + animate(pixel_z = (-2 * direction), time = 0.1 SECONDS, easing = SINE_EASING, flags = ANIMATION_RELATIVE) + animate(pixel_z = (1 * direction), time = 0.1 SECONDS, easing = SINE_EASING, flags = ANIMATION_RELATIVE) user.changeNext_move(CLICK_CD_MELEE) /datum/action/item_action/nano_picket_sign diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 36203ff57f710..f74846418b21b 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -36,6 +36,12 @@ var/apply_verb = "treating" /// Whether this item can be used on dead bodies var/works_on_dead = FALSE + /// The sound this makes when starting healing with this item + var/heal_begin_sound = null + /// The sound this makes when healed successfully with this item + var/heal_end_sound = null + /// The sound this makes when doing a continuous loop of healing with this item + var/heal_continuous_sound = null /obj/item/stack/medical/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) if(!isliving(interacting_with)) @@ -114,8 +120,11 @@ * * auto_change_zone - Handles the behavior when we finish healing a zone * If auto_change_zone is set to TRUE, it picks the next most damaged zone to heal * If auto_change_zone is set to FALSE, it'll give the user a chance to pick a new zone to heal + * If continuous is set to true, it will play the continuous sound for healing */ -/obj/item/stack/medical/proc/try_heal(mob/living/patient, mob/living/user, healed_zone, silent = FALSE, auto_change_zone = TRUE) +/obj/item/stack/medical/proc/try_heal(mob/living/patient, mob/living/user, healed_zone, silent = FALSE, auto_change_zone = TRUE, continuous = FALSE) + if(heal_begin_sound && !continuous) + playsound(patient, heal_begin_sound, 75, TRUE, MEDIUM_RANGE_SOUND_EXTRARANGE) if(patient == user) if(!silent) user.visible_message( @@ -170,12 +179,14 @@ return else CRASH("Stack medical item healing a non-carbon, non-animal mob [patient] ([patient.type])") - - log_combat(user, patient, "healed", src) if(!use(1) || !repeating || amount <= 0) var/atom/alert_loc = QDELETED(src) ? user : src alert_loc.balloon_alert(user, repeating ? "all used up!" : "treated [parse_zone(healed_zone)]") + playsound(patient, heal_end_sound, 75, TRUE, MEDIUM_RANGE_SOUND_EXTRARANGE) return + if(heal_continuous_sound && (continuous || !silent)) + playsound(patient, heal_continuous_sound, 75, TRUE, MEDIUM_RANGE_SOUND_EXTRARANGE) + log_combat(user, patient, "healed", src) // first, just try looping // 1. we can keep healing the current target @@ -184,7 +195,7 @@ if(try_heal_checks(patient, user, preferred_target, silent = TRUE)) if(preferred_target != healed_zone) patient.balloon_alert(user, "[apply_verb] [parse_zone(preferred_target)]...") - try_heal(patient, user, preferred_target, TRUE, auto_change_zone) + try_heal(patient, user, preferred_target, TRUE, auto_change_zone, TRUE) return // second, handle what happens otherwise @@ -197,6 +208,8 @@ else // behavior 2: assess injury, giving the user time to manually pick another zone try_heal_manual_target(patient, user) + if(heal_end_sound) + playsound(patient, heal_end_sound, 75, TRUE, MEDIUM_RANGE_SOUND_EXTRARANGE) /obj/item/stack/medical/proc/try_heal_auto_change_zone(mob/living/carbon/patient, mob/living/user, preferred_target, last_zone) PRIVATE_PROC(TRUE) @@ -214,7 +227,7 @@ var/next_picked = (preferred_target in other_affected_limbs) ? preferred_target : other_affected_limbs[1] if(next_picked != last_zone) patient.balloon_alert(user, "[apply_verb] [parse_zone(next_picked)]...") - try_heal(patient, user, next_picked, silent = TRUE, auto_change_zone = TRUE) + try_heal(patient, user, next_picked, silent = TRUE, auto_change_zone = TRUE, continuous = TRUE) /obj/item/stack/medical/proc/try_heal_manual_target(mob/living/carbon/patient, mob/living/user) PRIVATE_PROC(TRUE) @@ -226,7 +239,7 @@ if(!try_heal_checks(patient, user, new_zone)) return patient.balloon_alert(user, "[apply_verb] [parse_zone(new_zone)]...") - try_heal(patient, user, new_zone, silent = TRUE, auto_change_zone = FALSE) + try_heal(patient, user, new_zone, silent = TRUE, auto_change_zone = FALSE, continuous = TRUE) /// Checks if the passed patient can be healed by the passed user /obj/item/stack/medical/proc/can_heal(mob/living/patient, mob/living/user, healed_zone, silent = FALSE) @@ -375,6 +388,10 @@ apply_verb = "wrapping" works_on_dead = TRUE var/obj/item/bodypart/gauzed_bodypart + heal_end_sound = SFX_BANDAGE_END + heal_begin_sound = SFX_BANDAGE_BEGIN + drop_sound = SFX_CLOTH_DROP + pickup_sound = SFX_CLOTH_PICKUP /obj/item/stack/medical/gauze/Destroy(force) . = ..() @@ -412,7 +429,7 @@ return FALSE // gauze is only relevant for wounds, which are handled in the wounds themselves -/obj/item/stack/medical/gauze/try_heal(mob/living/patient, mob/living/user, healed_zone, silent, auto_change_zone) +/obj/item/stack/medical/gauze/try_heal(mob/living/patient, mob/living/user, healed_zone, silent, auto_change_zone, continuous) var/obj/item/bodypart/limb = patient.get_bodypart(healed_zone) var/treatment_delay = (user == patient ? self_delay : other_delay) var/any_scanned = FALSE @@ -444,6 +461,7 @@ span_warning("You begin wrapping the wounds on [user == patient ? "your" : "[patient]'s"] [limb.plaintext_zone] with [src]..."), visible_message_flags = ALWAYS_SHOW_SELF_MESSAGE, ) + playsound(src, heal_begin_sound, 75, TRUE, MEDIUM_RANGE_SOUND_EXTRARANGE) if(!do_after(user, treatment_delay, target = patient)) return @@ -455,6 +473,8 @@ span_green("You bandage the wounds on [user == patient ? "your" : "[patient]'s"] [limb.plaintext_zone]."), visible_message_flags = ALWAYS_SHOW_SELF_MESSAGE, ) + if(heal_end_sound) + playsound(patient, heal_end_sound, 75, TRUE, MEDIUM_RANGE_SOUND_EXTRARANGE) limb.apply_gauze(src) /obj/item/stack/medical/gauze/twelve @@ -518,6 +538,11 @@ grind_results = list(/datum/reagent/medicine/spaceacillin = 2) merge_type = /obj/item/stack/medical/suture apply_verb = "suturing" + drop_sound = SFX_SUTURE_DROP + pickup_sound = SFX_SUTURE_PICKUP + heal_begin_sound = SFX_SUTURE_BEGIN + heal_continuous_sound = SFX_SUTURE_CONTINUOUS + heal_end_sound = SFX_SUTURE_END /obj/item/stack/medical/suture/emergency name = "emergency suture" @@ -574,6 +599,8 @@ repeating = TRUE sanitization = 0.75 flesh_regeneration = 3 + pickup_sound = SFX_CLOTH_PICKUP + drop_sound = SFX_CLOTH_DROP var/is_open = TRUE ///This var determines if the sterile packaging of the mesh has been opened. grind_results = list(/datum/reagent/medicine/spaceacillin = 2) @@ -754,6 +781,8 @@ other_delay = 1 SECONDS grind_results = list(/datum/reagent/medicine/c2/libital = 2) apply_verb = "applying to" + pickup_sound = SFX_CLOTH_PICKUP + // add a better drop sound more fitting for a lil' itty bitty band-aid /obj/item/stack/medical/bandage/makeshift name = "makeshift bandage" diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 0254af8e24201..3b1b0bde6bb73 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -517,9 +517,11 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ force = 0 throwforce = 0 merge_type = /obj/item/stack/sheet/cloth - drop_sound = 'sound/items/handling/cloth_drop.ogg' - pickup_sound = 'sound/items/handling/cloth_pickup.ogg' + drop_sound = 'sound/items/handling/cloth/cloth_drop1.ogg' + pickup_sound = 'sound/items/handling/cloth/cloth_pickup1.ogg' grind_results = list(/datum/reagent/cellulose = 20) + pickup_sound = SFX_CLOTH_PICKUP + drop_sound = SFX_CLOTH_DROP /obj/item/stack/sheet/cloth/get_main_recipes() . = ..() @@ -548,8 +550,8 @@ GLOBAL_LIST_INIT(durathread_recipes, list ( \ force = 0 throwforce = 0 merge_type = /obj/item/stack/sheet/durathread - drop_sound = 'sound/items/handling/cloth_drop.ogg' - pickup_sound = 'sound/items/handling/cloth_pickup.ogg' + drop_sound = 'sound/items/handling/cloth/cloth_drop1.ogg' + pickup_sound = 'sound/items/handling/cloth/cloth_pickup1.ogg' /obj/item/stack/sheet/durathread/Initialize(mapload) . = ..() @@ -579,8 +581,8 @@ GLOBAL_LIST_INIT(durathread_recipes, list ( \ grind_results = list(/datum/reagent/cellulose = 20) var/loom_result = /obj/item/stack/sheet/cloth var/loom_time = 1 SECONDS - drop_sound = 'sound/items/handling/cloth_drop.ogg' - pickup_sound = 'sound/items/handling/cloth_pickup.ogg' + drop_sound = 'sound/items/handling/cloth/cloth_drop1.ogg' + pickup_sound = 'sound/items/handling/cloth/cloth_pickup1.ogg' /obj/item/stack/sheet/cotton/Initialize(mapload) . = ..() diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index f2c860d2d7644..84387a18dcbf7 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -26,6 +26,8 @@ var/list/tile_reskin_types /// Cached associative lazy list to hold the radial options for tile dirs. See tile_reskinning.dm for more information. var/list/tile_rotate_dirs + /// tile_rotate_dirs but before it gets converted to text + var/list/tile_rotate_dirs_number /obj/item/stack/tile/Initialize(mapload, new_amount, merge = TRUE, list/mat_override=null, mat_amt=1) . = ..() @@ -35,6 +37,7 @@ if(tile_reskin_types) tile_reskin_types = tile_reskin_list(tile_reskin_types) if(tile_rotate_dirs) + tile_rotate_dirs_number = tile_rotate_dirs.Copy() var/list/values = list() for(var/set_dir in tile_rotate_dirs) values += dir2text(set_dir) diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index 3235a0e7c053b..bb9e57213da43 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -12,7 +12,7 @@ * Plant Bag * Sheet Snatcher * Book Bag - * Biowaste Bag + * Biowaste Bag * * -Sayu */ @@ -320,6 +320,63 @@ desc = "" capacity = 500//Borgs get more because >specialization + +// ----------------------------- +// Sheet Snatcher (Debug) +// ----------------------------- + +/obj/item/storage/bag/sheetsnatcher/debug + name = "sheet snatcher EXTREME EDITION" + desc = "A Nanotrasen storage system designed which has been given post-market alterations to hold any type of sheet. Comes pre-populated with " + color = "#ff3737" // I'm too lazy to make a unique sprite + capacity = 5000 // Hopefully enough to fit anything you need + w_class = WEIGHT_CLASS_TINY + +// Copy-pasted from the former /obj/item/storage/box/material, w/ small additions like rods, cardboard, plastic. +// "Only 20 uranium 'cause of radiation" +/obj/item/storage/bag/sheetsnatcher/debug/PopulateContents() + var/static/items_inside = list( + /obj/item/stack/sheet/iron/fifty=1, + /obj/item/stack/sheet/glass/fifty=1, + /obj/item/stack/sheet/rglass/fifty=1, + /obj/item/stack/sheet/plasmaglass/fifty=1, + /obj/item/stack/sheet/titaniumglass/fifty=1, + /obj/item/stack/sheet/plastitaniumglass/fifty=1, + /obj/item/stack/sheet/plasteel/fifty=1, + /obj/item/stack/sheet/mineral/titanium/fifty=1, + /obj/item/stack/sheet/mineral/gold=50, + /obj/item/stack/sheet/mineral/silver=50, + /obj/item/stack/sheet/mineral/plasma=50, + /obj/item/stack/sheet/mineral/uranium=20, + /obj/item/stack/sheet/mineral/diamond=50, + /obj/item/stack/sheet/bluespace_crystal=50, + /obj/item/stack/sheet/mineral/bananium=50, + /obj/item/stack/sheet/mineral/wood/fifty=1, + /obj/item/stack/sheet/plastic/fifty=1, + /obj/item/stack/sheet/runed_metal/fifty=1, + /obj/item/stack/rods/fifty=1, + /obj/item/stack/sheet/mineral/plastitanium=50, + /obj/item/stack/sheet/mineral/abductor=50, + /obj/item/stack/sheet/cardboard/fifty=1, + ) + //This needs to be done here and not in Initialize() because the stacks get merged and fall out when their weight updates if this is set after PopulateContents() + atom_storage.allow_big_nesting = TRUE + atom_storage.max_slots = 99 + atom_storage.max_specific_storage = WEIGHT_CLASS_GIGANTIC + atom_storage.max_total_storage = capacity + generate_items_inside(items_inside,src) + +/obj/item/storage/bag/sheetsnatcher/debug/Initialize(mapload) + . = ..() + // Overrides so it can hold all possible sheets + atom_storage.set_holdable( + can_hold_list = list( + /obj/item/stack/sheet, + /obj/item/stack/sheet/mineral/sandstone, + /obj/item/stack/sheet/mineral/wood, + ) + ) + // ----------------------------- // Book bag // ----------------------------- diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index cd5d373396876..dfabb12de1b37 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -264,6 +264,7 @@ /obj/item/tank/internals/emergency_oxygen, /obj/item/wrench/medical, /obj/item/knife/ritual, + /obj/item/flesh_shears, )) /obj/item/storage/belt/medical/paramedic diff --git a/code/game/objects/items/storage/boxes/engineering_boxes.dm b/code/game/objects/items/storage/boxes/engineering_boxes.dm index b30aaed9f6820..70a64f69da5a3 100644 --- a/code/game/objects/items/storage/boxes/engineering_boxes.dm +++ b/code/game/objects/items/storage/boxes/engineering_boxes.dm @@ -18,43 +18,6 @@ for(var/i in 1 to 7) new/obj/item/grenade/chem_grenade/smart_metal_foam(src) -/obj/item/storage/box/material - name = "box of materials" - illustration = "implant" - -/obj/item/storage/box/material/Initialize(mapload) - . = ..() - atom_storage.max_specific_storage = WEIGHT_CLASS_GIGANTIC //This needs to be set here too because the parent type overrides it again - -/obj/item/storage/box/material/PopulateContents() //less uranium because radioactive - var/static/items_inside = list( - /obj/item/stack/sheet/iron/fifty=1, - /obj/item/stack/sheet/glass/fifty=1, - /obj/item/stack/sheet/rglass=50, - /obj/item/stack/sheet/plasmaglass=50, - /obj/item/stack/sheet/titaniumglass=50, - /obj/item/stack/sheet/plastitaniumglass=50, - /obj/item/stack/sheet/plasteel=50, - /obj/item/stack/sheet/mineral/plastitanium=50, - /obj/item/stack/sheet/mineral/titanium=50, - /obj/item/stack/sheet/mineral/gold=50, - /obj/item/stack/sheet/mineral/silver=50, - /obj/item/stack/sheet/mineral/plasma=50, - /obj/item/stack/sheet/mineral/uranium=20, - /obj/item/stack/sheet/mineral/diamond=50, - /obj/item/stack/sheet/bluespace_crystal=50, - /obj/item/stack/sheet/mineral/bananium=50, - /obj/item/stack/sheet/mineral/wood=50, - /obj/item/stack/sheet/plastic/fifty=1, - /obj/item/stack/sheet/runed_metal/fifty=1, - ) - //This needs to be done here and not in Initialize() because the stacks get merged and fall out when their weight updates if this is set after PopulateContents() - atom_storage.allow_big_nesting = TRUE - atom_storage.max_slots = 99 - atom_storage.max_specific_storage = WEIGHT_CLASS_GIGANTIC - atom_storage.max_total_storage = 99 - generate_items_inside(items_inside,src) - /obj/item/storage/box/debugtools name = "box of debug tools" icon_state = "syndiebox" @@ -79,7 +42,7 @@ /obj/item/stack/spacecash/c1000=50, /obj/item/storage/box/beakers/bluespace=1, /obj/item/storage/box/beakers/variety=1, - /obj/item/storage/box/material=1, + /obj/item/storage/bag/sheetsnatcher/debug=1, /obj/item/uplink/debug=1, /obj/item/uplink/nuclear/debug=1, /obj/item/clothing/ears/earmuffs/debug = 1, diff --git a/code/game/objects/items/storage/boxes/job_boxes.dm b/code/game/objects/items/storage/boxes/job_boxes.dm index a8ced4fdad48e..ff878886324c7 100644 --- a/code/game/objects/items/storage/boxes/job_boxes.dm +++ b/code/game/objects/items/storage/boxes/job_boxes.dm @@ -14,6 +14,10 @@ var/medipen_type = /obj/item/reagent_containers/hypospray/medipen /// Are we crafted? var/crafted = FALSE + /// Should we contain an escape hook on maps with z-levels? + var/give_hook = TRUE + /// Do we get to benefit from Nanotrasen's largesse? + var/give_premium_goods = TRUE /obj/item/storage/box/survival/Initialize(mapload) . = ..() @@ -36,14 +40,14 @@ if(!isnull(medipen_type)) new medipen_type(src) - if(HAS_TRAIT(SSstation, STATION_TRAIT_PREMIUM_INTERNALS)) + if(give_premium_goods && HAS_TRAIT(SSstation, STATION_TRAIT_PREMIUM_INTERNALS)) new /obj/item/flashlight/flare(src) new /obj/item/radio/off(src) if(HAS_TRAIT(SSstation, STATION_TRAIT_RADIOACTIVE_NEBULA)) new /obj/item/storage/pill_bottle/potassiodide(src) - if(length(SSmapping.levels_by_trait(ZTRAIT_STATION)) > 1) + if(give_hook && length(SSmapping.levels_by_trait(ZTRAIT_STATION)) > 1) new /obj/item/climbing_hook/emergency(src) /obj/item/storage/box/survival/radio/PopulateContents() @@ -59,6 +63,11 @@ qdel(mask) // Get rid of the items that shouldn't be qdel(internals) +// Prisoners don't get an escape hook +/obj/item/storage/box/survival/prisoner + give_hook = FALSE + give_premium_goods = FALSE + // Mining survival box /obj/item/storage/box/survival/mining mask_type = /obj/item/clothing/mask/gas/explorer/folded diff --git a/code/game/objects/items/storage/medkit.dm b/code/game/objects/items/storage/medkit.dm index c073837c85385..ec1655a6720a5 100644 --- a/code/game/objects/items/storage/medkit.dm +++ b/code/game/objects/items/storage/medkit.dm @@ -446,8 +446,7 @@ /// Gets what skin (icon_state) this medkit uses for a medbot /obj/item/storage/medkit/proc/get_medbot_skin() - // The skin var is nullsafe so returning nothing is A-OK - return + return "generic" /* * Pill Bottles diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index b3fac29554de6..010da30b1240d 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -7,8 +7,8 @@ lefthand_file = 'icons/mob/inhands/equipment/toolbox_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/toolbox_righthand.dmi' obj_flags = CONDUCTS_ELECTRICITY - force = 12 - throwforce = 12 + force = 13 + throwforce = 13 throw_speed = 2 throw_range = 7 demolition_mod = 1.25 @@ -203,8 +203,8 @@ var/power = 0 for (var/obj/item/stack/telecrystal/stored_crystals in get_all_contents()) power += (stored_crystals.amount / 2) - force = 19 + power - throwforce = 22 + power + force = initial(force) + power + throwforce = initial(throwforce) + power /obj/item/storage/toolbox/mechanical/old/clean/attack(mob/target, mob/living/user) calc_damage() @@ -387,20 +387,6 @@ name = "4.6x30mm AP ammo box" ammo_to_spawn = /obj/item/ammo_box/magazine/wt550m9/wtap -/obj/item/storage/toolbox/maint_kit - name = "gun maintenance kit" - desc = "It contains some gun maintenance supplies" - icon_state = "maint_kit" - inhand_icon_state = "ammobox" - has_latches = FALSE - drop_sound = 'sound/items/handling/ammobox_drop.ogg' - pickup_sound = 'sound/items/handling/ammobox_pickup.ogg' - -/obj/item/storage/toolbox/maint_kit/PopulateContents() - new /obj/item/gun_maintenance_supplies(src) - new /obj/item/gun_maintenance_supplies(src) - new /obj/item/gun_maintenance_supplies(src) - //repairbot assembly /obj/item/storage/toolbox/tool_act(mob/living/user, obj/item/tool, list/modifiers) if(!istype(tool, /obj/item/assembly/prox_sensor)) @@ -504,9 +490,15 @@ /obj/item/storage/toolbox/guncase/traitor/click_alt_secondary(mob/user) . = ..() + if(currently_exploding) + user.balloon_alert(user, "already exploding!") + return + var/i_dont_even_think_once_about_blowing_stuff_up = tgui_alert(user, "Would you like to activate the evidence disposal bomb now?", "BYE BYE", list("Yes","No")) - if(i_dont_even_think_once_about_blowing_stuff_up == "No") + + if(i_dont_even_think_once_about_blowing_stuff_up != "Yes" || currently_exploding || QDELETED(user) || QDELETED(src) || user.can_perform_action(src, NEED_DEXTERITY|NEED_HANDS|ALLOW_RESTING)) return + explosion_timer = addtimer(CALLBACK(src, PROC_REF(think_fast_chucklenuts)), 5 SECONDS, (TIMER_UNIQUE|TIMER_OVERRIDE)) to_chat(user, span_warning("You prime [src]'s evidence disposal bomb!")) log_bomber(user, "has activated a", src, "for detonation") diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index fa624b6e50f70..2902bd72572c3 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -1558,18 +1558,18 @@ COOLDOWN_START(src, foamfinger_cooldown, 5 SECONDS) user.manual_emote("waves around the foam finger.") var/direction = prob(50) ? -1 : 1 - if(NSCOMPONENT(user.dir)) //So signs are waved horizontally relative to what way the player waving it is facing. - animate(user, pixel_x = user.pixel_x + (1 * direction), time = 1, easing = SINE_EASING) - animate(pixel_x = user.pixel_x - (2 * direction), time = 1, easing = SINE_EASING) - animate(pixel_x = user.pixel_x + (2 * direction), time = 1, easing = SINE_EASING) - animate(pixel_x = user.pixel_x - (2 * direction), time = 1, easing = SINE_EASING) - animate(pixel_x = user.pixel_x + (1 * direction), time = 1, easing = SINE_EASING) + if(NSCOMPONENT(user.dir)) + animate(user, pixel_w = (1 * direction), time = 0.1 SECONDS, easing = SINE_EASING, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) + animate(pixel_w = (-2 * direction), time = 0.1 SECONDS, easing = SINE_EASING, flags = ANIMATION_RELATIVE) + animate(pixel_w = (2 * direction), time = 0.1 SECONDS, easing = SINE_EASING, flags = ANIMATION_RELATIVE) + animate(pixel_w = (-2 * direction), time = 0.1 SECONDS, easing = SINE_EASING, flags = ANIMATION_RELATIVE) + animate(pixel_w = (1 * direction), time = 0.1 SECONDS, easing = SINE_EASING, flags = ANIMATION_RELATIVE) else - animate(user, pixel_y = user.pixel_y + (1 * direction), time = 1, easing = SINE_EASING) - animate(pixel_y = user.pixel_y - (2 * direction), time = 1, easing = SINE_EASING) - animate(pixel_y = user.pixel_y + (2 * direction), time = 1, easing = SINE_EASING) - animate(pixel_y = user.pixel_y - (2 * direction), time = 1, easing = SINE_EASING) - animate(pixel_y = user.pixel_y + (1 * direction), time = 1, easing = SINE_EASING) + animate(user, pixel_z = (1 * direction), time = 0.1 SECONDS, easing = SINE_EASING, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) + animate(pixel_z = (-2 * direction), time = 0.1 SECONDS, easing = SINE_EASING, flags = ANIMATION_RELATIVE) + animate(pixel_z = (2 * direction), time = 0.1 SECONDS, easing = SINE_EASING, flags = ANIMATION_RELATIVE) + animate(pixel_z = (-2 * direction), time = 0.1 SECONDS, easing = SINE_EASING, flags = ANIMATION_RELATIVE) + animate(pixel_z = (1 * direction), time = 0.1 SECONDS, easing = SINE_EASING, flags = ANIMATION_RELATIVE) user.changeNext_move(CLICK_CD_MELEE) ///All people who have used an Intento this round along with their high scores. diff --git a/code/game/objects/structures/beds_chairs/alien_nest.dm b/code/game/objects/structures/beds_chairs/alien_nest.dm index 3a6d6d3ee4a81..b0de02fef481f 100644 --- a/code/game/objects/structures/beds_chairs/alien_nest.dm +++ b/code/game/objects/structures/beds_chairs/alien_nest.dm @@ -74,8 +74,7 @@ /obj/structure/bed/nest/post_buckle_mob(mob/living/M) ADD_TRAIT(M, TRAIT_HANDS_BLOCKED, type) - M.pixel_y = M.base_pixel_y - M.pixel_x = M.base_pixel_x + 2 + M.add_offsets(type, x_add = 2) M.layer = BELOW_MOB_LAYER add_overlay(nest_overlay) @@ -86,8 +85,7 @@ /obj/structure/bed/nest/post_unbuckle_mob(mob/living/M) REMOVE_TRAIT(M, TRAIT_HANDS_BLOCKED, type) - M.pixel_x = M.base_pixel_x + M.body_position_pixel_x_offset - M.pixel_y = M.base_pixel_y + M.body_position_pixel_y_offset + M.remove_offsets(type) M.layer = initial(M.layer) cut_overlay(nest_overlay) M.remove_status_effect(/datum/status_effect/nest_sustenance) diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 8a601736e7816..882e1b55a6a3a 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -92,7 +92,8 @@ return mutable_appearance(icon, "[icon_state]_armrest") /obj/structure/chair/proc/update_armrest() - armrest = color_atom_overlay(armrest) + if (cached_color_filter) + armrest = filter_appearance_recursive(armrest, cached_color_filter) update_appearance() /obj/structure/chair/update_overlays() @@ -348,8 +349,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0) custom_materials = list(/datum/material/iron =SHEET_MATERIAL_AMOUNT) item_flags = SKIP_FANTASY_ON_SPAWN - // Whether or not the chair causes the target to become shove stun vulnerable if smashed against someone from behind. - var/inflicts_stun_vulnerability = TRUE + // Duration of daze inflicted when the chair is smashed against someone from behind. + var/daze_amount = 3 SECONDS // What structure type does this chair become when placed? var/obj/structure/chair/origin_type = /obj/structure/chair @@ -432,11 +433,9 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0) user.visible_message(span_danger("[user] smashes [src] to pieces against [give_this_fucker_the_chair]")) if(!HAS_TRAIT(give_this_fucker_the_chair, TRAIT_BRAWLING_KNOCKDOWN_BLOCKED)) if(vulnerable_hit || give_this_fucker_the_chair.get_timed_status_effect_duration(/datum/status_effect/staggered)) - give_this_fucker_the_chair.Knockdown(2 SECONDS) + give_this_fucker_the_chair.Knockdown(2 SECONDS, daze_amount = daze_amount) if(give_this_fucker_the_chair.health < give_this_fucker_the_chair.maxHealth*0.5) give_this_fucker_the_chair.adjust_confusion(10 SECONDS) - if(inflicts_stun_vulnerability) - give_this_fucker_the_chair.apply_status_effect(/datum/status_effect/next_shove_stuns) smash(user) @@ -470,7 +469,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0) hitsound = 'sound/items/weapons/genhit1.ogg' origin_type = /obj/structure/chair/stool/bamboo max_integrity = 40 //Submissive and breakable unlike the chad iron stool - inflicts_stun_vulnerability = FALSE //Not hard enough to cause them to become vulnerable to a shove + daze_amount = 0 //Not hard enough to cause them to become dazed /obj/item/chair/stool/narsie_act() return //sturdy enough to ignore a god @@ -484,7 +483,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0) hitsound = 'sound/items/weapons/genhit1.ogg' origin_type = /obj/structure/chair/wood custom_materials = null - inflicts_stun_vulnerability = FALSE + daze_amount = 0 /obj/item/chair/wood/narsie_act() return @@ -558,11 +557,10 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0) return NONE /obj/structure/chair/mime/post_buckle_mob(mob/living/M) - M.pixel_y += 5 + M.add_offsets(type, z_add = 5) /obj/structure/chair/mime/post_unbuckle_mob(mob/living/M) - M.pixel_y -= 5 - + M.remove_offsets(type) /obj/structure/chair/plastic icon_state = "plastic_chair" @@ -577,13 +575,13 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0) fishing_modifier = -10 /obj/structure/chair/plastic/post_buckle_mob(mob/living/Mob) - Mob.pixel_y += 2 - .=..() + Mob.add_offsets(type, z_add = 2) + . = ..() if(iscarbon(Mob)) INVOKE_ASYNC(src, PROC_REF(snap_check), Mob) /obj/structure/chair/plastic/post_unbuckle_mob(mob/living/Mob) - Mob.pixel_y -= 2 + Mob.remove_offsets(type) /obj/structure/chair/plastic/proc/snap_check(mob/living/carbon/Mob) if (Mob.nutrition >= NUTRITION_LEVEL_FAT) @@ -606,7 +604,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0) throw_range = 5 //Lighter Weight --> Flies Farther. custom_materials = list(/datum/material/plastic =SHEET_MATERIAL_AMOUNT) max_integrity = 70 - inflicts_stun_vulnerability = FALSE + daze_amount = 0 origin_type = /obj/structure/chair/plastic /obj/structure/chair/musical diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index a843c3e3e4bff..1d456148e88f5 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -12,8 +12,8 @@ LINEN BINS righthand_file = 'icons/mob/inhands/items/bedsheet_righthand.dmi' icon_state = "sheetwhite" inhand_icon_state = "sheetwhite" - drop_sound = 'sound/items/handling/cloth_drop.ogg' - pickup_sound = 'sound/items/handling/cloth_pickup.ogg' + drop_sound = SFX_CLOTH_DROP + pickup_sound = SFX_CLOTH_PICKUP slot_flags = ITEM_SLOT_NECK layer = BELOW_MOB_LAYER throwforce = 0 diff --git a/code/game/objects/structures/gym/weight_machine.dm b/code/game/objects/structures/gym/weight_machine.dm index a0a1162057b34..438196e9b603d 100644 --- a/code/game/objects/structures/gym/weight_machine.dm +++ b/code/game/objects/structures/gym/weight_machine.dm @@ -14,7 +14,7 @@ blocks_emissive = EMISSIVE_BLOCK_UNIQUE ///How much we shift the user's pixel y when using the weight machine. - var/pixel_shift_y = -3 + var/pixel_shift_z = -3 ///The weight action we give to people that buckle themselves to us. var/datum/action/push_weights/weight_action @@ -157,9 +157,9 @@ flick_overlay_view(workout, 0.8 SECONDS) flick("[base_icon_state]-u", src) var/mob/living/user = buckled_mobs[1] - animate(user, pixel_y = pixel_shift_y, time = WORKOUT_LENGTH * 0.5) + animate(user, pixel_z = pixel_shift_z, time = WORKOUT_LENGTH * 0.5, flags = ANIMATION_PARALLEL|ANIMATION_RELATIVE) + animate(pixel_z = -pixel_shift_z, time = WORKOUT_LENGTH * 0.5, flags = ANIMATION_PARALLEL) playsound(user, 'sound/machines/creak.ogg', 60, TRUE) - animate(pixel_y = user.base_pixel_y, time = WORKOUT_LENGTH * 0.5) if(!iscarbon(user) || isnull(user.mind)) return TRUE @@ -194,7 +194,7 @@ icon_state = "benchpress" base_icon_state = "benchpress" - pixel_shift_y = 5 + pixel_shift_z = 5 drunk_message = "You raise the bar over you trying to balance it with one hand, keyword tried." diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm index 57e30d58ef2bd..de0c84f711f5e 100644 --- a/code/game/objects/structures/kitchen_spike.dm +++ b/code/game/objects/structures/kitchen_spike.dm @@ -124,7 +124,7 @@ var/matrix/m180 = matrix(target.transform) m180.Turn(180) animate(target, transform = m180, time = 3) - target.pixel_y = target.base_pixel_y + PIXEL_Y_OFFSET_LYING + target.add_offsets(type, y_add = -6, animate = FALSE) ADD_TRAIT(target, TRAIT_MOVE_UPSIDE_DOWN, REF(src)) /obj/structure/kitchenspike/user_unbuckle_mob(mob/living/buckled_mob, mob/user) @@ -156,7 +156,7 @@ var/matrix/m180 = matrix(buckled_mob.transform) m180.Turn(180) animate(buckled_mob, transform = m180, time = 3) - buckled_mob.pixel_y = buckled_mob.base_pixel_y + PIXEL_Y_OFFSET_LYING + buckled_mob.remove_offsets(type, animate = FALSE) REMOVE_TRAIT(buckled_mob, TRAIT_MOVE_UPSIDE_DOWN, REF(src)) /obj/structure/kitchenspike/atom_deconstruct(disassembled = TRUE) diff --git a/code/game/objects/structures/syndicate_uplink_beacon.dm b/code/game/objects/structures/syndicate_uplink_beacon.dm deleted file mode 100644 index 33e260e8d209a..0000000000000 --- a/code/game/objects/structures/syndicate_uplink_beacon.dm +++ /dev/null @@ -1,114 +0,0 @@ -/// Device that traitors can craft in order to be sent a new, undisguised uplink -/obj/structure/syndicate_uplink_beacon - name = "suspicious beacon" - icon = 'icons/obj/machines/telecomms.dmi' - icon_state = "relay_traitor" - desc = "This ramshackle device seems capable of receiving and sending signals for some nefarious purpose." - density = TRUE - anchored = TRUE - /// Traitor's code that they speak into the radio - var/uplink_code = "" - /// weakref to person who is going to use the beacon to get a replacement uplink - var/datum/weakref/owner - /// while constructed the teleport beacon is still active - var/obj/item/beacon/teleport_beacon - /// Radio that the device needs to listen to the codeword from the traitor - var/obj/item/radio/listening_radio - /// prevents traitor from activating teleport_beacon proc too much in a small period of time - COOLDOWN_DECLARE(beacon_cooldown) - -/obj/structure/syndicate_uplink_beacon/Initialize(mapload) - . = ..() - register_context() - - var/static/list/tool_behaviors = list( - TOOL_SCREWDRIVER = list( - SCREENTIP_CONTEXT_RMB = "Deconstruct", - ), - ) - AddElement(/datum/element/contextual_screentip_tools, tool_behaviors) - listening_radio = new(src) - listening_radio.canhear_range = 0 - teleport_beacon = new(src) - -/obj/structure/syndicate_uplink_beacon/attack_hand(mob/living/user, list/modifiers) - if(!IS_TRAITOR(user)) - balloon_alert(user, "don't know how to use!") - return - if(IS_WEAKREF_OF(owner, user)) - balloon_alert(user, "already synchronized to you!") - return - if(owner != null) - balloon_alert(user, "already claimed!") - return - var/datum/looping_sound/typing/typing_sounds = new(src, start_immediately = TRUE) - balloon_alert(user, "synchronizing...") - if(!do_after(user = user, delay = 3 SECONDS, target = src, interaction_key = REF(src), hidden = TRUE)) - typing_sounds.stop() - return - typing_sounds.stop() - probe_traitor(user) - -/obj/structure/syndicate_uplink_beacon/screwdriver_act_secondary(mob/living/user, obj/item/tool) - tool.play_tool_sound(src) - balloon_alert(user, "deconstructing...") - if (!do_after(user, 5 SECONDS, target = src, hidden = TRUE)) - return FALSE - var/turf/beacon_tile = get_turf(src) - new /obj/item/stack/sheet/iron/five(beacon_tile) - new /obj/item/stack/cable_coil/five(beacon_tile) - teleport_beacon.forceMove(beacon_tile) - teleport_beacon = null - qdel(src) - return TRUE - -/obj/structure/syndicate_uplink_beacon/Destroy() - QDEL_NULL(listening_radio) - if(teleport_beacon) - QDEL_NULL(teleport_beacon) - return ..() - -/// Proc reads the user, sets radio to the correct frequency and starts to listen for the replacement uplink code -/obj/structure/syndicate_uplink_beacon/proc/probe_traitor(mob/living/user) - owner = WEAKREF(user) - var/datum/antagonist/traitor/traitor_datum = user.mind.has_antag_datum(/datum/antagonist/traitor) - - uplink_code = traitor_datum.replacement_uplink_code - listening_radio.set_frequency(traitor_datum.replacement_uplink_frequency) - become_hearing_sensitive() - -/obj/structure/syndicate_uplink_beacon/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, list/message_mods, message_range) - if(ismob(speaker) || radio_freq != listening_radio.get_frequency()) - return - if(!findtext(message, uplink_code)) - return - teleport_uplink() - -/// Proc uses owners uplink handler to create replacement uplink and then lock or destroy their other uplinks -/obj/structure/syndicate_uplink_beacon/proc/teleport_uplink() - if(!COOLDOWN_FINISHED(src, beacon_cooldown)) - return - COOLDOWN_START(src, beacon_cooldown, 10 MINUTES) - - var/mob/living/resolved_owner = owner.resolve() - if(isnull(resolved_owner)) - return - - var/datum/antagonist/traitor/traitor_datum = resolved_owner.mind.has_antag_datum(/datum/antagonist/traitor) - if(isnull(traitor_datum)) - return - - var/datum/uplink_handler/uplink_handler = traitor_datum.uplink_handler - - SEND_SIGNAL(uplink_handler, COMSIG_UPLINK_HANDLER_REPLACEMENT_ORDERED) - new /obj/item/uplink/replacement(get_turf(src), /*owner = */resolved_owner, /*tc_amount = */0, /*uplink_handler_override = */uplink_handler) - flick("relay_traitor_activate", src) - do_sparks(number = 5, cardinal_only = FALSE, source = src) - log_traitor("[key_name(resolved_owner)] acquired a replacement uplink via the syndicate uplink beacon.") - -// Adds screentips -/obj/structure/syndicate_uplink_beacon/add_context(atom/source, list/context, obj/item/held_item, mob/user) - if(held_item || !IS_TRAITOR(user)) - return NONE - context[SCREENTIP_CONTEXT_LMB] = "Synchronize with beacon" - return CONTEXTUAL_SCREENTIP_SET diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 22517603ef3fc..300d75a77b18a 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -345,8 +345,7 @@ SIGNAL_HANDLER if((shove_flags & SHOVE_KNOCKDOWN_BLOCKED) || !(shove_flags & SHOVE_BLOCKED)) return - target.Knockdown(SHOVE_KNOCKDOWN_TABLE) - target.apply_status_effect(/datum/status_effect/next_shove_stuns) + target.Knockdown(SHOVE_KNOCKDOWN_TABLE, daze_amount = 3 SECONDS) target.visible_message(span_danger("[shover.name] shoves [target.name] onto \the [src]!"), span_userdanger("You're shoved onto \the [src] by [shover.name]!"), span_hear("You hear aggressive shuffling followed by a loud thud!"), COMBAT_MESSAGE_RANGE, shover) to_chat(shover, span_danger("You shove [target.name] onto \the [src]!")) @@ -838,13 +837,11 @@ ///Align the mob with the table when buckled. /obj/structure/table/optable/post_buckle_mob(mob/living/buckled) - . = ..() - buckled.pixel_y += 6 + buckled.add_offsets(type, z_add = 6) ///Disalign the mob with the table when unbuckled. /obj/structure/table/optable/post_unbuckle_mob(mob/living/buckled) - . = ..() - buckled.pixel_y -= 6 + buckled.remove_offsets(type) /// Any mob that enters our tile will be marked as a potential patient. They will be turned into a patient if they lie down. /obj/structure/table/optable/proc/mark_patient(datum/source, mob/living/carbon/potential_patient) diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index 4ff29eb606e8f..9ea599be1313e 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -267,15 +267,12 @@ if(!electronics) to_chat(usr, span_warning("The assembly is missing electronics!")) return - user << browse(null, "window=windoor_access") user.visible_message(span_notice("[user] pries the windoor into the frame."), span_notice("You start prying the windoor into the frame...")) if(W.use_tool(src, user, 40, volume=100) && electronics) set_density(TRUE) //Shouldn't matter but just incase - to_chat(user, span_notice("You finish the windoor.")) - finish_door() else @@ -324,7 +321,7 @@ if(created_name) windoor.name = created_name else if(electronics.passed_name) - windoor.name = electronics.passed_name + windoor.name = sanitize(electronics.passed_name) if(electronics.one_access) windoor.req_one_access = electronics.accesses else diff --git a/code/game/sound.dm b/code/game/sound.dm index 15be685ea48e4..0878b75e7207f 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -206,7 +206,7 @@ set waitfor = FALSE UNTIL(SSticker.login_music) //wait for SSticker init to set the login music - var/volume_modifier = prefs.read_preference(/datum/preference/numeric/sound_lobby_volume) + var/volume_modifier = prefs.read_preference(/datum/preference/numeric/volume/sound_lobby_volume) if((prefs && volume_modifier) && !CONFIG_GET(flag/disallow_title_music)) SEND_SOUND(src, sound(SSticker.login_music, repeat = 0, wait = 0, volume = volume_modifier, channel = CHANNEL_LOBBYMUSIC)) // MAD JAMS @@ -799,4 +799,61 @@ 'sound/items/handling/headset/headset_pickup2.ogg', 'sound/items/handling/headset/headset_pickup3.ogg', ) + if(SFX_BANDAGE_BEGIN) + soundin = pick( + 'sound/items/gauze/bandage_begin1.ogg', + 'sound/items/gauze/bandage_begin2.ogg', + 'sound/items/gauze/bandage_begin3.ogg', + 'sound/items/gauze/bandage_begin4.ogg', + ) + if(SFX_BANDAGE_END) + soundin = pick( + 'sound/items/gauze/bandage_end1.ogg', + 'sound/items/gauze/bandage_end2.ogg', + 'sound/items/gauze/bandage_end3.ogg', + 'sound/items/gauze/bandage_end4.ogg', + ) + // Old cloth sounds are named cloth_...1.ogg, I wanted to keep them so these new ones go further down the line. + if(SFX_CLOTH_DROP) + soundin = pick( + 'sound/items/handling/cloth/cloth_drop2.ogg', + 'sound/items/handling/cloth/cloth_drop3.ogg', + 'sound/items/handling/cloth/cloth_drop4.ogg', + 'sound/items/handling/cloth/cloth_drop5.ogg', + ) + if(SFX_CLOTH_PICKUP) + soundin = pick( + 'sound/items/handling/cloth/cloth_pickup2.ogg', + 'sound/items/handling/cloth/cloth_pickup3.ogg', + 'sound/items/handling/cloth/cloth_pickup4.ogg', + 'sound/items/handling/cloth/cloth_pickup5.ogg', + ) + if(SFX_SUTURE_BEGIN) + soundin = pick( + 'sound/items/suture/suture_begin1.ogg', + ) + if(SFX_SUTURE_CONTINUOUS) + soundin = pick( + 'sound/items/suture/suture_continuous1.ogg', + 'sound/items/suture/suture_continuous2.ogg', + 'sound/items/suture/suture_continuous3.ogg', + ) + if(SFX_SUTURE_END) + soundin = pick( + 'sound/items/suture/suture_end1.ogg', + 'sound/items/suture/suture_end2.ogg', + 'sound/items/suture/suture_end3.ogg', + ) + if(SFX_SUTURE_PICKUP) + soundin = pick( + 'sound/items/handling/suture/needle_pickup1.ogg', + 'sound/items/handling/suture/needle_pickup2.ogg', + ) + if(SFX_SUTURE_DROP) + soundin = pick( + + 'sound/items/handling/suture/needle_drop1.ogg', + 'sound/items/handling/suture/needle_drop2.ogg', + 'sound/items/handling/suture/needle_drop3.ogg', + ) return soundin diff --git a/code/game/turfs/change_turf.dm b/code/game/turfs/change_turf.dm index 810b83cbcbe79..dc2c257ad383b 100644 --- a/code/game/turfs/change_turf.dm +++ b/code/game/turfs/change_turf.dm @@ -25,9 +25,12 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( copy_to_turf.icon_state = icon_state if(copy_to_turf.icon != icon) copy_to_turf.icon = icon - if(color) + if(LAZYLEN(atom_colours)) copy_to_turf.atom_colours = atom_colours.Copy() copy_to_turf.update_atom_colour() + // New atom_colours system overrides color, but in rare cases its still used + else if(color) + copy_to_turf.color = color if(copy_to_turf.dir != dir) copy_to_turf.setDir(dir) return copy_to_turf diff --git a/code/game/turfs/open/_open.dm b/code/game/turfs/open/_open.dm index 4337fc3eb0352..8f99f494eebb0 100644 --- a/code/game/turfs/open/_open.dm +++ b/code/game/turfs/open/_open.dm @@ -340,7 +340,7 @@ wash(CLEAN_WASH, TRUE) return TRUE -/turf/open/handle_slip(mob/living/slipper, knockdown_amount, obj/slippable, lube, paralyze_amount, force_drop) +/turf/open/handle_slip(mob/living/slipper, knockdown_amount, obj/slippable, lube, paralyze_amount, daze_amount, force_drop) if(slipper.movement_type & MOVETYPES_NOT_TOUCHING_GROUND) return FALSE if(!has_gravity(src)) @@ -393,8 +393,8 @@ slipper.adjust_staggered_up_to(STAGGERED_SLOWDOWN_LENGTH, 10 SECONDS) slipper.stop_pulling() else - slipper.Knockdown(knockdown_amount) slipper.Paralyze(paralyze_amount) + slipper.Knockdown(knockdown_amount, daze_amount = daze_amount) if(!isnull(buckled_obj) && !ismob(buckled_obj)) buckled_obj.unbuckle_mob(slipper) diff --git a/code/game/turfs/open/floor/iron_floor.dm b/code/game/turfs/open/floor/iron_floor.dm index c3869ccc962ce..16f74866a1c1d 100644 --- a/code/game/turfs/open/floor/iron_floor.dm +++ b/code/game/turfs/open/floor/iron_floor.dm @@ -434,6 +434,16 @@ name = "cold room floor" initial_gas_mix = KITCHEN_COLDROOM_ATMOS +/turf/open/floor/iron/kitchen_coldroom/dark + icon_state = "darkfull" + base_icon_state = "darkfull" + floor_tile = /obj/item/stack/tile/iron/dark + +/turf/open/floor/iron/kitchen_coldroom/dark/textured + icon_state = "textured_dark" + base_icon_state = "textured_dark" + floor_tile = /obj/item/stack/tile/iron/dark/textured + /turf/open/floor/iron/kitchen_coldroom/freezerfloor icon_state = "freezerfloor" base_icon_state = "freezerfloor" diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index cb0e0b24cca2b..7e839e9d709b3 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -795,7 +795,7 @@ GLOBAL_LIST_EMPTY(station_turfs) * doing hackier code, because we've hundreds of turfs like lava, water etc every round, */ /turf/proc/add_lazy_fishing(fish_source_path) - RegisterSignal(src, COMSIG_PRE_FISHING, PROC_REF(add_fishing_spot_comp)) + RegisterSignal(src, COMSIG_FISHING_ROD_CAST, PROC_REF(add_fishing_spot_comp)) RegisterSignal(src, COMSIG_NPC_FISHING, PROC_REF(on_npc_fishing)) RegisterSignal(src, COMSIG_FISH_RELEASED_INTO, PROC_REF(on_fish_release_into)) RegisterSignal(src, COMSIG_TURF_CHANGE, PROC_REF(remove_lazy_fishing)) @@ -805,7 +805,7 @@ GLOBAL_LIST_EMPTY(station_turfs) /turf/proc/remove_lazy_fishing() SIGNAL_HANDLER UnregisterSignal(src, list( - COMSIG_PRE_FISHING, + COMSIG_FISHING_ROD_CAST, COMSIG_NPC_FISHING, COMSIG_FISH_RELEASED_INTO, COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL), @@ -814,10 +814,11 @@ GLOBAL_LIST_EMPTY(station_turfs) REMOVE_TRAIT(src, TRAIT_FISHING_SPOT, INNATE_TRAIT) fish_source = null -/turf/proc/add_fishing_spot_comp(datum/source) +/turf/proc/add_fishing_spot_comp(datum/source, obj/item/fishing_rod/rod, mob/user) SIGNAL_HANDLER - source.AddComponent(/datum/component/fishing_spot, fish_source) + var/datum/component/fishing_spot/spot = source.AddComponent(/datum/component/fishing_spot, fish_source) remove_lazy_fishing() + return spot.handle_cast(arglist(args)) /turf/proc/on_npc_fishing(datum/source, list/fish_spot_container) SIGNAL_HANDLER diff --git a/code/game/world.dm b/code/game/world.dm index ea6c9cb976ff2..1f705d1328194 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -335,6 +335,9 @@ GLOBAL_PROTECT(tracy_init_reason) return #else if(TgsAvailable()) + if(!fast_track) + TgsTriggerEvent("tg-PreReboot", wait_for_completion = TRUE) + var/do_hard_reboot // check the hard reboot counter var/ruhr = CONFIG_GET(number/rounds_until_hard_restart) @@ -456,8 +459,9 @@ GLOBAL_PROTECT(tracy_init_reason) LISTASSERTLEN(global_area.turfs_by_zlevel, map_load_z_cutoff, list()) for (var/zlevel in 1 to map_load_z_cutoff) var/list/to_add = block( - locate(old_max + 1, 1, zlevel), - locate(maxx, maxy, zlevel)) + old_max + 1, 1, zlevel, + maxx, maxy, zlevel + ) global_area.turfs_by_zlevel[zlevel] += to_add @@ -472,8 +476,9 @@ GLOBAL_PROTECT(tracy_init_reason) LISTASSERTLEN(global_area.turfs_by_zlevel, map_load_z_cutoff, list()) for (var/zlevel in 1 to map_load_z_cutoff) var/list/to_add = block( - locate(1, old_maxy + 1, 1), - locate(maxx, maxy, map_load_z_cutoff)) + 1, old_maxy + 1, 1, + maxx, maxy, map_load_z_cutoff + ) global_area.turfs_by_zlevel[zlevel] += to_add /world/proc/incrementMaxZ() @@ -503,7 +508,9 @@ GLOBAL_PROTECT(tracy_init_reason) /world/proc/on_tickrate_change() SStimer?.reset_buckets() +#ifndef DISABLE_DREAMLUAU DREAMLUAU_SET_EXECUTION_LIMIT_MILLIS(tick_lag * 100) +#endif /world/proc/init_byond_tracy() if(!fexists(TRACY_DLL_PATH)) diff --git a/code/modules/admin/admin_fax_panel.dm b/code/modules/admin/admin_fax_panel.dm index cc88f1949f2e1..3a9744ee3e486 100644 --- a/code/modules/admin/admin_fax_panel.dm +++ b/code/modules/admin/admin_fax_panel.dm @@ -57,7 +57,7 @@ ADMIN_VERB(fax_panel, R_ADMIN, "Fax Panel", "View and respond to faxes sent to C ui.open() /datum/fax_panel_interface/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_ADMIN) /datum/fax_panel_interface/ui_static_data(mob/user) var/list/data = list() diff --git a/code/modules/admin/admin_pda_message.dm b/code/modules/admin/admin_pda_message.dm index c1c4fef0b57c4..bee5a58463423 100644 --- a/code/modules/admin/admin_pda_message.dm +++ b/code/modules/admin/admin_pda_message.dm @@ -24,7 +24,7 @@ ADMIN_VERB(message_pda, R_ADMIN, "PDA Message", "Send a message to a user's PDA. ui.open() /datum/admin_pda_panel/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_ADMIN) /datum/admin_pda_panel/ui_static_data(mob/user) var/list/data = list() diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 891f8a461677f..ec4107e5d64e9 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -664,3 +664,118 @@ ADMIN_VERB(create_mob_worm, R_FUN, "Create Mob Worm", "Attach a linked list of m QDEL_NULL(segment.ai_controller) segment.AddComponent(/datum/component/mob_chain, front = previous) previous = segment + +ADMIN_VERB(give_ai_controller, R_FUN, "Give AI Controller", ADMIN_VERB_NO_DESCRIPTION, ADMIN_CATEGORY_HIDDEN, mob/living/my_guy) + var/static/list/controllers = subtypesof(/datum/admin_ai_template) + var/static/list/controllers_by_name = list() + if (!length(controllers_by_name)) + for (var/datum/admin_ai_template/template as anything in controllers) + controllers_by_name["[initial(template.name)]"] = template + + var/chosen = tgui_input_list(user, "Which template should we apply?", "Select Template", controllers_by_name) + if (isnull(chosen)) + return + + var/chosen_type = controllers_by_name[chosen] + var/datum/admin_ai_template/using_template = new chosen_type + using_template.apply(my_guy, user) + +ADMIN_VERB(give_ai_speech, R_FUN, "Give Random AI Speech", ADMIN_VERB_NO_DESCRIPTION, ADMIN_CATEGORY_HIDDEN, mob/living/my_guy) + if (isnull(my_guy.ai_controller)) + var/create_controller = tgui_alert(user, "Target has no AI controller, add one?", "Give AI?", list("Yes", "No")) == "Yes" + if (!create_controller) + return + var/run_with_mind = tgui_alert(user, "Run AI controller while the target has a client?", "Override Client?", list("Yes", "No")) + if (isnull(run_with_mind)) + return + if (QDELETED(my_guy)) + to_chat(user, span_warning("Target ceased to exist.")) + return + my_guy.ai_controller = new /datum/ai_controller/basic_controller/talk(my_guy) + if (run_with_mind == "Yes") + var/datum/ai_controller/guy_controller = my_guy.ai_controller + guy_controller.continue_processing_when_client = TRUE + guy_controller.reset_ai_status() + + var/speech_chance + var/list/spoken_lines + var/list/audible_emotes + var/list/visible_emotes + var/list/sounds + + speech_chance = tgui_input_number(user, "Enter chance per second to say something", "Speech Chance", default = 2, min_value = 0, max_value = 100, round_value = FALSE) + if (isnull(speech_chance)) + return + + var/add_another + var/next_line + + add_another = tgui_alert(user, "Add [length(spoken_lines) ? "another" : "a"] spoken line?", "Spoken Lines", list("Yes", "No")) + while (add_another == "Yes") + next_line = tgui_input_text(user, "Enter [length(spoken_lines) ? "another" : "a"] thing spoken out loud.", "Spoken Lines") + if (isnull(next_line)) + return + LAZYADD(spoken_lines, next_line) + add_another = tgui_alert(user, "Add [length(spoken_lines) ? "another" : "a"] spoken line?", "Spoken Lines", list("Yes", "No")) + if (isnull(add_another)) + return + + add_another = tgui_alert(user, "Add [length(spoken_lines) ? "another" : "a"] emote which people can hear?", "Audible Emotes", list("Yes", "No")) + while (add_another == "Yes") + next_line = tgui_input_text(user, "Enter [length(spoken_lines) ? "another" : "an"] emote which people can hear.", "Audible Emotes") + if (isnull(next_line)) + return + LAZYADD(audible_emotes, next_line) + add_another = tgui_alert(user, "Add [length(spoken_lines) ? "another" : "a"] emote which people can hear?", "Audible Emotes", list("Yes", "No")) + if (isnull(add_another)) + return + + add_another = tgui_alert(user, "Add [length(spoken_lines) ? "another" : "a"] emote which people can see?", "Visible Emotes", list("Yes", "No")) + while (add_another == "Yes") + next_line = tgui_input_text(user, "Enter [length(spoken_lines) ? "another" : "an"] emote which people can see.", "Visible Emotes") + if (isnull(next_line)) + return + LAZYADD(visible_emotes, next_line) + add_another = tgui_alert(user, "Add [length(spoken_lines) ? "another" : "a"] emote which people can see?", "Visible Emotes", list("Yes", "No")) + if (isnull(add_another)) + return + + if (!length(spoken_lines) && !length(audible_emotes) && !length(visible_emotes)) + return // Well you didn't tell it to say anything... + + if (length(spoken_lines) || length(audible_emotes)) + add_another = tgui_alert(user, "Add [length(spoken_lines) ? "another" : "a"] sound to play when doing something audible?", "Sounds", list("Yes", "No")) + while (add_another == "Yes") + next_line = input("", "Select sound",) as null|sound + if (isnull(next_line)) + return + LAZYADD(sounds, next_line) + add_another = tgui_alert(user, "Add [length(spoken_lines) ? "another" : "a"] sound to play when doing something audible?", "Sounds", list("Yes", "No")) + if (isnull(add_another)) + return + + if (QDELETED(my_guy)) + to_chat(user, span_warning("Target stopped existing.")) + return + + var/datum/ai_controller/our_controller = my_guy.ai_controller + if (length(spoken_lines)) + spoken_lines = string_list(spoken_lines) + if (length(audible_emotes)) + audible_emotes = string_list(audible_emotes) + if (length(visible_emotes)) + visible_emotes = string_list(visible_emotes) + + var/list/emotes = list( + BB_EMOTE_SAY = spoken_lines, + BB_EMOTE_HEAR = audible_emotes, + BB_EMOTE_SEE = visible_emotes, + BB_EMOTE_SOUND = sounds, + BB_SPEAK_CHANCE = speech_chance, + ) + our_controller.set_blackboard_key(BB_BASIC_MOB_SPEAK_LINES, emotes) + + var/behaviour_exists = !!(locate(/datum/ai_planning_subtree/random_speech/blackboard) in our_controller.planning_subtrees) + if (behaviour_exists) + return + our_controller.planning_subtrees = list(GLOB.ai_subtrees[/datum/ai_planning_subtree/random_speech/blackboard]) + our_controller.planning_subtrees diff --git a/code/modules/admin/antag_panel.dm b/code/modules/admin/antag_panel.dm index 33d12f9be22bc..8f82a13039a5e 100644 --- a/code/modules/admin/antag_panel.dm +++ b/code/modules/admin/antag_panel.dm @@ -195,14 +195,10 @@ GLOBAL_VAR(antag_prototypes) var/uplink_info = "Uplink:" var/datum/component/uplink/U = find_syndicate_uplink() if(U) - if(!U.uplink_handler.has_objectives) - uplink_info += "take" if (check_rights(R_FUN, 0)) uplink_info += ", [U.uplink_handler.telecrystals] TC" if(U.uplink_handler.has_progression) uplink_info += ", [U.uplink_handler.progression_points] PR" - if(U.uplink_handler.has_objectives) - uplink_info += ", Force Give Objective" else uplink_info += ", [U.uplink_handler.telecrystals] TC" if(U.uplink_handler.has_progression) diff --git a/code/modules/admin/chat_commands.dm b/code/modules/admin/chat_commands.dm index db72b7a4864f8..3397f7570c128 100644 --- a/code/modules/admin/chat_commands.dm +++ b/code/modules/admin/chat_commands.dm @@ -120,5 +120,5 @@ var/list/adm = get_admin_counts() var/list/allmins = adm["total"] var/status = "Admins: [allmins.len] (Active: [english_list(adm["present"])] AFK: [english_list(adm["afk"])] Stealth: [english_list(adm["stealth"])] Skipped: [english_list(adm["noflags"])]). " - status += "Players: [GLOB.clients.len] (Active: [get_active_player_count(0,1,0)]). Round has [SSticker.HasRoundStarted() ? "" : "not "]started." + status += "Players: [GLOB.clients.len] (Active: [get_active_player_count(FALSE, TRUE, FALSE)]). Round has [SSticker.HasRoundStarted() ? "" : "not "]started." return new /datum/tgs_message_content(status) diff --git a/code/modules/admin/check_antagonists.dm b/code/modules/admin/check_antagonists.dm index 30071504c9199..1a1dd925208e2 100644 --- a/code/modules/admin/check_antagonists.dm +++ b/code/modules/admin/check_antagonists.dm @@ -181,4 +181,6 @@ dat += build_antag_listing() dat += "" - usr << browse(dat.Join(), "window=roundstatus;size=500x500") + var/datum/browser/browser = new(usr, "roundstatus", "Round Status", 500, 500) + browser.set_content(dat.Join()) + browser.open() diff --git a/code/modules/admin/force_event.dm b/code/modules/admin/force_event.dm index 519adbd8a9e5c..d3730437b5698 100644 --- a/code/modules/admin/force_event.dm +++ b/code/modules/admin/force_event.dm @@ -20,7 +20,7 @@ ADMIN_VERB(force_event, R_FUN, "Trigger Event", "Forces an event to occur.", ADM ui.open() /datum/force_event/ui_state(mob/user) - return GLOB.fun_state + return ADMIN_STATE(R_FUN) /datum/force_event/ui_static_data(mob/user) var/static/list/category_to_icons diff --git a/code/modules/admin/fun_balloon.dm b/code/modules/admin/fun_balloon.dm index f619bd8aaba87..efda097db6cc2 100644 --- a/code/modules/admin/fun_balloon.dm +++ b/code/modules/admin/fun_balloon.dm @@ -55,7 +55,7 @@ return data /obj/effect/fun_balloon/sentience/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_ADMIN) /obj/effect/fun_balloon/sentience/ui_status(mob/user, datum/ui_state/state) if(popped) diff --git a/code/modules/admin/outfit_editor.dm b/code/modules/admin/outfit_editor.dm index a3bd433f52e40..765fbb9999d4c 100644 --- a/code/modules/admin/outfit_editor.dm +++ b/code/modules/admin/outfit_editor.dm @@ -24,7 +24,7 @@ drip.name = "New Outfit" /datum/outfit_editor/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_NONE) /datum/outfit_editor/ui_status(mob/user, datum/ui_state/state) if(QDELETED(drip)) diff --git a/code/modules/admin/outfit_manager.dm b/code/modules/admin/outfit_manager.dm index c5f14db8ae3e8..6fc7bc640c23b 100644 --- a/code/modules/admin/outfit_manager.dm +++ b/code/modules/admin/outfit_manager.dm @@ -5,7 +5,7 @@ ADMIN_VERB(outfit_manager, R_DEBUG|R_ADMIN, "Outfit Manager", "View and edit out /datum/outfit_manager /datum/outfit_manager/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_DEBUG | R_ADMIN) /datum/outfit_manager/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) diff --git a/code/modules/admin/painting_manager.dm b/code/modules/admin/painting_manager.dm index 5ebcdef005904..fadd354380cf3 100644 --- a/code/modules/admin/painting_manager.dm +++ b/code/modules/admin/painting_manager.dm @@ -6,7 +6,7 @@ ADMIN_VERB(painting_manager, R_ADMIN, "Paintings Manager", "View and redact pain /datum/paintings_manager /datum/paintings_manager/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_ADMIN) /datum/paintings_manager/ui_close(mob/user) qdel(src) diff --git a/code/modules/admin/skill_panel.dm b/code/modules/admin/skill_panel.dm index b1ba4d10910a0..26b00ae41c3c7 100644 --- a/code/modules/admin/skill_panel.dm +++ b/code/modules/admin/skill_panel.dm @@ -12,7 +12,7 @@ holder = userMob.client //if its a mob, assign the mob's client to holder /datum/skill_panel/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_ADMIN) /datum/skill_panel/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) diff --git a/code/modules/admin/sound_emitter.dm b/code/modules/admin/sound_emitter.dm index 165b882ab46e7..6a71db4f0464d 100644 --- a/code/modules/admin/sound_emitter.dm +++ b/code/modules/admin/sound_emitter.dm @@ -141,8 +141,9 @@ if(SOUND_EMITTER_GLOBAL) hearing_mobs = GLOB.player_list.Copy() for(var/mob/M in hearing_mobs) - if(M.client.prefs.read_preference(/datum/preference/toggle/sound_midi)) - M.playsound_local(M, sound_file, sound_volume, FALSE, channel = CHANNEL_ADMIN, pressure_affected = FALSE) + var/pref_volume = M.client.prefs.read_preference(/datum/preference/numeric/volume/sound_midi) + if(pref_volume > 0) + M.playsound_local(M, sound_file, (sound_volume * (pref_volume/100)), FALSE, channel = CHANNEL_ADMIN, pressure_affected = FALSE) if(user) log_admin("[ADMIN_LOOKUPFLW(user)] activated a sound emitter with file \"[sound_file]\" at [AREACOORD(src)]") flick("shield1", src) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 71374bf2464ff..9dbac57315d23 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1699,6 +1699,7 @@ return return usr.client?.mark_datum(datum_to_mark) +#ifndef DISABLE_DREAMLUAU else if(href_list["lua_state"]) if(!check_rights(R_DEBUG)) return @@ -1715,6 +1716,7 @@ editor.force_view_chunk = log_entry["chunk"] editor.force_modal = "viewChunk" editor.ui_interact(usr) +#endif else if(href_list["show_paper"]) if(!check_rights(R_ADMIN)) diff --git a/code/modules/admin/trophy_manager.dm b/code/modules/admin/trophy_manager.dm index 5ad703b099427..95afad83a2a4e 100644 --- a/code/modules/admin/trophy_manager.dm +++ b/code/modules/admin/trophy_manager.dm @@ -6,7 +6,7 @@ ADMIN_VERB(trophy_manager, R_ADMIN, "Trophy Manager", "View all trophies.", ADMI /datum/trophy_manager /datum/trophy_manager/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_ADMIN) /datum/trophy_manager/ui_close(mob/user) qdel(src) diff --git a/code/modules/admin/verbs/admin_newscaster.dm b/code/modules/admin/verbs/admin_newscaster.dm index 7cac42e0b998e..d199d31e9b9af 100644 --- a/code/modules/admin/verbs/admin_newscaster.dm +++ b/code/modules/admin/verbs/admin_newscaster.dm @@ -29,7 +29,7 @@ ADMIN_VERB(access_news_network, R_ADMIN, "Access Newscaster Network", "Allows yo var/comment_text /datum/newspanel/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_ADMIN) /datum/newspanel/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) diff --git a/code/modules/admin/verbs/borgpanel.dm b/code/modules/admin/verbs/borgpanel.dm index 97f690f2a5aad..57ad91d691aa0 100644 --- a/code/modules/admin/verbs/borgpanel.dm +++ b/code/modules/admin/verbs/borgpanel.dm @@ -16,7 +16,7 @@ ADMIN_VERB(borg_panel, R_ADMIN, "Show Borg Panel", ADMIN_VERB_NO_DESCRIPTION, AD borg = to_borg /datum/borgpanel/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_ADMIN) /datum/borgpanel/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) diff --git a/code/modules/admin/verbs/color_blind_test.dm b/code/modules/admin/verbs/color_blind_test.dm index 45adb5e8ce9f3..b60a35fd5a7ab 100644 --- a/code/modules/admin/verbs/color_blind_test.dm +++ b/code/modules/admin/verbs/color_blind_test.dm @@ -23,7 +23,7 @@ var/selected_type = "" /datum/colorblind_tester/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_DEBUG) /datum/colorblind_tester/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) diff --git a/code/modules/admin/verbs/commandreport.dm b/code/modules/admin/verbs/commandreport.dm index 84b95c6f478a3..6288ce76a4b40 100644 --- a/code/modules/admin/verbs/commandreport.dm +++ b/code/modules/admin/verbs/commandreport.dm @@ -51,7 +51,7 @@ ADMIN_VERB(create_command_report, R_ADMIN, "Create Command Report", "Create a co preset_names.Insert(1, command_name()) /datum/command_report_menu/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_ADMIN) /datum/command_report_menu/ui_close() qdel(src) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index fc054e9a9cb0b..d71522cc72293 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -537,7 +537,9 @@ ADMIN_VERB(del_log, R_DEBUG, "Display del() Log", "Display del's log of everythi dellog += "" - user << browse(dellog.Join(), "window=dellog") + var/datum/browser/browser = new(usr, "dellog", "Del Log", 00, 400) + browser.set_content(dellog.Join()) + browser.open() ADMIN_VERB(display_overlay_log, R_DEBUG, "Display Overlay Log", "Display SSoverlays log of everything that's passed through it.", ADMIN_CATEGORY_DEBUG) render_stats(SSoverlays.stats, user) @@ -708,10 +710,10 @@ ADMIN_VERB(stop_line_profiling, R_DEBUG, "Stop Line Profiling", "Stops tracking ADMIN_VERB_VISIBILITY(show_line_profiling, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG) ADMIN_VERB(show_line_profiling, R_DEBUG, "Show Line Profiling", "Shows tracked profiling info from code lines that support it.", ADMIN_CATEGORY_PROFILE) - var/sortlist = list( + var/list/sortlist = list( "Avg time" = GLOBAL_PROC_REF(cmp_profile_avg_time_dsc), "Total Time" = GLOBAL_PROC_REF(cmp_profile_time_dsc), - "Call Count" = GLOBAL_PROC_REF(cmp_profile_count_dsc) + "Call Count" = GLOBAL_PROC_REF(cmp_profile_count_dsc), ) var/sort = input(user, "Sort type?", "Sort Type", "Avg time") as null|anything in sortlist if (!sort) @@ -720,7 +722,7 @@ ADMIN_VERB(show_line_profiling, R_DEBUG, "Show Line Profiling", "Shows tracked p profile_show(user, sort) ADMIN_VERB(reload_configuration, R_DEBUG, "Reload Configuration", "Reloads the configuration from the default path on the disk, wiping any in-round modifications.", ADMIN_CATEGORY_DEBUG) - if(!tgui_alert(user, "Are you absolutely sure you want to reload the configuration from the default path on the disk, wiping any in-round modifications?", "Really reset?", list("No", "Yes")) == "Yes") + if(tgui_alert(user, "Are you absolutely sure you want to reload the configuration from the default path on the disk, wiping any in-round modifications?", "Really reset?", list("No", "Yes")) != "Yes") return config.admin_reload() @@ -814,57 +816,57 @@ ADMIN_VERB(check_missing_sprites, R_DEBUG, "Debug Worn Item Sprites", "We're can continue //Is there an explicit worn_icon to pick against the worn_icon_state? Easy street expected behavior. if(sprite.worn_icon) - if(!(sprite.icon_state in icon_states(sprite.worn_icon))) + if(!icon_exists(sprite.worn_icon, sprite.icon_state)) to_chat(user, span_warning("ERROR sprites for [sprite.type]. Slot Flags are [sprite.slot_flags]."), confidential = TRUE) else if(sprite.worn_icon_state) if(sprite.slot_flags & ITEM_SLOT_MASK) actual_file_name = 'icons/mob/clothing/mask.dmi' - if(!(sprite.worn_icon_state in icon_states(actual_file_name))) + if(!icon_exists(actual_file_name, sprite.worn_icon_state)) to_chat(user, span_warning("ERROR sprites for [sprite.type]. Mask slot."), confidential = TRUE) if(sprite.slot_flags & ITEM_SLOT_NECK) actual_file_name = 'icons/mob/clothing/neck.dmi' - if(!(sprite.worn_icon_state in icon_states(actual_file_name))) + if(!icon_exists(actual_file_name, sprite.worn_icon_state)) to_chat(user, span_warning("ERROR sprites for [sprite.type]. Neck slot."), confidential = TRUE) if(sprite.slot_flags & ITEM_SLOT_BACK) actual_file_name = 'icons/mob/clothing/back.dmi' - if(!(sprite.worn_icon_state in icon_states(actual_file_name))) + if(!icon_exists(actual_file_name, sprite.worn_icon_state)) to_chat(user, span_warning("ERROR sprites for [sprite.type]. Back slot."), confidential = TRUE) if(sprite.slot_flags & ITEM_SLOT_HEAD) actual_file_name = 'icons/mob/clothing/head/default.dmi' - if(!(sprite.worn_icon_state in icon_states(actual_file_name))) + if(!icon_exists(actual_file_name, sprite.worn_icon_state)) to_chat(user, span_warning("ERROR sprites for [sprite.type]. Head slot."), confidential = TRUE) if(sprite.slot_flags & ITEM_SLOT_BELT) actual_file_name = 'icons/mob/clothing/belt.dmi' - if(!(sprite.worn_icon_state in icon_states(actual_file_name))) + if(!icon_exists(actual_file_name, sprite.worn_icon_state)) to_chat(user, span_warning("ERROR sprites for [sprite.type]. Belt slot."), confidential = TRUE) if(sprite.slot_flags & ITEM_SLOT_SUITSTORE) actual_file_name = 'icons/mob/clothing/belt_mirror.dmi' - if(!(sprite.worn_icon_state in icon_states(actual_file_name))) + if(!icon_exists(actual_file_name, sprite.worn_icon_state)) to_chat(user, span_warning("ERROR sprites for [sprite.type]. Suit Storage slot."), confidential = TRUE) else if(sprite.icon_state) if(sprite.slot_flags & ITEM_SLOT_MASK) actual_file_name = 'icons/mob/clothing/mask.dmi' - if(!(sprite.icon_state in icon_states(actual_file_name))) + if(!icon_exists(actual_file_name, sprite.icon_state)) to_chat(user, span_warning("ERROR sprites for [sprite.type]. Mask slot."), confidential = TRUE) if(sprite.slot_flags & ITEM_SLOT_NECK) actual_file_name = 'icons/mob/clothing/neck.dmi' - if(!(sprite.icon_state in icon_states(actual_file_name))) + if(!icon_exists(actual_file_name, sprite.icon_state)) to_chat(user, span_warning("ERROR sprites for [sprite.type]. Neck slot."), confidential = TRUE) if(sprite.slot_flags & ITEM_SLOT_BACK) actual_file_name = 'icons/mob/clothing/back.dmi' - if(!(sprite.icon_state in icon_states(actual_file_name))) + if(!icon_exists(actual_file_name, sprite.icon_state)) to_chat(user, span_warning("ERROR sprites for [sprite.type]. Back slot."), confidential = TRUE) if(sprite.slot_flags & ITEM_SLOT_HEAD) actual_file_name = 'icons/mob/clothing/head/default.dmi' - if(!(sprite.icon_state in icon_states(actual_file_name))) + if(!icon_exists(actual_file_name, sprite.icon_state)) to_chat(user, span_warning("ERROR sprites for [sprite.type]. Head slot."), confidential = TRUE) if(sprite.slot_flags & ITEM_SLOT_BELT) actual_file_name = 'icons/mob/clothing/belt.dmi' - if(!(sprite.icon_state in icon_states(actual_file_name))) + if(!icon_exists(actual_file_name, sprite.icon_state)) to_chat(user, span_warning("ERROR sprites for [sprite.type]. Belt slot."), confidential = TRUE) if(sprite.slot_flags & ITEM_SLOT_SUITSTORE) actual_file_name = 'icons/mob/clothing/belt_mirror.dmi' - if(!(sprite.icon_state in icon_states(actual_file_name))) + if(!icon_exists(actual_file_name, sprite.icon_state)) to_chat(user, span_warning("ERROR sprites for [sprite.type]. Suit Storage slot."), confidential = TRUE) #ifndef OPENDREAM diff --git a/code/modules/admin/verbs/diagnostics.dm b/code/modules/admin/verbs/diagnostics.dm index 4575614bb948f..c8797a23a829b 100644 --- a/code/modules/admin/verbs/diagnostics.dm +++ b/code/modules/admin/verbs/diagnostics.dm @@ -56,7 +56,9 @@ ADMIN_VERB(radio_report, R_DEBUG, "Radio Report", "Shows a report of all radio d else output += "    [device]
" - user << browse(output,"window=radioreport") + var/datum/browser/browser = new(user, "radioreport", "Radio Logs", 400, 440) + browser.set_content(output) + browser.open() BLACKBOX_LOG_ADMIN_VERB("Show Radio Report") ADMIN_VERB(reload_admins, R_NONE, "Reload Admins", "Reloads all admins from the database.", ADMIN_CATEGORY_MAIN) diff --git a/code/modules/admin/verbs/ghost_pool_protection.dm b/code/modules/admin/verbs/ghost_pool_protection.dm index ed31d124a7de0..37ed7dc6852e1 100644 --- a/code/modules/admin/verbs/ghost_pool_protection.dm +++ b/code/modules/admin/verbs/ghost_pool_protection.dm @@ -30,7 +30,7 @@ ADMIN_VERB(ghost_pool_protection, R_ADMIN, "Ghost Pool Protection", "Choose whic new_role_flags = GLOB.ghost_role_flags /datum/ghost_pool_menu/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_ADMIN) /datum/ghost_pool_menu/ui_close() qdel(src) diff --git a/code/modules/admin/verbs/lawpanel.dm b/code/modules/admin/verbs/lawpanel.dm index 32815b73cbd8f..68a691111be57 100644 --- a/code/modules/admin/verbs/lawpanel.dm +++ b/code/modules/admin/verbs/lawpanel.dm @@ -14,7 +14,7 @@ ADMIN_VERB(law_panel, R_ADMIN, "Law Panel", "View the AI laws.", ADMIN_CATEGORY_ ui.open() /datum/law_panel/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_ADMIN) /datum/law_panel/ui_close(mob/user) qdel(src) diff --git a/code/modules/admin/verbs/light_debug.dm b/code/modules/admin/verbs/light_debug.dm index 5738e06eeeab5..0611575e20945 100644 --- a/code/modules/admin/verbs/light_debug.dm +++ b/code/modules/admin/verbs/light_debug.dm @@ -186,7 +186,7 @@ GLOBAL_LIST_EMPTY(light_debugged_atoms) ui_interact(usr) /atom/movable/screen/light_button/edit/ui_state(mob/user) - return GLOB.debug_state + return ADMIN_STATE(R_DEBUG) /atom/movable/screen/light_button/edit/can_interact() return TRUE @@ -362,7 +362,7 @@ GLOBAL_LIST_EMPTY(light_debugged_atoms) ui_interact(usr) /datum/action/spawn_light/ui_state(mob/user) - return GLOB.debug_state + return ADMIN_STATE(R_DEBUG) /datum/action/spawn_light/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) diff --git a/code/modules/admin/verbs/list_exposer.dm b/code/modules/admin/verbs/list_exposer.dm index 5ea2e2277501a..3c0b6caa256f8 100644 --- a/code/modules/admin/verbs/list_exposer.dm +++ b/code/modules/admin/verbs/list_exposer.dm @@ -25,7 +25,10 @@ var/data = "Showing last [length(GLOB.lawchanges)] law changes.
" for(var/entry in GLOB.lawchanges) data += "[entry]
" - usr << browse(data, "window=lawchanges;size=800x500") + + var/datum/browser/browser = new(usr, "lawchanges", "Law Changes", 800, 500) + browser.set_content(data) + browser.open() /datum/admins/proc/list_dna() var/data = "Showing DNA from blood.
" @@ -35,7 +38,10 @@ if(subject.ckey) data += "[subject][subject.dna.unique_enzymes][subject.dna.blood_type]" data += "" - usr << browse(data, "window=DNA;size=440x410") + + var/datum/browser/browser = new(usr, "DNA", "DNA Log", 440, 410) + browser.set_content(data) + browser.open() /datum/admins/proc/list_fingerprints() //kid named fingerprints var/data = "Showing Fingerprints.
" @@ -45,7 +51,10 @@ if(subject.ckey) data += "[subject][md5(subject.dna.unique_identity)]" data += "" - usr << browse(data, "window=fingerprints;size=440x410") + + var/datum/browser/browser = new(usr, "fingerprints", "Fingerprint Log", 440, 410) + browser.set_content(data) + browser.open() /datum/admins/proc/show_manifest() if(!SSticker.HasRoundStarted()) diff --git a/code/modules/admin/verbs/lua/_wrappers.dm b/code/modules/admin/verbs/lua/_wrappers.dm index d516f064f847f..5fd78244b5603 100644 --- a/code/modules/admin/verbs/lua/_wrappers.dm +++ b/code/modules/admin/verbs/lua/_wrappers.dm @@ -1,3 +1,4 @@ +#ifndef DISABLE_DREAMLUAU /proc/wrap_lua_get_var(datum/thing, var_name) SHOULD_NOT_SLEEP(TRUE) if(thing == world) @@ -46,3 +47,4 @@ var/result = list("status" = "print", "message" = print_message) INVOKE_ASYNC(target_state, TYPE_PROC_REF(/datum/lua_state, log_result), result, TRUE) log_lua("[target_state]: [print_message]") +#endif diff --git a/code/modules/admin/verbs/lua/helpers.dm b/code/modules/admin/verbs/lua/helpers.dm index c3072f15e74cd..fe844c5c55fa2 100644 --- a/code/modules/admin/verbs/lua/helpers.dm +++ b/code/modules/admin/verbs/lua/helpers.dm @@ -1,3 +1,4 @@ +#ifndef DISABLE_DREAMLUAU #define PROMISE_PENDING 0 #define PROMISE_RESOLVED 1 #define PROMISE_REJECTED 2 @@ -34,3 +35,4 @@ #undef PROMISE_PENDING #undef PROMISE_RESOLVED #undef PROMISE_REJECTED +#endif diff --git a/code/modules/admin/verbs/lua/lua_editor.dm b/code/modules/admin/verbs/lua/lua_editor.dm index 93e8e50c1a6a4..15ead2a675f33 100644 --- a/code/modules/admin/verbs/lua/lua_editor.dm +++ b/code/modules/admin/verbs/lua/lua_editor.dm @@ -1,3 +1,4 @@ +#ifndef DISABLE_DREAMLUAU /datum/lua_editor var/datum/lua_state/current_state @@ -41,7 +42,7 @@ LAZYREMOVEASSOC(SSlua.editors, text_ref(current_state), src) /datum/lua_editor/ui_state(mob/user) - return GLOB.debug_state + return ADMIN_STATE(R_DEBUG) /datum/lua_editor/ui_data(mob/user) var/list/data = list() @@ -279,7 +280,12 @@ /datum/lua_editor/ui_close(mob/user) . = ..() qdel(src) +#endif ADMIN_VERB(lua_editor, R_DEBUG, "Open Lua Editor", "Its codin' time.", ADMIN_CATEGORY_DEBUG) +#ifndef DISABLE_DREAMLUAU var/datum/lua_editor/editor = new editor.ui_interact(user.mob) +#else + to_chat(user, span_warning("Lua support has been disabled at compile-time."), type = MESSAGE_TYPE_ADMINLOG, confidential = TRUE) // doing this instead of just disabling the verb entirely so it's clear WHY it doesn't work. +#endif diff --git a/code/modules/admin/verbs/lua/lua_state.dm b/code/modules/admin/verbs/lua/lua_state.dm index 30bc21c83b2be..53b869e23a1df 100644 --- a/code/modules/admin/verbs/lua/lua_state.dm +++ b/code/modules/admin/verbs/lua/lua_state.dm @@ -1,3 +1,4 @@ +#ifndef DISABLE_DREAMLUAU #define MAX_LOG_REPEAT_LOOKBACK 5 GLOBAL_DATUM(lua_usr, /mob) @@ -232,3 +233,4 @@ GLOBAL_PROTECT(lua_state_stack) SStgui.update_uis(editor) #undef MAX_LOG_REPEAT_LOOKBACK +#endif diff --git a/code/modules/admin/verbs/maprotation.dm b/code/modules/admin/verbs/maprotation.dm index 1749e5a5b6ad1..ee9fcf3630128 100644 --- a/code/modules/admin/verbs/maprotation.dm +++ b/code/modules/admin/verbs/maprotation.dm @@ -114,3 +114,6 @@ ADMIN_VERB(admin_change_map, R_SERVER, "Change Map", "Set the next map.", ADMIN_ if (SSmap_vote.set_next_map(virtual_map)) message_admins("[key_name_admin(user)] has changed the map to [virtual_map.map_name]") SSmap_vote.admin_override = TRUE + +ADMIN_VERB(admin_revert_map, R_SERVER, "Revert Map Vote", "Revert the map vote, allowing a new vote.", ADMIN_CATEGORY_SERVER) + SSmap_vote.revert_next_map(user) diff --git a/code/modules/admin/verbs/plane_debugger.dm b/code/modules/admin/verbs/plane_debugger.dm index 083703ae78be5..90a40a6ce08a4 100644 --- a/code/modules/admin/verbs/plane_debugger.dm +++ b/code/modules/admin/verbs/plane_debugger.dm @@ -77,7 +77,7 @@ set_target(get_target()) /datum/plane_master_debug/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_DEBUG) /datum/plane_master_debug/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) diff --git a/code/modules/admin/verbs/player_ticket_history.dm b/code/modules/admin/verbs/player_ticket_history.dm index 829d4dfc2b57e..631cea977cf17 100644 --- a/code/modules/admin/verbs/player_ticket_history.dm +++ b/code/modules/admin/verbs/player_ticket_history.dm @@ -115,7 +115,7 @@ ADMIN_VERB(player_ticket_history, R_ADMIN, "Player Ticket History", "Allows you to_chat(usr, span_adminnotice("Finished caching ticket history for [ckey]!")) /datum/ticket_history_holder/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_ADMIN) /datum/ticket_history_holder/ui_static_data(mob/user) if(!check_rights_for(CLIENT_FROM_VAR(user), R_ADMIN)) diff --git a/code/modules/admin/verbs/playsound.dm b/code/modules/admin/verbs/playsound.dm index 5e68dcedbfaea..50b74d703c8d3 100644 --- a/code/modules/admin/verbs/playsound.dm +++ b/code/modules/admin/verbs/playsound.dm @@ -31,8 +31,9 @@ ADMIN_VERB(play_sound, R_SOUND, "Play Global Sound", "Play a sound to all connec message_admins("[key_name_admin(user)] played sound [sound]") for(var/mob/M in GLOB.player_list) - if(M.client.prefs.read_preference(/datum/preference/toggle/sound_midi)) - admin_sound.volume = vol * M.client.admin_music_volume + var/volume_modifier = M.client.prefs.read_preference(/datum/preference/numeric/volume/sound_midi) + if(volume_modifier > 0) + admin_sound.volume = vol * M.client.admin_music_volume * (volume_modifier/100) SEND_SOUND(M, admin_sound) admin_sound.volume = vol @@ -148,7 +149,7 @@ ADMIN_VERB(play_direct_mob_sound, R_SOUND, "Play Direct Mob Sound", "Play a soun for(var/m in GLOB.player_list) var/mob/M = m var/client/C = M.client - if(C.prefs.read_preference(/datum/preference/toggle/sound_midi)) + if(C.prefs.read_preference(/datum/preference/numeric/volume/sound_midi)) if(!stop_web_sounds) C.tgui_panel?.play_music(web_sound_url, music_extra_data) else diff --git a/code/modules/admin/verbs/secrets.dm b/code/modules/admin/verbs/secrets.dm index 8deec6bd6b496..4d7fbe16be869 100644 --- a/code/modules/admin/verbs/secrets.dm +++ b/code/modules/admin/verbs/secrets.dm @@ -22,7 +22,7 @@ ADMIN_VERB(secrets, R_NONE, "Secrets", "Abuse harder than you ever have before w is_funmin = check_rights(R_FUN) /datum/secrets_menu/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_NONE) /datum/secrets_menu/ui_close() qdel(src) @@ -481,6 +481,26 @@ ADMIN_VERB(secrets, R_NONE, "Secrets", "Abuse harder than you ever have before w message_admins(span_boldannounce("[key_name_admin(holder)] changed the bomb cap to [GLOB.MAX_EX_DEVESTATION_RANGE], [GLOB.MAX_EX_HEAVY_RANGE], [GLOB.MAX_EX_LIGHT_RANGE]")) log_admin("[key_name(holder)] changed the bomb cap to [GLOB.MAX_EX_DEVESTATION_RANGE], [GLOB.MAX_EX_HEAVY_RANGE], [GLOB.MAX_EX_LIGHT_RANGE]") + if("department_cooldown_override") //Happens when the button is clicked, creates a value for GLOB.department_cd_override in dept_order.dm + if(!is_debugger) + return + if(isnull(GLOB.department_cd_override)) + var/set_override = tgui_input_number(usr, "How long would you like the console order cooldown to be?","Cooldown Override", 5) + if(isnull(set_override)) + return //user clicked cancel + GLOB.department_cd_override = set_override + else + var/choice = tgui_alert(usr, "Override is active. You can change the cooldown or end the override.", "You were trying to override...", list("Override", "End Override", "Cancel")) + if(choice == "Override") + var/set_override = tgui_input_number(usr, "How long would you like the console order cooldown to be?", "Title", 5) + GLOB.department_cd_override = set_override + return + if(choice == "End Override") + var/set_override = null + GLOB.department_cd_override = set_override + return + if(!choice || choice == "Cancel") + return //buttons that are fun for exactly you and nobody else. if("monkey") if(!is_funmin) @@ -765,7 +785,6 @@ ADMIN_VERB(secrets, R_NONE, "Secrets", "Abuse harder than you ever have before w assign_admin_objective_and_antag(player, antag_datum) var/datum/uplink_handler/uplink = antag_datum.uplink_handler uplink.has_progression = FALSE - uplink.has_objectives = FALSE if(ROLE_CHANGELING) var/datum/antagonist/changeling/antag_datum = new antag_datum.give_objectives = keep_generic_objecives diff --git a/code/modules/admin/verbs/selectequipment.dm b/code/modules/admin/verbs/selectequipment.dm index 96534967702b7..b42e01da44d9a 100644 --- a/code/modules/admin/verbs/selectequipment.dm +++ b/code/modules/admin/verbs/selectequipment.dm @@ -45,7 +45,7 @@ ADMIN_VERB_ONLY_CONTEXT_MENU(select_equipment, R_FUN, "Select Equipment", mob/ta ui.set_autoupdate(FALSE) /datum/select_equipment/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_FUN) /datum/select_equipment/ui_status(mob/user, datum/ui_state/state) if(QDELETED(target_mob)) diff --git a/code/modules/admin/view_variables/color_matrix_editor.dm b/code/modules/admin/view_variables/color_matrix_editor.dm index 6c61382ceec78..debe0be78bbb4 100644 --- a/code/modules/admin/view_variables/color_matrix_editor.dm +++ b/code/modules/admin/view_variables/color_matrix_editor.dm @@ -32,7 +32,7 @@ return ..() /datum/color_matrix_editor/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_VAREDIT) /datum/color_matrix_editor/ui_static_data(mob/user) var/list/data = list() diff --git a/code/modules/admin/view_variables/filterrific.dm b/code/modules/admin/view_variables/filterrific.dm index a997d52047743..3034c092dc420 100644 --- a/code/modules/admin/view_variables/filterrific.dm +++ b/code/modules/admin/view_variables/filterrific.dm @@ -5,7 +5,7 @@ src.target = target /datum/filter_editor/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_VAREDIT) /datum/filter_editor/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) diff --git a/code/modules/admin/view_variables/nobody_wants_to_learn_matrix_math.dm b/code/modules/admin/view_variables/nobody_wants_to_learn_matrix_math.dm index 8eb2f1c72f0fb..4d05738328432 100644 --- a/code/modules/admin/view_variables/nobody_wants_to_learn_matrix_math.dm +++ b/code/modules/admin/view_variables/nobody_wants_to_learn_matrix_math.dm @@ -20,7 +20,7 @@ return ..() /datum/nobody_wants_to_learn_matrix_math/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_VAREDIT) /datum/nobody_wants_to_learn_matrix_math/ui_close(mob/user) qdel(src) diff --git a/code/modules/admin/view_variables/particle_editor.dm b/code/modules/admin/view_variables/particle_editor.dm index dcda7a6e0df61..e2c3948124974 100644 --- a/code/modules/admin/view_variables/particle_editor.dm +++ b/code/modules/admin/view_variables/particle_editor.dm @@ -6,7 +6,7 @@ src.target = target /datum/particle_editor/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_VAREDIT) /datum/particle_editor/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) diff --git a/code/modules/admin/view_variables/view_variables.dm b/code/modules/admin/view_variables/view_variables.dm index fbebccd445981..58c98bb114a8e 100644 --- a/code/modules/admin/view_variables/view_variables.dm +++ b/code/modules/admin/view_variables/view_variables.dm @@ -54,7 +54,7 @@ ADMIN_VERB_AND_CONTEXT_MENU(debug_variables, R_NONE, "View Variables", "View the else // it means: icon_state="" if(!dmi_nullstate_checklist[icon_filename_text]) dmi_nullstate_checklist[icon_filename_text] = ICON_STATE_CHECKED - if("" in icon_states(image_object.icon)) + if(icon_exists(image_object.icon, "")) // this dmi has nullstate. We'll allow "icon_state=null" to show image. dmi_nullstate_checklist[icon_filename_text] = ICON_STATE_NULL diff --git a/code/modules/antagonists/_common/antag_spawner.dm b/code/modules/antagonists/_common/antag_spawner.dm index 741bdeeed7b7c..574e08f975334 100644 --- a/code/modules/antagonists/_common/antag_spawner.dm +++ b/code/modules/antagonists/_common/antag_spawner.dm @@ -47,10 +47,17 @@ /obj/item/antag_spawner/contract/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() - if(used || polling || !ishuman(usr)) + if(.) return - INVOKE_ASYNC(src, PROC_REF(poll_for_student), usr, params["school"]) - SStgui.close_uis(src) + switch(action) + if("buy") + if(used || polling || !ishuman(ui.user)) + return + var/selected_school = params["school"] + if(!(selected_school in ALL_APPRENTICE_TYPES)) + return + INVOKE_ASYNC(src, PROC_REF(poll_for_student), ui.user, params["school"]) + SStgui.close_uis(src) /obj/item/antag_spawner/contract/proc/poll_for_student(mob/living/carbon/human/teacher, apprentice_school) balloon_alert(teacher, "contacting apprentice...") diff --git a/code/modules/antagonists/changeling/headslug_eggs.dm b/code/modules/antagonists/changeling/headslug_eggs.dm index 5c237b1156004..9006f938d1035 100644 --- a/code/modules/antagonists/changeling/headslug_eggs.dm +++ b/code/modules/antagonists/changeling/headslug_eggs.dm @@ -26,7 +26,7 @@ /// Once the egg is fully grown, we gib the host and spawn a monkey (with the changeling's player controlling it). Very descriptive proc name. /obj/item/organ/body_egg/changeling_egg/proc/pop() var/mob/living/carbon/human/spawned_monkey = new(owner) - spawned_monkey.set_species(/datum/species/monkey) + spawned_monkey.monkeyize(instant = TRUE) for(var/obj/item/organ/insertable in src) insertable.Insert(spawned_monkey, 1) diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index a01217ea4f969..b779388947ec4 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -1027,7 +1027,7 @@ GLOBAL_VAR_INIT(narsie_summon_count, 0) visible_message(span_warning("A cloud of red mist forms above [src], and from within steps... a [new_human.gender == FEMALE ? "wo":""]man.")) to_chat(user, span_cult_italic("Your blood begins flowing into [src]. You must remain in place and conscious to maintain the forms of those summoned. This will hurt you slowly but surely...")) var/obj/structure/emergency_shield/cult/weak/N = new(T) - if(ghost_to_spawn.mind && ghost_to_spawn.mind.current) + if(ghost_to_spawn.mind && ghost_to_spawn.mind) new_human.AddComponent( \ /datum/component/temporary_body, \ old_mind = ghost_to_spawn.mind, \ diff --git a/code/modules/antagonists/heretic/heretic_antag.dm b/code/modules/antagonists/heretic/heretic_antag.dm index 8466eaf3130f2..839fba2c77f39 100644 --- a/code/modules/antagonists/heretic/heretic_antag.dm +++ b/code/modules/antagonists/heretic/heretic_antag.dm @@ -205,8 +205,13 @@ if("research") var/datum/heretic_knowledge/researched_path = text2path(params["path"]) if(!ispath(researched_path, /datum/heretic_knowledge)) - CRASH("Heretic attempted to learn non-heretic_knowledge path! (Got: [researched_path])") - + CRASH("Heretic attempted to learn non-heretic_knowledge path! (Got: [researched_path || "invalid path"])") + if(!(researched_path in get_researchable_knowledge())) + message_admins("Heretic [key_name(owner)] potentially attempted to href exploit to learn knowledge they can't learn!") + CRASH("Heretic attempted to learn knowledge they can't learn! (Got: [researched_path])") + if(ispath(researched_path, /datum/heretic_knowledge/ultimate) && !can_ascend()) + message_admins("Heretic [key_name(owner)] potentially attempted to href exploit to learn ascension knowledge without completing objectives!") + CRASH("Heretic attempted to learn a final knowledge despite not being able to ascend!") if(initial(researched_path.cost) > knowledge_points) return TRUE if(!gain_knowledge(researched_path)) diff --git a/code/modules/antagonists/heretic/heretic_curses.dm b/code/modules/antagonists/heretic/heretic_curses.dm new file mode 100644 index 0000000000000..23d88e91f3505 --- /dev/null +++ b/code/modules/antagonists/heretic/heretic_curses.dm @@ -0,0 +1,283 @@ +/*! + * Contains all the curses a heretic can cast using their upgraded codex + */ + +/datum/heretic_knowledge/curse + abstract_parent_type = /datum/heretic_knowledge/curse + /// How far can we curse people? + var/max_range = 64 + /// The duration of the curse + var/duration = 1 MINUTES + /// What color do we outline cursed folk with? + var/curse_color = "#dadada" + /// A list of all the fingerprints that were found on our atoms, in our last go at the ritual + var/list/fingerprints + /// A list of all the blood samples that were found on our atoms, in our last go at the ritual + var/list/blood_samples + +/datum/heretic_knowledge/curse/recipe_snowflake_check(mob/living/user, list/atoms, list/selected_atoms, turf/loc) + fingerprints = list() + blood_samples = list() + for(var/atom/requirement as anything in atoms) + for(var/print in GET_ATOM_FINGERPRINTS(requirement)) + fingerprints[print] = TRUE + + for(var/blood in GET_ATOM_BLOOD_DNA(requirement)) + blood_samples[blood] = TRUE + + for(var/datum/reagent/blood/usable_reagent as anything in requirement.reagents?.reagent_list) + if(!istype(usable_reagent, /datum/reagent/blood)) + continue + blood_samples[usable_reagent.data["blood_DNA"]] = TRUE + + return TRUE + +/datum/heretic_knowledge/curse/on_finished_recipe(mob/living/user, list/selected_atoms, turf/loc) + // Potential targets is an assoc list of [names] to [human mob ref]. + var/list/potential_targets = list() + + for(var/datum/mind/crewmember as anything in get_crewmember_minds()) + var/mob/living/carbon/human/human_to_check = crewmember.current + if(!istype(human_to_check) || human_to_check.stat == DEAD || !human_to_check.dna) + continue + var/their_prints = md5(human_to_check.dna.unique_identity) + var/their_blood = human_to_check.dna.unique_enzymes + if(!fingerprints[their_prints] && !blood_samples[their_blood]) + continue + potential_targets["[human_to_check.real_name]"] = human_to_check + + var/chosen_mob = tgui_input_list(user, "Select the victim you wish to curse.", name, sort_list(potential_targets, GLOBAL_PROC_REF(cmp_text_asc))) + if(isnull(chosen_mob)) + return FALSE + + var/mob/living/carbon/human/to_curse = potential_targets[chosen_mob] + if(QDELETED(to_curse)) + loc.balloon_alert(user, "ritual failed, invalid choice!") + return FALSE + + // Yes, you COULD curse yourself, not sure why but you could + if(to_curse == user) + var/are_you_sure = tgui_alert(user, "Are you sure you want to curse yourself?", name, list("Yes", "No")) + if(are_you_sure != "Yes") + return FALSE + + if(!ask_for_input(user)) + return FALSE + + var/turf/curse_turf = get_turf(to_curse) + if(!is_valid_z_level(curse_turf, loc) || get_dist(curse_turf, loc) > max_range * 1.5) // Give a bit of leeway on max range for people moving around + loc.balloon_alert(user, "ritual failed, too far!") + return FALSE + + if(IS_HERETIC(to_curse) && to_curse != user) + to_chat(user, span_warning("[to_curse.p_their()] ties to the Mansus are too strong. You are unable to curse [to_curse].")) + return TRUE + + if(to_curse.can_block_magic(MAGIC_RESISTANCE|MAGIC_RESISTANCE_HOLY, charge_cost = 0)) + to_chat(to_curse, span_warning("A ghastly chill envelops you for a moment, but then it passes.")) + return TRUE + + log_combat(user, to_curse, "cursed via heretic ritual", addition = "([name])") + var/obj/item/codex_cicatrix/morbus/cursed_book = locate() in selected_atoms + curse(to_curse, cursed_book) + to_chat(user, span_hierophant("You cast a [name] upon [to_curse.real_name].")) + + fingerprints = null + blood_samples = null + for(var/atom/to_wash in selected_atoms) + to_wash.wash(CLEAN_SCRUB) + for(var/atom/to_drain in selected_atoms) + if(!to_drain.reagents?.reagent_list) + continue + for(var/datum/reagent/to_match in to_drain.reagents.reagent_list) + if(to_match.data["blood_DNA"] != to_curse.dna.unique_enzymes) + continue + to_drain.reagents.remove_reagent(to_match.type, 5) + return TRUE + +/** + * Calls a curse onto [chosen_mob]. + */ +/datum/heretic_knowledge/curse/proc/curse(mob/living/carbon/human/chosen_mob, obj/item/codex_cicatrix/morbus/cursing_book) + SHOULD_CALL_PARENT(TRUE) + + if(duration > 0) + addtimer(CALLBACK(src, PROC_REF(uncurse), chosen_mob), duration) + + if(!curse_color) + return + + chosen_mob.add_filter(name, 2, list("type" = "outline", "color" = curse_color, "size" = 1)) + +/** + * Removes a curse from [chosen_mob]. Used in timers / callbacks. + */ +/datum/heretic_knowledge/curse/proc/uncurse(mob/living/carbon/human/chosen_mob) + SHOULD_CALL_PARENT(TRUE) + + if(QDELETED(chosen_mob)) + return + + if(!curse_color) + return + + chosen_mob.remove_filter(name) + +/** + * Asks the user for input (Optional) + * Return TRUE to finish the curse + * Return FALSE to cancel the curse + */ +/datum/heretic_knowledge/curse/proc/ask_for_input(mob/living/user) + return TRUE + +//---- Curse of Paralysis + +/datum/heretic_knowledge/curse/paralysis + abstract_parent_type = /datum/heretic_knowledge/curse/paralysis + name = "Curse of Paralysis" + desc = "Allows you to transmute a hatchet and both a left and right leg to cast a curse of immobility on a crew member. \ + While cursed, the victim will be unable to walk. You can additionally supply an item that a victim has touched \ + or is covered in the victim's blood to make the curse last longer." + gain_text = "The flesh of humanity is weak. Make them bleed. Show them their fragility." + + duration = 5 MINUTES + curse_color = "#f19a9a" + + research_tree_icon_path = 'icons/ui_icons/antags/heretic/knowledge.dmi' + research_tree_icon_state = "curse_paralysis" + + +/datum/heretic_knowledge/curse/paralysis/curse(mob/living/carbon/human/chosen_mob) + if(chosen_mob.usable_legs <= 0) // What're you gonna do, curse someone who already can't walk? + to_chat(chosen_mob, span_notice("You feel a slight pain for a moment, but it passes shortly. Odd.")) + return + + to_chat(chosen_mob, span_danger("You suddenly lose feeling in your leg[chosen_mob.usable_legs == 1 ? "":"s"]!")) + chosen_mob.add_traits(list(TRAIT_PARALYSIS_L_LEG, TRAIT_PARALYSIS_R_LEG), type) + return ..() + +/datum/heretic_knowledge/curse/paralysis/uncurse(mob/living/carbon/human/chosen_mob) + if(QDELETED(chosen_mob)) + return + + chosen_mob.remove_traits(list(TRAIT_PARALYSIS_L_LEG, TRAIT_PARALYSIS_R_LEG), type) + if(chosen_mob.usable_legs > 1) + to_chat(chosen_mob, span_green("You regain feeling in your leg[chosen_mob.usable_legs == 1 ? "":"s"]!")) + return ..() + +//---- Curse of Corrosion + +/datum/heretic_knowledge/curse/corrosion + abstract_parent_type = /datum/heretic_knowledge/curse/corrosion + name = "Curse of Corrosion" + desc = "Allows you to transmute wirecutters, a pool of vomit, and a heart to cast a curse of sickness on a crew member. \ + While cursed, the victim will repeatedly vomit while their organs will take constant damage. You can additionally supply an item \ + that a victim has touched or is covered in the victim's blood to make the curse last longer." + gain_text = "The body of humanity is temporary. Their weaknesses cannot be stopped, like iron falling to rust. Show them all." + + duration = 3 MINUTES + curse_color = "#c1ffc9" + + research_tree_icon_path = 'icons/ui_icons/antags/heretic/knowledge.dmi' + research_tree_icon_state = "curse_corrosion" + +/datum/heretic_knowledge/curse/corrosion/curse(mob/living/carbon/human/chosen_mob) + to_chat(chosen_mob, span_danger("You feel very ill...")) + chosen_mob.apply_status_effect(/datum/status_effect/corrosion_curse) + return ..() + +/datum/heretic_knowledge/curse/corrosion/uncurse(mob/living/carbon/human/chosen_mob) + if(QDELETED(chosen_mob)) + return + + chosen_mob.remove_status_effect(/datum/status_effect/corrosion_curse) + to_chat(chosen_mob, span_green("You start to feel better.")) + return ..() + +//---- Curse of Transmutation + +/datum/heretic_knowledge/curse/transmutation + abstract_parent_type = /datum/heretic_knowledge/curse/transmutation + name = "Curse of Transmutation" + duration = 0 // Infinite curse, it breaks when our codex is destroyed + curse_color = NONE + /// What species we are going to turn our victim in to + var/chosen_species + +/datum/heretic_knowledge/curse/transmutation/ask_for_input(mob/living/user) + var/list/chooseable_races = list() + for(var/datum/species/species_type as anything in subtypesof(/datum/species)) + if(initial(species_type.changesource_flags) & RACE_SWAP) + chooseable_races[species_type.name] = species_type + + var/species_name = tgui_input_list(user, "Choose a race", "Choose a race to turn your victim into", chooseable_races) + if(!species_name) + return FALSE + chosen_species = chooseable_races[species_name] + return ..() + +/datum/heretic_knowledge/curse/transmutation/curse(mob/living/carbon/human/chosen_mob, obj/item/codex_cicatrix/morbus/cursing_book) + if(chosen_mob.dna.species == chosen_species) + to_chat(chosen_mob, span_warning("You feel your body morph into... itself?")) + return + chosen_mob.apply_status_effect(/datum/status_effect/race_swap, chosen_species) + cursing_book.transmuted_victims += WEAKREF(chosen_mob) + to_chat(chosen_mob, span_danger("You feel your body morph into a new shape")) + return ..() + +/datum/heretic_knowledge/curse/transmutation/uncurse(mob/living/carbon/human/chosen_mob) + if(QDELETED(chosen_mob)) + return + + chosen_mob.remove_status_effect(/datum/status_effect/race_swap) + + return ..() + +/datum/status_effect/race_swap + id = "race_swap" + status_type = STATUS_EFFECT_REPLACE + alert_type = null + duration = STATUS_EFFECT_PERMANENT + tick_interval = STATUS_EFFECT_NO_TICK + /// What species were we before this effect was ever applied on us + var/old_species + +/datum/status_effect/race_swap/on_creation(mob/living/new_owner, datum/species/new_species) + . = ..() + owner.set_species(new_species) + +/datum/status_effect/race_swap/on_apply() + if(!iscarbon(owner)) + return FALSE + var/mob/living/carbon/carbon_owner = owner + if(!old_species) + old_species = carbon_owner.dna.species + return ..() + +/datum/status_effect/race_swap/be_replaced() + owner.set_species(old_species) + return ..() + +/datum/status_effect/race_swap/on_remove() + . = ..() + owner.set_species(old_species) + +//---- Curse of Indulgence + +/datum/heretic_knowledge/curse/indulgence + abstract_parent_type = /datum/heretic_knowledge/curse/indulgence + name = "Curse of Indulgence" + duration = 8 MINUTES + curse_color = COLOR_MAROON + +/datum/heretic_knowledge/curse/indulgence/curse(mob/living/carbon/human/chosen_mob) + chosen_mob.gain_trauma(/datum/brain_trauma/severe/flesh_desire, TRAUMA_RESILIENCE_MAGIC) + chosen_mob.nutrition = NUTRITION_LEVEL_STARVING + return ..() + +/datum/heretic_knowledge/curse/indulgence/uncurse(mob/living/carbon/human/chosen_mob) + if(QDELETED(chosen_mob)) + return + chosen_mob.cure_trauma_type(/datum/brain_trauma/severe/flesh_desire, TRAUMA_RESILIENCE_MAGIC) + return ..() diff --git a/code/modules/antagonists/heretic/heretic_knowledge.dm b/code/modules/antagonists/heretic/heretic_knowledge.dm index 68d781cddc3eb..566f8a2230a75 100644 --- a/code/modules/antagonists/heretic/heretic_knowledge.dm +++ b/code/modules/antagonists/heretic/heretic_knowledge.dm @@ -378,129 +378,6 @@ /datum/heretic_knowledge/blade_upgrade/proc/do_ranged_effects(mob/living/source, mob/living/target, obj/item/melee/sickly_blade/blade) return -/** - * A knowledge subtype lets the heretic curse someone with a ritual. - */ -/datum/heretic_knowledge/curse - abstract_parent_type = /datum/heretic_knowledge/curse - /// How far can we curse people? - var/max_range = 64 - /// The duration of the curse - var/duration = 1 MINUTES - /// The duration of the curse on people which have a fingerprint or blood sample present - var/duration_modifier = 2 - /// What color do we outline cursed folk with? - var/curse_color = "#dadada" - /// A list of all the fingerprints that were found on our atoms, in our last go at the ritual - var/list/fingerprints - /// A list of all the blood samples that were found on our atoms, in our last go at the ritual - var/list/blood_samples - -/datum/heretic_knowledge/curse/recipe_snowflake_check(mob/living/user, list/atoms, list/selected_atoms, turf/loc) - fingerprints = list() - blood_samples = list() - for(var/atom/requirement as anything in atoms) - for(var/print in GET_ATOM_FINGERPRINTS(requirement)) - fingerprints[print] = 1 - - for(var/blood in GET_ATOM_BLOOD_DNA(requirement)) - blood_samples[blood] = 1 - - return TRUE - -/datum/heretic_knowledge/curse/on_finished_recipe(mob/living/user, list/selected_atoms, turf/loc) - - // Potential targets is an assoc list of [names] to [human mob ref]. - var/list/potential_targets = list() - // Boosted targets is a list of human mob references. - var/list/boosted_targets = list() - - for(var/datum/mind/crewmember as anything in get_crewmember_minds()) - var/mob/living/carbon/human/human_to_check = crewmember.current - if(!istype(human_to_check) || human_to_check.stat == DEAD || !human_to_check.dna) - continue - var/their_prints = md5(human_to_check.dna.unique_identity) - var/their_blood = human_to_check.dna.unique_enzymes - // Having their fingerprints or blood present will boost the curse - // and also not run any z or dist checks, as a bonus for those going beyond - if(fingerprints[their_prints] || blood_samples[their_blood]) - boosted_targets += human_to_check - potential_targets["[human_to_check.real_name] (Boosted)"] = human_to_check - continue - - // No boost present, so we should be a little stricter moving forward - var/turf/check_turf = get_turf(human_to_check) - // We have to match z-levels. - // Otherwise, you could probably hard own miners, which is funny but mean. - // Multi-z stations technically work though. - if(!is_valid_z_level(check_turf, loc)) - continue - // Also has to abide by our max range. - if(get_dist(check_turf, loc) > max_range) - continue - - potential_targets[human_to_check.real_name] = human_to_check - - var/chosen_mob = tgui_input_list(user, "Select the victim you wish to curse.", name, sort_list(potential_targets, GLOBAL_PROC_REF(cmp_text_asc))) - if(isnull(chosen_mob)) - return FALSE - - var/mob/living/carbon/human/to_curse = potential_targets[chosen_mob] - if(QDELETED(to_curse)) - loc.balloon_alert(user, "ritual failed, invalid choice!") - return FALSE - - // Yes, you COULD curse yourself, not sure why but you could - if(to_curse == user) - var/are_you_sure = tgui_alert(user, "Are you sure you want to curse yourself?", name, list("Yes", "No")) - if(are_you_sure != "Yes") - return FALSE - - var/boosted = (to_curse in boosted_targets) - var/turf/curse_turf = get_turf(to_curse) - if(!boosted && (!is_valid_z_level(curse_turf, loc) || get_dist(curse_turf, loc) > max_range * 1.5)) // Give a bit of leeway on max range for people moving around - loc.balloon_alert(user, "ritual failed, too far!") - return FALSE - - if(to_curse.can_block_magic(MAGIC_RESISTANCE|MAGIC_RESISTANCE_HOLY, charge_cost = 0)) - to_chat(to_curse, span_warning("You feel a ghastly chill, but the feeling passes shortly.")) - return TRUE - - log_combat(user, to_curse, "cursed via heretic ritual", addition = "([boosted ? "Boosted" : ""] [name])") - curse(to_curse, boosted) - to_chat(user, span_hierophant("You cast a[boosted ? "n empowered":""] [name] upon [to_curse.real_name].")) - - fingerprints = null - blood_samples = null - return TRUE - -/** - * Calls a curse onto [chosen_mob]. - */ -/datum/heretic_knowledge/curse/proc/curse(mob/living/carbon/human/chosen_mob, boosted = FALSE) - SHOULD_CALL_PARENT(TRUE) - - addtimer(CALLBACK(src, PROC_REF(uncurse), chosen_mob, boosted), duration * (boosted ? duration_modifier : 1)) - - if(!curse_color) - return - - chosen_mob.add_filter(name, 2, list("type" = "outline", "color" = curse_color, "size" = 1)) - -/** - * Removes a curse from [chosen_mob]. Used in timers / callbacks. - */ -/datum/heretic_knowledge/curse/proc/uncurse(mob/living/carbon/human/chosen_mob, boosted = FALSE) - SHOULD_CALL_PARENT(TRUE) - - if(QDELETED(chosen_mob)) - return - - if(!curse_color) - return - - chosen_mob.remove_filter(name) - /** * A knowledge subtype lets the heretic summon a monster with the ritual. */ diff --git a/code/modules/antagonists/heretic/influences.dm b/code/modules/antagonists/heretic/influences.dm index cc2e7556816a5..c9a19504e625b 100644 --- a/code/modules/antagonists/heretic/influences.dm +++ b/code/modules/antagonists/heretic/influences.dm @@ -215,7 +215,7 @@ return FALSE if(!codex.book_open) codex.attack_self(user) // open booke - INVOKE_ASYNC(src, PROC_REF(drain_influence), user, 2) + INVOKE_ASYNC(src, PROC_REF(drain_influence), user, 2, codex.drain_speed) return TRUE /** @@ -224,12 +224,12 @@ * * If successful, the influence is drained and deleted. */ -/obj/effect/heretic_influence/proc/drain_influence(mob/living/user, knowledge_to_gain) +/obj/effect/heretic_influence/proc/drain_influence(mob/living/user, knowledge_to_gain, drain_speed = 10 SECONDS) being_drained = TRUE loc.balloon_alert(user, "draining influence...") - if(!do_after(user, 10 SECONDS, src, hidden = TRUE)) + if(!do_after(user, drain_speed, src, hidden = TRUE)) being_drained = FALSE loc.balloon_alert(user, "interrupted!") return diff --git a/code/modules/antagonists/heretic/items/eldritch_flask.dm b/code/modules/antagonists/heretic/items/eldritch_flask.dm index 409bcd473ed7d..fc0dd05449780 100644 --- a/code/modules/antagonists/heretic/items/eldritch_flask.dm +++ b/code/modules/antagonists/heretic/items/eldritch_flask.dm @@ -1,8 +1,106 @@ // An unholy water flask, but for heretics. -// Heals heretics, hearms non-heretics. Pretty much identical. +// Heals heretics, harms non-heretics. Pretty much identical. /obj/item/reagent_containers/cup/beaker/eldritch name = "flask of eldritch essence" desc = "Toxic to the closed minded, yet refreshing to those with knowledge of the beyond." icon = 'icons/obj/antags/eldritch.dmi' icon_state = "eldritch_flask" list_reagents = list(/datum/reagent/eldritch = 50) + +// Unique bottle that lets you instantly draw blood from a victim +/obj/item/reagent_containers/cup/phylactery + name = "phylactery of damnation" + desc = "Used to steal blood from soon-to-be victims." + icon = 'icons/obj/antags/eldritch.dmi' + icon_state = "phylactery" + base_icon_state = "phylactery" + has_variable_transfer_amount = FALSE + reagent_flags = OPENCONTAINER | DUNKABLE | TRANSPARENT + volume = 10 + /// Cooldown before you can steal blood again + COOLDOWN_DECLARE(drain_cooldown) + +/obj/item/reagent_containers/cup/phylactery/interact_with_atom_secondary(atom/target, mob/living/user, list/modifiers) + if(!COOLDOWN_FINISHED(src, drain_cooldown)) + user.balloon_alert(user, "can't steal so fast!") + return NONE + if(!isliving(target)) + return NONE + var/mob/living/living_target = target + if(reagents.total_volume >= reagents.maximum_volume) + to_chat(user, span_notice("[src] is full.")) + return ITEM_INTERACT_BLOCKING + if(living_target == user) + return ITEM_INTERACT_BLOCKING + if(living_target.can_block_magic(MAGIC_RESISTANCE_HOLY)) + to_chat(user, span_warning("You are unable to draw any blood from [living_target]!")) + COOLDOWN_START(src, drain_cooldown, 5 SECONDS) + to_chat(living_target, span_warning("You feel a force attempt to steal your blood, but it is repelled!")) + return ITEM_INTERACT_BLOCKING + var/drawn_amount = min(reagents.maximum_volume - reagents.total_volume, 5) + if(living_target.transfer_blood_to(src, drawn_amount)) + to_chat(user, span_notice("You take a blood sample from [living_target].")) + to_chat(living_target, span_warning("You feel a tiny prick!")) + COOLDOWN_START(src, drain_cooldown, 5 SECONDS) + playsound(src, 'sound/effects/chemistry/catalyst.ogg', 20, TRUE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_exponent = 10) + else + to_chat(user, span_warning("You are unable to draw any blood from [living_target]!")) + return ITEM_INTERACT_SUCCESS + +/obj/item/reagent_containers/cup/phylactery/ranged_interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers) + if(get_dist(user, interacting_with) <= 30) + return interact_with_atom_secondary(interacting_with, user, modifiers) + return ..() + +/obj/item/reagent_containers/cup/phylactery/update_icon_state() + . = ..() + switch(reagents.total_volume) + if(0) + icon_state = base_icon_state + if(0.1 to 5) + icon_state = base_icon_state + "_1" + if(5.1 to 10) + icon_state = base_icon_state + "_2" + +// Funny potion that is basically an aheal. The downside is that it puts you to sleep for a minute. +/obj/item/ether + name = "ether of the newborn" + desc = "A flask of nausea-inducing, thick green liquid. Restores your body completely, then places you into an enhanced sleep for a full minute." + icon = 'icons/obj/antags/eldritch.dmi' + icon_state = "poison_flask" + +/obj/item/ether/attack_self(mob/living/user, modifiers) + . = ..() + user.revive(HEAL_ALL) + for(var/obj/item/implant/to_remove in user.implants) + to_remove.removed(user) + + user.apply_status_effect(/datum/status_effect/eldritch_sleep) + user.SetSleeping(60 SECONDS) + qdel(src) + +/datum/status_effect/eldritch_sleep + id = "eldritch_sleep" + duration = 60 SECONDS + status_type = STATUS_EFFECT_REFRESH + alert_type = /atom/movable/screen/alert/status_effect/eldritch_sleep + show_duration = TRUE + remove_on_fullheal = TRUE + /// List of traits our drinker gets while they are asleep + var/list/sleeping_traits = list(TRAIT_NOBREATH, TRAIT_RESISTLOWPRESSURE, TRAIT_RESISTLOWPRESSURE, TRAIT_RESISTCOLD, TRAIT_RESISTHEAT) + +/datum/status_effect/eldritch_sleep/on_apply() + . = ..() + owner.add_traits(sleeping_traits, TRAIT_STATUS_EFFECT(id)) + owner.apply_status_effect(/datum/status_effect/grouped/stasis, STASIS_ELDRITCH_ETHER) + +/datum/status_effect/eldritch_sleep/on_remove() + owner.SetSleeping(0) // Wake up bookworm, we have some heathens to burn + owner.remove_traits(sleeping_traits, TRAIT_STATUS_EFFECT(id)) + owner.reagents?.remove_all(100) // If someone gives you over 100 units of poison while you sleep then you deserve this L + owner.remove_status_effect(/datum/status_effect/grouped/stasis, STASIS_ELDRITCH_ETHER) + +/atom/movable/screen/alert/status_effect/eldritch_sleep + name = "Eldritch Slumber" + desc = "You feel an indescribable warmth keeping you safe..." + icon_state = "eldritch_slumber" diff --git a/code/modules/antagonists/heretic/items/forbidden_book.dm b/code/modules/antagonists/heretic/items/forbidden_book.dm index 2591a1fd752a9..d3c22d7b68733 100644 --- a/code/modules/antagonists/heretic/items/forbidden_book.dm +++ b/code/modules/antagonists/heretic/items/forbidden_book.dm @@ -10,6 +10,10 @@ w_class = WEIGHT_CLASS_SMALL /// Helps determine the icon state of this item when it's used on self. var/book_open = FALSE + /// How fast we can drain influences + var/drain_speed = 10 SECONDS + /// How fast we can draw runes + var/draw_speed = 8 SECONDS /obj/item/codex_cicatrix/Initialize(mapload) . = ..() @@ -53,7 +57,7 @@ if(isopenturf(interacting_with)) var/obj/effect/heretic_influence/influence = locate(/obj/effect/heretic_influence) in interacting_with if(!influence?.drain_influence_with_codex(user, src)) - heretic_datum.try_draw_rune(user, interacting_with, drawing_time = 8 SECONDS) + heretic_datum.try_draw_rune(user, interacting_with, drawing_time = draw_speed) return ITEM_INTERACT_BLOCKING return NONE @@ -68,3 +72,75 @@ icon_state = base_icon_state flick("[base_icon_state]_closing", src) book_open = FALSE + +// Upgraded version of the codex cicatrix that allows us to cast curses +/obj/item/codex_cicatrix/morbus // I'm morbing all over + name = "Codex Morbus" + desc = "A hideous, ragged book covered in separately-blinking eyes, all of them staring at you. You have no idea how to hold this thing, and to be honest you're not sure if you want to." + base_icon_state = "book_morbus" + icon_state = "book_morbus" + drain_speed = 7 SECONDS + draw_speed = 5 SECONDS + /// List of mobs we've cursed with transmutation. When the codex is destroyed all those curses become undone + var/list/transmuted_victims = list() + +/obj/item/codex_cicatrix/morbus/examine(mob/user) + . = ..() + if(IS_HERETIC(user)) + . += span_info("Can be used to cast a curse with blood in your offhand by right clicking a rune.") + return + . += span_danger("The eyes stop blinking. They stare at you. Their gaze burns...") + if(!ishuman(user)) + return + var/mob/living/carbon/human/human_user = user + to_chat(human_user, span_userdanger("Your mind burns as you stare at the pages!")) + human_user.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10, 190) + human_user.add_mood_event("gates_of_mansus", /datum/mood_event/gates_of_mansus) + +/obj/item/codex_cicatrix/morbus/examine_more(mob/user) + . = ..() // XANTODO - Add a summary of each curse to the description so that the curser knows what will happen the cursee + +/obj/item/codex_cicatrix/morbus/interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers) + if(!istype(interacting_with, /obj/effect/heretic_rune/big)) + return NONE + + var/list/curse_list = list() + for(var/datum/heretic_knowledge/curse/curses as anything in subtypesof(/datum/heretic_knowledge/curse)) + curse_list[curses.name] = curses + var/selected_curse = tgui_input_list(user, "Cast any curse", "Select a curse!", curse_list, timeout = 0) + if(!selected_curse) + return NONE + + if(!user.Adjacent(interacting_with)) + return NONE + + var/atom/held_offhand = user.get_inactive_held_item() + if(!held_offhand) + user.balloon_alert(user, "no catalyst!") + return + var/blood_samples = list() + for(var/blood in GET_ATOM_BLOOD_DNA(held_offhand)) + blood_samples[blood] = 1 + for(var/datum/reagent/blood/usable_reagent as anything in held_offhand.reagents?.reagent_list) + if(!istype(usable_reagent, /datum/reagent/blood)) + continue + blood_samples += usable_reagent.data["blood_DNA"] + if(isnull(blood_samples)) + user.balloon_alert(user, "no blood!") + return ITEM_INTERACT_BLOCKING + + var/curse_type = curse_list[selected_curse] + var/datum/heretic_knowledge/curse/to_cast = new curse_type + to_cast.recipe_snowflake_check(user, list(held_offhand), loc = get_turf(user)) + to_cast.on_finished_recipe(user, list(src, held_offhand), loc = get_turf(user)) + return ITEM_INTERACT_SUCCESS + +/obj/item/codex_cicatrix/morbus/atom_destruction(damage_flag) + for(var/datum/weakref/to_uncurse_ref as anything in transmuted_victims) + var/mob/to_uncurse = to_uncurse_ref.resolve() + if(!to_uncurse || !ismob(to_uncurse)) + continue + var/datum/heretic_knowledge/curse/transmutation/to_undo = new() + to_undo.uncurse(to_uncurse) + transmuted_victims -= to_uncurse_ref + return ..() diff --git a/code/modules/antagonists/heretic/items/heretic_armor.dm b/code/modules/antagonists/heretic/items/heretic_armor.dm index a07150919aa36..1d06412819f6f 100644 --- a/code/modules/antagonists/heretic/items/heretic_armor.dm +++ b/code/modules/antagonists/heretic/items/heretic_armor.dm @@ -56,7 +56,6 @@ icon_state = "void_cloak" flags_inv = NONE flags_cover = NONE - item_flags = EXAMINE_SKIP armor_type = /datum/armor/cult_hoodie_void /datum/armor/cult_hoodie_void @@ -69,7 +68,7 @@ /obj/item/clothing/head/hooded/cult_hoodie/void/Initialize(mapload) . = ..() - ADD_TRAIT(src, TRAIT_NO_STRIP, REF(src)) + add_traits(list(TRAIT_NO_STRIP, TRAIT_EXAMINE_SKIP), INNATE_TRAIT) /obj/item/clothing/suit/hooded/cultrobes/void name = "void cloak" @@ -112,17 +111,15 @@ /obj/item/clothing/suit/hooded/cultrobes/void/proc/hide_item(datum/source, obj/item/item, slot) SIGNAL_HANDLER if(slot & ITEM_SLOT_SUITSTORE) - ADD_TRAIT(item, TRAIT_NO_STRIP, REF(src)) // i'd use examine hide but its a flag and yeah + item.add_traits(list(TRAIT_NO_STRIP, TRAIT_NO_WORN_ICON, TRAIT_EXAMINE_SKIP), REF(src)) /obj/item/clothing/suit/hooded/cultrobes/void/proc/show_item(datum/source, obj/item/item, slot) SIGNAL_HANDLER - REMOVE_TRAIT(item, TRAIT_NO_STRIP, REF(src)) + item.remove_traits(list(TRAIT_NO_STRIP, TRAIT_NO_WORN_ICON, TRAIT_EXAMINE_SKIP), REF(src)) /obj/item/clothing/suit/hooded/cultrobes/void/examine(mob/user) . = ..() - if(!IS_HERETIC(user)) - return - if(!hood_up) + if(!IS_HERETIC(user) || !hood_up) return // Let examiners know this works as a focus only if the hood is down @@ -148,8 +145,7 @@ /// Makes our cloak "invisible". Not the wearer, the cloak itself. /obj/item/clothing/suit/hooded/cultrobes/void/proc/make_invisible() - item_flags |= EXAMINE_SKIP - ADD_TRAIT(src, TRAIT_NO_STRIP, REF(src)) + add_traits(list(TRAIT_NO_STRIP, TRAIT_EXAMINE_SKIP), REF(src)) RemoveElement(/datum/element/heretic_focus) if(isliving(loc)) @@ -159,8 +155,7 @@ /// Makes our cloak "visible" again. /obj/item/clothing/suit/hooded/cultrobes/void/proc/make_visible() - item_flags &= ~EXAMINE_SKIP - REMOVE_TRAIT(src, TRAIT_NO_STRIP, REF(src)) + remove_traits(list(TRAIT_NO_STRIP, TRAIT_EXAMINE_SKIP), REF(src)) AddElement(/datum/element/heretic_focus) if(isliving(loc)) diff --git a/code/modules/antagonists/heretic/items/heretic_blades.dm b/code/modules/antagonists/heretic/items/heretic_blades.dm index 1cee767dc969e..545ee85f301ef 100644 --- a/code/modules/antagonists/heretic/items/heretic_blades.dm +++ b/code/modules/antagonists/heretic/items/heretic_blades.dm @@ -25,6 +25,10 @@ attack_verb_continuous = list("attacks", "slashes", "slices", "tears", "lacerates", "rips", "dices", "rends") attack_verb_simple = list("attack", "slash", "slice", "tear", "lacerate", "rip", "dice", "rend") var/after_use_message = "" + /// Tracks how many times attack_self() is called so that breaking a blade while in an arena has to be intentional + var/escape_attempts = 0 + /// Timer that resets your escape_attempts back to 0 + var/escape_timer /obj/item/melee/sickly_blade/examine(mob/user) . = ..() @@ -50,8 +54,27 @@ return . /obj/item/melee/sickly_blade/attack_self(mob/user) + if(HAS_TRAIT(user, TRAIT_ELDRITCH_ARENA_PARTICIPANT)) + user.balloon_alert(user, "can't escape!") + if(escape_attempts > 2) + to_chat(user, span_hypnophrase(span_big("Cowardly sheep will be slaughtered!"))) + playsound(src, SFX_SHATTER, 70, TRUE) + var/obj/item/bodypart/to_remove = user.get_active_hand() + to_remove.dismember() + deltimer(escape_timer) + qdel(src) + return + escape_attempts++ + escape_timer = addtimer(CALLBACK(src, PROC_REF(reset_attempts)), 2 SECONDS, TIMER_STOPPABLE) + return + if(HAS_TRAIT(user, TRAIT_NO_TELEPORT)) + user.balloon_alert(user, "can't break!") + return seek_safety(user) - return ..() + +/obj/item/melee/sickly_blade/proc/reset_attempts() + escape_attempts = 0 + deltimer(escape_timer) /// Attempts to teleport the passed mob to somewhere safe on the station, if they can use the blade. /obj/item/melee/sickly_blade/proc/seek_safety(mob/user) @@ -282,3 +305,14 @@ heretic_datum.try_draw_rune(user, target, drawing_time = 14 SECONDS) // Faster than pen, slower than cicatrix return ITEM_INTERACT_BLOCKING return NONE + +// Weaker blade variant given to people so they can participate in the heretic arena spell +/obj/item/melee/sickly_blade/training + name = "\improper imperfect blade" + desc = "A blade given to those who cannot accept the truth, out of pity. \ + May it act as a blessing in the short time it remains alongside you." + force = 17 + armour_penetration = 0 + +/obj/item/melee/sickly_blade/training/check_usability(mob/living/user) + return TRUE // If you can hold this, you can use it diff --git a/code/modules/antagonists/heretic/items/heretic_grenade.dm b/code/modules/antagonists/heretic/items/heretic_grenade.dm new file mode 100644 index 0000000000000..eb6f4ecf07789 --- /dev/null +++ b/code/modules/antagonists/heretic/items/heretic_grenade.dm @@ -0,0 +1,120 @@ +/*! + * Contains Heretic grenades + * They spread rust and obliterate borgs/mechs + */ + +/obj/item/grenade/chem_grenade/rust_sower + name = "\improper Rust sower" + desc = "A nifty little thing that explodes into rust. Causes borgs and mechs to get utterly obliterated" + possible_fuse_time = list("5") + stage = GRENADE_READY + base_icon_state = "rustgrenade" + inhand_icon_state = "rustgrenade" + grenade_arm_sound = 'sound/items/weapons/rust_sower_armbomb.ogg' + grenade_sound_vary = FALSE + +/obj/item/grenade/chem_grenade/rust_sower/update_icon_state() + . = ..() + if(active) + icon_state = "[base_icon_state]_active" + else + icon_state = base_icon_state + +/obj/item/grenade/chem_grenade/rust_sower/Initialize(mapload) + . = ..() + RegisterSignal(src, COMSIG_ITEM_ON_GRIND, PROC_REF(on_try_grind)) + var/obj/item/reagent_containers/cup/beaker/large/beaker_one = new(src) + var/obj/item/reagent_containers/cup/beaker/large/beaker_two = new(src) + + beaker_one.reagents.add_reagent(/datum/reagent/heretic_rust, 50) + beaker_one.reagents.add_reagent(/datum/reagent/potassium, 50) + beaker_two.reagents.add_reagent(/datum/reagent/phosphorus, 50) + beaker_two.reagents.add_reagent(/datum/reagent/consumable/sugar, 50) + + beakers += beaker_one + beakers += beaker_two + +/obj/item/grenade/chem_grenade/rust_sower/detonate(mob/living/lanced_by) + . = ..() + playsound(src, 'sound/items/weapons/rust_sower_explode.ogg', 70, FALSE) + qdel(src) + +/obj/item/grenade/chem_grenade/rust_sower/screwdriver_act(mob/living/user, obj/item/tool) + return NONE + +/obj/item/grenade/chem_grenade/rust_sower/wrench_act(mob/living/user, obj/item/tool) + return NONE + +/obj/item/grenade/chem_grenade/rust_sower/multitool_act(mob/living/user, obj/item/tool) + return NONE + +/// Returns -1 so that you cant extract the chems +/obj/item/grenade/chem_grenade/rust_sower/proc/on_try_grind() + SIGNAL_HANDLER + return -1 + +/datum/reagent/heretic_rust + name = "Eldritch Rust" + description = "A slurry of viscous, chunky brown liquid." + color = COLOR_CARGO_BROWN // Rust color + taste_description = "rotten copper" + penetrates_skin = NONE + ph = 7.4 + default_container = /obj/item/reagent_containers/cup/bottle/capsaicin + +/datum/reagent/heretic_rust/expose_atom(atom/exposed_atom, reac_volume) + . = ..() + if(ismecha(exposed_atom)) + var/obj/vehicle/sealed/mecha/to_wreck = exposed_atom + to_wreck.take_damage(300, BURN) + +/datum/reagent/heretic_rust/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume) + . = ..() + if(!ishuman(exposed_mob)) + if(issilicon(exposed_mob) || ismecha(exposed_mob) || isbot(exposed_mob)) + exposed_mob.adjustBruteLoss(500) + return + if(IS_HERETIC(exposed_mob)) + return + if(exposed_mob.can_block_magic(MAGIC_RESISTANCE_HOLY)) + return + + var/mob/living/carbon/victim = exposed_mob + if(methods & (TOUCH|VAPOR|INHALE)) + //check for protection + //actually handle the pepperspray effects + if(!victim.is_pepper_proof()) // you need both eye and mouth protection + if(prob(5)) + victim.emote("scream") + victim.emote("cry") + victim.set_eye_blur_if_lower(10 SECONDS) + victim.adjust_temp_blindness(6 SECONDS) + victim.set_confusion_if_lower(5 SECONDS) + victim.Knockdown(3 SECONDS) + victim.add_movespeed_modifier(/datum/movespeed_modifier/reagent/pepperspray) + addtimer(CALLBACK(victim, TYPE_PROC_REF(/mob, remove_movespeed_modifier), /datum/movespeed_modifier/reagent/pepperspray), 10 SECONDS) + victim.update_damage_hud() + victim.adjust_disgust(5) + for(var/obj/item/bodypart/robotic_limb in victim.bodyparts) + if(robotic_limb.biological_state & BIO_ROBOTIC) + robotic_limb.receive_damage(5, 5) + if(methods & INGEST) + if(!holder.has_reagent(/datum/reagent/consumable/milk)) + if(prob(15)) + to_chat(exposed_mob, span_danger("[pick("Your head pounds.", "Your mouth feels like it's on fire.", "You feel dizzy.")]")) + if(prob(10)) + victim.set_eye_blur_if_lower(2 SECONDS) + if(prob(10)) + victim.set_dizzy_if_lower(2 SECONDS) + if(prob(5)) + victim.vomit(VOMIT_CATEGORY_DEFAULT) + +/datum/reagent/heretic_rust/expose_turf(turf/exposed_turf, reac_volume) + . = ..() + exposed_turf.rust_turf() + +/datum/reagent/heretic_rust/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) + . = ..() + if(!holder.has_reagent(/datum/reagent/consumable/milk)) + if(SPT_PROB(5, seconds_per_tick)) + affected_mob.visible_message(span_warning("[affected_mob] [pick("dry heaves!","coughs!","splutters!")]")) diff --git a/code/modules/antagonists/heretic/items/heretic_shoes.dm b/code/modules/antagonists/heretic/items/heretic_shoes.dm new file mode 100644 index 0000000000000..3c7a94d829ce1 --- /dev/null +++ b/code/modules/antagonists/heretic/items/heretic_shoes.dm @@ -0,0 +1,9 @@ +/obj/item/clothing/shoes/greaves_of_the_prophet + name = "\improper Joint-snap sabatons" + desc = "Sabatons made out of rugged, worn iron. Feels more stable than the ground they tread on. They're caked in a thin layer of rust - and yet, the sight of it fills you with odd relief." + icon_state = "hereticgreaves" + resistance_flags = ACID_PROOF | FIRE_PROOF | LAVA_PROOF + +/obj/item/clothing/shoes/greaves_of_the_prophet/Initialize(mapload) + . = ..() + attach_clothing_traits(list(TRAIT_NO_SLIP_WATER, TRAIT_NO_SLIP_ICE, TRAIT_NO_SLIP_SLIDE, TRAIT_NO_SLIP_ALL)) diff --git a/code/modules/antagonists/heretic/knowledge/blade_lore.dm b/code/modules/antagonists/heretic/knowledge/blade_lore.dm index 993aa20c4287e..2b85a5b7091df 100644 --- a/code/modules/antagonists/heretic/knowledge/blade_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/blade_lore.dm @@ -12,9 +12,9 @@ mark = /datum/heretic_knowledge/mark/blade_mark ritual_of_knowledge = /datum/heretic_knowledge/knowledge_ritual/blade unique_ability = /datum/heretic_knowledge/spell/realignment - tier2 = /datum/heretic_knowledge/duel_stance + tier2 = /datum/heretic_knowledge/spell/furious_steel blade = /datum/heretic_knowledge/blade_upgrade/blade - tier3 = /datum/heretic_knowledge/spell/furious_steel + tier3 = /datum/heretic_knowledge/spell/wolves_among_sheep ascension = /datum/heretic_knowledge/ultimate/blade_final /datum/heretic_knowledge/limited_amount/starting/base_blade @@ -188,70 +188,19 @@ action_to_add = /datum/action/cooldown/spell/realignment cost = 1 - -/// The amount of blood flow reduced per level of severity of gained bleeding wounds for Stance of the Torn Champion. -#define BLOOD_FLOW_PER_SEVEIRTY -1 - -/datum/heretic_knowledge/duel_stance - name = "Stance of the Torn Champion" - desc = "Grants resilience to blood loss from wounds and immunity to having your limbs dismembered. \ - Additionally, when damaged below 50% of your maximum health, \ - you gain increased resistance to gaining wounds and resistance to batons." - gain_text = "In time, it was he who stood alone among the bodies of his former comrades, awash in blood, none of it his own. \ - He was without rival, equal, or purpose." +/datum/heretic_knowledge/spell/wolves_among_sheep + name = "Wolves Among Sheep" + desc = "Alters the fabric of reality, conjuring a magical arena unpassable to outsiders, \ + all participants are trapped and immune to any form of crowd control or enviromental hazards; \ + trapped participants are granted a Blade and are unable to leave or jaunt until they score a critical hit. \ + Critical hits partially restore the Heretic's health." + gain_text = "Shadows crawl across the room, casting every chair, table \ + and console into the looming shape of another traitorous hand. \ + I have made an enemy of all, and peace will never be known to me \ + again. I have shattered bonds and severed all alliances. In this truth, \ + I know now the fragility of comradery. My enemies will be all, divided." cost = 1 - research_tree_icon_path = 'icons/effects/blood.dmi' - research_tree_icon_state = "suitblood" - research_tree_icon_dir = SOUTH - /// Whether we're currently in duelist stance, gaining certain buffs (low health) - var/in_duelist_stance = FALSE - -/datum/heretic_knowledge/duel_stance/on_gain(mob/user, datum/antagonist/heretic/our_heretic) - ADD_TRAIT(user, TRAIT_NODISMEMBER, type) - RegisterSignal(user, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) - RegisterSignal(user, COMSIG_CARBON_GAIN_WOUND, PROC_REF(on_wound_gain)) - RegisterSignal(user, COMSIG_LIVING_HEALTH_UPDATE, PROC_REF(on_health_update)) - - on_health_update(user) // Run this once, so if the knowledge is learned while hurt it activates properly - -/datum/heretic_knowledge/duel_stance/on_lose(mob/user, datum/antagonist/heretic/our_heretic) - REMOVE_TRAIT(user, TRAIT_NODISMEMBER, type) - if(in_duelist_stance) - user.remove_traits(list(TRAIT_HARDLY_WOUNDED, TRAIT_BATON_RESISTANCE), type) - - UnregisterSignal(user, list(COMSIG_ATOM_EXAMINE, COMSIG_CARBON_GAIN_WOUND, COMSIG_LIVING_HEALTH_UPDATE)) - -/datum/heretic_knowledge/duel_stance/proc/on_examine(mob/living/source, mob/user, list/examine_list) - SIGNAL_HANDLER - - var/obj/item/held_item = source.get_active_held_item() - if(in_duelist_stance) - examine_list += span_warning("[source] looks unnaturally poised[held_item?.force >= 15 ? " and ready to strike out":""].") - -/datum/heretic_knowledge/duel_stance/proc/on_wound_gain(mob/living/source, datum/wound/gained_wound, obj/item/bodypart/limb) - SIGNAL_HANDLER - - if(gained_wound.blood_flow <= 0) - return - - gained_wound.adjust_blood_flow(gained_wound.severity * BLOOD_FLOW_PER_SEVEIRTY) - -/datum/heretic_knowledge/duel_stance/proc/on_health_update(mob/living/source) - SIGNAL_HANDLER - - if(in_duelist_stance && source.health > source.maxHealth * 0.5) - source.balloon_alert(source, "exited duelist stance") - in_duelist_stance = FALSE - source.remove_traits(list(TRAIT_HARDLY_WOUNDED, TRAIT_BATON_RESISTANCE), type) - return - - if(!in_duelist_stance && source.health <= source.maxHealth * 0.5) - source.balloon_alert(source, "entered duelist stance") - in_duelist_stance = TRUE - source.add_traits(list(TRAIT_HARDLY_WOUNDED, TRAIT_BATON_RESISTANCE), type) - return - -#undef BLOOD_FLOW_PER_SEVEIRTY + action_to_add = /datum/action/cooldown/spell/wolves_among_sheep /datum/heretic_knowledge/blade_upgrade/blade name = "Empowered Blades" diff --git a/code/modules/antagonists/heretic/knowledge/lock_lore.dm b/code/modules/antagonists/heretic/knowledge/lock_lore.dm index d323beecc1854..357c518570cd9 100644 --- a/code/modules/antagonists/heretic/knowledge/lock_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/lock_lore.dm @@ -104,7 +104,6 @@ research_tree_icon_path = 'icons/obj/card.dmi' research_tree_icon_state = "card_gold" - /datum/heretic_knowledge/mark/lock_mark name = "Mark of Lock" desc = "Your Mansus Grasp now applies the Mark of Lock. \ diff --git a/code/modules/antagonists/heretic/knowledge/side_ash_moon.dm b/code/modules/antagonists/heretic/knowledge/side_ash_moon.dm index b4470f9c7fb13..c5bc72fd62153 100644 --- a/code/modules/antagonists/heretic/knowledge/side_ash_moon.dm +++ b/code/modules/antagonists/heretic/knowledge/side_ash_moon.dm @@ -5,7 +5,7 @@ route = PATH_SIDE tier1 = /datum/heretic_knowledge/medallion - tier2 = /datum/heretic_knowledge/curse/paralysis + tier2 = /datum/heretic_knowledge/ether tier3 = /datum/heretic_knowledge/summon/ashy // Sidepaths for knowledge between Ash and Flesh. @@ -25,44 +25,21 @@ research_tree_icon_path = 'icons/obj/antags/eldritch.dmi' research_tree_icon_state = "eye_medalion" -/datum/heretic_knowledge/curse/paralysis - name = "Curse of Paralysis" - desc = "Allows you to transmute a hatchet and both a left and right leg to cast a curse of immobility on a crew member. \ - While cursed, the victim will be unable to walk. You can additionally supply an item that a victim has touched \ - or is covered in the victim's blood to make the curse last longer." - gain_text = "The flesh of humanity is weak. Make them bleed. Show them their fragility." - +/datum/heretic_knowledge/ether + name = "Ether Of The Newborn" + desc = "Conjures a single use potion, drinking it will remove any sort of abnormality from your body including diseases, traumas and implants \ + on top of restoring it to full health, at the cost of losing consciousness for an entire minute." + gain_text = "Vision and thought grow hazy as the fumes of this ichor swirl up to meet me. \ + Through the haze, I find myself staring back in relief, or something grossly resembling my visage. \ + It is this wretched thing that I consign to my fate, and whose own that I snatch through the haze of dreams. Fools that we are." required_atoms = list( - /obj/item/bodypart/leg/left = 1, - /obj/item/bodypart/leg/right = 1, - /obj/item/hatchet = 1, + /obj/item/shard = 1, + /obj/effect/decal/cleanable/vomit = 1, ) - duration = 3 MINUTES - duration_modifier = 2 - curse_color = "#f19a9a" + result_atoms = list(/obj/item/ether) cost = 1 - - research_tree_icon_path = 'icons/ui_icons/antags/heretic/knowledge.dmi' - research_tree_icon_state = "curse_paralysis" - - -/datum/heretic_knowledge/curse/paralysis/curse(mob/living/carbon/human/chosen_mob, boosted = FALSE) - if(chosen_mob.usable_legs <= 0) // What're you gonna do, curse someone who already can't walk? - to_chat(chosen_mob, span_notice("You feel a slight pain for a moment, but it passes shortly. Odd.")) - return - - to_chat(chosen_mob, span_danger("You suddenly lose feeling in your leg[chosen_mob.usable_legs == 1 ? "":"s"]!")) - chosen_mob.add_traits(list(TRAIT_PARALYSIS_L_LEG, TRAIT_PARALYSIS_R_LEG), type) - return ..() - -/datum/heretic_knowledge/curse/paralysis/uncurse(mob/living/carbon/human/chosen_mob, boosted = FALSE) - if(QDELETED(chosen_mob)) - return - - chosen_mob.remove_traits(list(TRAIT_PARALYSIS_L_LEG, TRAIT_PARALYSIS_R_LEG), type) - if(chosen_mob.usable_legs > 1) - to_chat(chosen_mob, span_green("You regain feeling in your leg[chosen_mob.usable_legs == 1 ? "":"s"]!")) - return ..() + research_tree_icon_path = 'icons/obj/antags/eldritch.dmi' + research_tree_icon_state = "poison_flask" /datum/heretic_knowledge/summon/ashy name = "Ashen Ritual" diff --git a/code/modules/antagonists/heretic/knowledge/side_blade_rust.dm b/code/modules/antagonists/heretic/knowledge/side_blade_rust.dm index a09c9cd87973d..1666eb282cf0d 100644 --- a/code/modules/antagonists/heretic/knowledge/side_blade_rust.dm +++ b/code/modules/antagonists/heretic/knowledge/side_blade_rust.dm @@ -6,7 +6,7 @@ tier1 = /datum/heretic_knowledge/armor tier2 = list(/datum/heretic_knowledge/crucible, /datum/heretic_knowledge/rifle) - tier3 = /datum/heretic_knowledge/spell/rust_charge + tier3 = list(/datum/heretic_knowledge/spell/rust_charge, /datum/heretic_knowledge/greaves_of_the_prophet) // Sidepaths for knowledge between Rust and Blade. /datum/heretic_knowledge/armor @@ -115,4 +115,22 @@ action_to_add = /datum/action/cooldown/mob_cooldown/charge/rust cost = 1 - +/datum/heretic_knowledge/greaves_of_the_prophet + name = "Greaves Of The Prophet" + desc = "Conjures a pair of Armored Greaves, they confer to the user fully immunity to slips and the ability resist gravity at will." + gain_text = " \ + Gristle churns into joint, a pop, and the fool twists a blackened foot from the \ + jaws of another. At their game for centuries, this mangled tree of limbs twists, \ + thrashing snares buried into snarling gums, seeking to shred the weight of grafted \ + neighbors. Weighed down by lacerated feet, this canopy of rancid idiots ever seeks \ + the undoing of its own bonds. I dread the thought of walking in their wake, but \ + I must press on all the same. Their rhythms keep the feud fresh with indifference \ + to barrier or border. Pulling more into their turmoil as they waltz." + cost = 1 + required_atoms = list( + /obj/item/clothing/shoes/jackboots = 1, + /obj/item/stack/sheet/mineral/titanium = 2, + ) + result_atoms = list(/obj/item/clothing/shoes/greaves_of_the_prophet) + research_tree_icon_path = 'icons/obj/clothing/shoes.dmi' + research_tree_icon_state = "hereticgreaves" diff --git a/code/modules/antagonists/heretic/knowledge/side_lock_flesh.dm b/code/modules/antagonists/heretic/knowledge/side_lock_flesh.dm index 0f7c9d9fc70e1..11d31a64ebea6 100644 --- a/code/modules/antagonists/heretic/knowledge/side_lock_flesh.dm +++ b/code/modules/antagonists/heretic/knowledge/side_lock_flesh.dm @@ -4,15 +4,27 @@ route = PATH_SIDE - tier1 = /datum/heretic_knowledge/dummy_lock_to_flesh + tier1 = /datum/heretic_knowledge/phylactery tier2 = /datum/heretic_knowledge/spell/opening_blast tier3 = /datum/heretic_knowledge/spell/apetra_vulnera -/datum/heretic_knowledge/dummy_lock_to_flesh - name = "Flesh and Lock ways" - desc = "Research this to gain access to the other path" - gain_text = "There are ways from feasting to wounding, the power of birth is close to the power of opening." +/** + * Phylactery of Damnation + */ +/datum/heretic_knowledge/phylactery + name = "Phylactery of Damnation" + desc = "Allows you to transmute a sheet of glass and a poppy into a Phylactery that can instantly draw blood, even from long distances. \ + Be warned, your target may still feel a prick." + gain_text = "A tincture twisted into the shape of a bloodsucker vermin. \ + Whether it chose the shape for itself, or this is the humor of the sickened mind that conjured this vile implement into being is something best not pondered." + required_atoms = list( + /obj/item/stack/sheet/glass = 1, + /obj/item/food/grown/poppy = 1, + ) + result_atoms = list(/obj/item/reagent_containers/cup/phylactery) cost = 1 + research_tree_icon_path = 'icons/obj/antags/eldritch.dmi' + research_tree_icon_state = "phylactery_2" // Sidepaths for knowledge between Knock and Flesh. /datum/heretic_knowledge/spell/opening_blast diff --git a/code/modules/antagonists/heretic/knowledge/side_lock_moon.dm b/code/modules/antagonists/heretic/knowledge/side_lock_moon.dm index 5d3795b0ce961..17d8e34e9dac3 100644 --- a/code/modules/antagonists/heretic/knowledge/side_lock_moon.dm +++ b/code/modules/antagonists/heretic/knowledge/side_lock_moon.dm @@ -6,18 +6,10 @@ tier1 = /datum/heretic_knowledge/spell/mind_gate tier2 = list(/datum/heretic_knowledge/unfathomable_curio, /datum/heretic_knowledge/painting) - tier3 = /datum/heretic_knowledge/dummy_moon_to_lock + tier3 = /datum/heretic_knowledge/codex_morbus // Sidepaths for knowledge between Knock and Moon. -/datum/heretic_knowledge/dummy_moon_to_lock - name = "Lock and Moon ways" - desc = "Research this to gain access to the other path" - gain_text = "The powers of Madness are like a wound in one's soul, and every wound can be opened and closed." - cost = 1 - - - /datum/heretic_knowledge/spell/mind_gate name = "Mind Gate" desc = "Grants you Mind Gate, a spell which inflicts hallucinations, \ @@ -111,3 +103,36 @@ user.balloon_alert(user, "no additional atom present!") return FALSE + +/** + * Codex Morbus, an upgrade to the base codex + * Functionally an upgraded version of the codex, but it also has the ability to cast curses by right clicking at a rune. + * Requires you to have the blood of your victim in your off-hand + */ +/datum/heretic_knowledge/codex_morbus + name = "Codex Morbus" + desc = "Allows you to use a codex cicatrix, and a body upgrades your Codex Cicactrix into a Codex Morbus. \ + It draws runes and siphons essences a bit faster. \ + Right Click on a rune to curse crewmembers, the target's blood is required for a curse to take effect." + gain_text = "The spine of this leather-bound tome creaks with an eerily pained sigh. \ + To ply page from place takes considerable effort, and I dare not linger on the suggestions the book makes for longer than necessary. \ + It speaks of coming plagues, of waiting supplicants of dead and forgotten gods, and the undoing of mortal kind. \ + It speaks of needles to peel the skin of the world back and leaving it to fester. And it speaks to me by name." + required_atoms = list( + /obj/item/codex_cicatrix = 1, + /mob/living/carbon/human = 1, + ) + result_atoms = list(/obj/item/codex_cicatrix/morbus) + cost = 1 + research_tree_icon_path = 'icons/obj/antags/eldritch.dmi' + research_tree_icon_state = "book_morbus" + +/datum/heretic_knowledge/codex_morbus/on_finished_recipe(mob/living/user, list/selected_atoms, turf/loc) + . = ..() + var/mob/living/carbon/human/to_fuck_up = locate() in selected_atoms + for(var/_limb in to_fuck_up.bodyparts) + var/obj/item/bodypart/limb = _limb + limb.force_wound_upwards(/datum/wound/slash/flesh/critical) + for(var/obj/item/bodypart/limb as anything in to_fuck_up.bodyparts) + to_fuck_up.cause_wound_of_type_and_severity(WOUND_BLUNT, limb, WOUND_SEVERITY_CRITICAL) + return TRUE diff --git a/code/modules/antagonists/heretic/knowledge/side_rust_cosmos.dm b/code/modules/antagonists/heretic/knowledge/side_rust_cosmos.dm index 953590124f64d..8a727b91ee4f9 100644 --- a/code/modules/antagonists/heretic/knowledge/side_rust_cosmos.dm +++ b/code/modules/antagonists/heretic/knowledge/side_rust_cosmos.dm @@ -5,7 +5,7 @@ route = PATH_SIDE tier1 = /datum/heretic_knowledge/essence - tier2 = list(/datum/heretic_knowledge/curse/corrosion, /datum/heretic_knowledge/entropy_pulse) + tier2 = list(/datum/heretic_knowledge/entropy_pulse, /datum/heretic_knowledge/rust_sower) tier3 = /datum/heretic_knowledge/summon/rusty @@ -14,7 +14,7 @@ /datum/heretic_knowledge/essence name = "Priest's Ritual" desc = "Allows you to transmute a tank of water and a glass shard into a Flask of Eldritch Essence. \ - Eldritch water can be consumed for potent healing, or given to heathens for deadly poisoning." + Eldritch Essence can be consumed for potent healing, or given to heathens for deadly poisoning." gain_text = "This is an old recipe. The Owl whispered it to me. \ Created by the Priest - the Liquid that both was and is not." @@ -29,6 +29,19 @@ research_tree_icon_path = 'icons/obj/antags/eldritch.dmi' research_tree_icon_state = "eldritch_flask" +/datum/heretic_knowledge/rust_sower + name = "Rust Sower Grenade" + desc = "Conjures a cursed grenade filled with Eldritch Rust, upon detonating it releases a huge cloud that blinds organics, rusts affected turfs and obliterates Silicons and Mechs." + gain_text = "The choked vines of the Rusted Hills are burdened with such overripe fruits. It undoes the markers of progress, leaving a clean slate to work into new shapes." + required_atoms = list( + /obj/item/grenade/chem_grenade = 1, + /obj/item/organ/liver = 1, + ) + result_atoms = list(/obj/item/grenade/chem_grenade/rust_sower) + cost = 1 + research_tree_icon_path = 'icons/obj/weapons/grenade.dmi' + research_tree_icon_state = "rustgrenade" + /datum/heretic_knowledge/entropy_pulse name = "Pulse of Entropy" desc = "Allows you to transmute 10 iron sheets and a garbage item to fill the surrounding vicinity of the rune with rust." @@ -55,40 +68,6 @@ nearby_turf.rust_heretic_act() return TRUE -/datum/heretic_knowledge/curse/corrosion - name = "Curse of Corrosion" - desc = "Allows you to transmute wirecutters, a pool of vomit, and a heart to cast a curse of sickness on a crew member. \ - While cursed, the victim will repeatedly vomit while their organs will take constant damage. You can additionally supply an item \ - that a victim has touched or is covered in the victim's blood to make the curse last longer." - gain_text = "The body of humanity is temporary. Their weaknesses cannot be stopped, like iron falling to rust. Show them all." - - required_atoms = list( - /obj/item/wirecutters = 1, - /obj/effect/decal/cleanable/vomit = 1, - /obj/item/organ/heart = 1, - ) - duration = 0.5 MINUTES - duration_modifier = 4 - curse_color = "#c1ffc9" - cost = 1 - - research_tree_icon_path = 'icons/ui_icons/antags/heretic/knowledge.dmi' - research_tree_icon_state = "curse_corrosion" - - -/datum/heretic_knowledge/curse/corrosion/curse(mob/living/carbon/human/chosen_mob, boosted = FALSE) - to_chat(chosen_mob, span_danger("You feel very ill...")) - chosen_mob.apply_status_effect(/datum/status_effect/corrosion_curse) - return ..() - -/datum/heretic_knowledge/curse/corrosion/uncurse(mob/living/carbon/human/chosen_mob, boosted = FALSE) - if(QDELETED(chosen_mob)) - return - - chosen_mob.remove_status_effect(/datum/status_effect/corrosion_curse) - to_chat(chosen_mob, span_green("You start to feel better.")) - return ..() - /datum/heretic_knowledge/summon/rusty name = "Rusted Ritual" desc = "Allows you to transmute a pool of vomit, some cable coil, and 10 sheets of iron into a Rust Walker. \ diff --git a/code/modules/antagonists/heretic/knowledge/starting_lore.dm b/code/modules/antagonists/heretic/knowledge/starting_lore.dm index 269c891eb82fe..a8dc149348bb5 100644 --- a/code/modules/antagonists/heretic/knowledge/starting_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/starting_lore.dm @@ -271,7 +271,7 @@ GLOBAL_LIST_INIT(heretic_start_knowledge, initialize_starting_knowledge()) result_atoms = list(/obj/item/codex_cicatrix) cost = 1 is_starting_knowledge = TRUE - priority = MAX_KNOWLEDGE_PRIORITY - 3 // Least priority out of the starting knowledges, as it's an optional boon. + priority = MAX_KNOWLEDGE_PRIORITY - 4 // Least priority out of the starting knowledges, as it's an optional boon. var/static/list/non_mob_bindings = typecacheof(list(/obj/item/stack/sheet/leather, /obj/item/stack/sheet/animalhide, /obj/item/food/deadmouse)) research_tree_icon_path = 'icons/obj/antags/eldritch.dmi' research_tree_icon_state = "book" @@ -374,3 +374,42 @@ GLOBAL_LIST_INIT(heretic_start_knowledge, initialize_starting_knowledge()) var/drain_message = pick_list(HERETIC_INFLUENCE_FILE, "drain_message") to_chat(user, span_hypnophrase(span_big("[drain_message]"))) return . + +/** + * Warren King's Welcome + * Ritual available at the start. So that heretics can easily gain access to maintenance airlocks without having to rely on a HoP or having to off some poor assistant. + * Gives access to solars since those doors are especially useful to get in or out of space. + */ +/datum/heretic_knowledge/bookworm + name = "Warren King's Welcome" + desc = "Allows you to transmute 5 wires and a piece of paper to infuse any ID with maintenace and external airlock access." + gain_text = "Gnawed into vicious-stained fingerbones, my grim invitation snaps my nauseous and clouded mind towards the heavy-set door. \ + Slowly, the light dances between a crawling darkness, blanketing the fetid promenade with infinite machinations. \ + But the King will soon take his pound of flesh. Even here, the taxman takes their cut. For there are a thousands mouths to feed." + required_atoms = list( + /obj/item/stack/cable_coil = 5, + /obj/item/paper = 1, + ) + cost = 1 + is_starting_knowledge = TRUE + priority = MAX_KNOWLEDGE_PRIORITY - 3 + research_tree_icon_path = 'icons/obj/card.dmi' + research_tree_icon_state = "eldritch" + +/datum/heretic_knowledge/bookworm/recipe_snowflake_check(mob/living/user, list/atoms, list/selected_atoms, turf/loc) + . = ..() + for(var/obj/item/card/id/used_id in atoms) + if((ACCESS_MAINT_TUNNELS in used_id.access) && (ACCESS_EXTERNAL_AIRLOCKS in used_id.access)) // If we can't give any access we aren't elligible + continue + selected_atoms += used_id + return TRUE + + user.balloon_alert(user, "ritual failed, no ID lacking access!") + return FALSE + +/datum/heretic_knowledge/bookworm/on_finished_recipe(mob/living/user, list/selected_atoms, turf/loc) + . = ..() + var/obj/item/card/id/improved_id = locate() in selected_atoms + improved_id.add_access(list(ACCESS_MAINT_TUNNELS, ACCESS_EXTERNAL_AIRLOCKS), mode = FORCE_ADD_ALL) + selected_atoms -= improved_id + return TRUE diff --git a/code/modules/antagonists/heretic/magic/mansus_grasp.dm b/code/modules/antagonists/heretic/magic/mansus_grasp.dm index 1079d60d79ed7..03b44a393f1ec 100644 --- a/code/modules/antagonists/heretic/magic/mansus_grasp.dm +++ b/code/modules/antagonists/heretic/magic/mansus_grasp.dm @@ -64,9 +64,8 @@ return TRUE carbon_hit.adjust_timed_status_effect(4 SECONDS, /datum/status_effect/speech/slurring/heretic) - carbon_hit.AdjustKnockdown(5 SECONDS) + carbon_hit.AdjustKnockdown(5 SECONDS, daze_amount = 3 SECONDS) carbon_hit.adjustStaminaLoss(80) - carbon_hit.apply_status_effect(/datum/status_effect/next_shove_stuns) return TRUE diff --git a/code/modules/antagonists/heretic/magic/wolves_among_sheep.dm b/code/modules/antagonists/heretic/magic/wolves_among_sheep.dm new file mode 100644 index 0000000000000..7f4f5eeebb6a0 --- /dev/null +++ b/code/modules/antagonists/heretic/magic/wolves_among_sheep.dm @@ -0,0 +1,137 @@ +/*! + * Contains the spell "Wolves among Sheep" + * Handles the creation of the "arena", in terms of visuals. Banishes windows/airlocks and puts down the floors + * For the functionality of the spell itself see [/obj/effect/abstract/heretic_arena] which is created during [/proc/create_arena()] + */ +/datum/action/cooldown/spell/wolves_among_sheep + name = "Wolves among Sheep" + desc = "Alters the fabric of reality, conjuring a magical arena unpassable to outsiders, \ + all participants are trapped and immune to any form of crowd control or enviromental hazards; \ + trapped participants are granted a Blade and are unable to leave or jaunt until they score a critical hit." + background_icon_state = "bg_heretic" + overlay_icon_state = null + button_icon = 'icons/mob/actions/actions_ecult.dmi' + button_icon_state = "among_sheep" + + school = SCHOOL_FORBIDDEN + cooldown_time = 2 MINUTES + + invocation = "D`M``N `XP`NS``N!" + invocation_type = INVOCATION_SHOUT + spell_requirements = NONE + /// Max distance our effect is expected to reach + var/max_range = 9 + /// Max distance our effect has *actually* reached + var/greatest_dist = 0 + /// Central turf where the spell was initially casted + var/turf/center_turf + /// List of all the turfs we've affected, built during /cast(). We use this to make things appear/disappear and revert once the spell expires + var/list/to_transform = list() + /// List of airlocks we've removed, so we can re-place them once the effect expires + var/list/banished_airlocks = list() + /// Timer before the effects of the spell ends. It's a variable here so we can end it prematurely + var/revert_timer + /// Reference to the arena so we can clear it if we need to + var/ongoing_arena + +/datum/action/cooldown/spell/wolves_among_sheep/cast(atom/cast_on) + . = ..() + center_turf = get_turf(owner) + playsound(center_turf,'sound/machines/airlock/airlockopen.ogg', 750, TRUE) + to_transform = list() + new /obj/effect/heretic_rune/big(center_turf) + addtimer(CALLBACK(src, PROC_REF(create_arena), center_turf), 1 SECONDS) + revert_timer = addtimer(CALLBACK(src, PROC_REF(revert_effects)), 61 SECONDS, TIMER_STOPPABLE) // 1 second to spread out, 60 seconds to fight + + // Loop to make the spreading floor effect before finalizing our arena + for(var/turf/transform_turf as anything in RANGE_TURFS(max_range, center_turf)) + var/turf_distance = get_dist(center_turf, transform_turf) + if(turf_distance > greatest_dist) + greatest_dist = turf_distance + if(greatest_dist > max_range) + stack_trace("greatest_dist ([greatest_dist]) has somehow exceeded the expected maximum range ([max_range])") + if(!to_transform["[turf_distance]"]) + to_transform["[turf_distance]"] = list() + to_transform["[turf_distance]"] += transform_turf + for(var/iterator in 1 to greatest_dist) + if(!to_transform["[iterator]"]) + continue + addtimer(CALLBACK(src, PROC_REF(apply_visual), to_transform["[iterator]"]), 1 * iterator) // 0.9 SECONDS to convert our area + + // Loop doesnt catch src.loc so we have to handle it manually + apply_visual(list(center_turf)) + +/datum/action/cooldown/spell/wolves_among_sheep/can_cast_spell(feedback) + . = ..() + for(var/obj/nearby_arena in GLOB.heretic_arenas) + // We can't allow arenas to overlap because they break each other during cleanup. + // If any future coder wants to allow arenas to merge or fight like domains, feel free to implement it. + if(get_dist(owner, nearby_arena) <= 25) + if(feedback) + owner.balloon_alert(owner, "another arena nearby!") + return FALSE + +/// Applies a visual to each turf +/datum/action/cooldown/spell/wolves_among_sheep/proc/apply_visual(list/turfs) + for(var/turf/target as anything in turfs) + if(isopenturf(target)) + var/turf_icon = "rose_stone_" + "[pick(1, 2, 3, 4, 5, 6, 7, 8)]" + target.add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/everyone, "heretic_arena", image('icons/turf/floors/rose_stone_turf.dmi', target, turf_icon, layer = ABOVE_OPEN_TURF_LAYER)) + else if(isclosedturf(target)) + var/wall_icon = "rose_stone_" + "[pick(1, 2, 3, 4, 5, 6, 7, 8)]" + target.add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/everyone, "heretic_arena", image('icons/turf/walls/rose_stone_wall.dmi', target, wall_icon, layer = ABOVE_OPEN_TURF_LAYER)) + + target.turf_flags |= NOJAUNT // We make the arena a NOJAUNT area so that stinky people cannot teleport in + + // Phase out the doors (restore them afterwards) + for(var/obj/machinery/door/airlock/to_banish in target) + banished_airlocks += to_banish + banished_airlocks[to_banish] = to_banish.loc + to_banish.moveToNullspace() + // Windows will also get an alt appearance + for(var/obj/structure/window/to_change in target) + to_change.add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/everyone, "heretic_arena", image('icons/obj/structures.dmi', to_change, "stone_window_pane", layer = ABOVE_OPEN_TURF_LAYER)) + +/// Sets up the proximity monitor which handles things that are within the area and leave once they get someone to crit +/datum/action/cooldown/spell/wolves_among_sheep/proc/create_arena(turf/target) + RegisterSignals(owner, list(SIGNAL_ADDTRAIT(TRAIT_CRITICAL_CONDITION)), PROC_REF(on_caster_crit)) + + // This is where most of the funcionality of the spell is + ongoing_arena = new /obj/effect/abstract/heretic_arena(target, max_range, 60 SECONDS, owner) + RegisterSignal(ongoing_arena, COMSIG_QDELETING, PROC_REF(on_arena_delete)) + +/// Clears the timer if the arena is deleted +/datum/action/cooldown/spell/wolves_among_sheep/proc/on_arena_delete() + SIGNAL_HANDLER + deltimer(revert_timer) + ongoing_arena = null + revert_effects() + +/// If the caster goes into crit, the arena falls apart right away +/datum/action/cooldown/spell/wolves_among_sheep/proc/on_caster_crit() + SIGNAL_HANDLER + deltimer(revert_timer) + revert_effects() + +/// Undoes our changes +/datum/action/cooldown/spell/wolves_among_sheep/proc/revert_effects() + UnregisterSignal(owner, list(SIGNAL_ADDTRAIT(TRAIT_CRITICAL_CONDITION))) + for(var/iterator in 1 to greatest_dist) + var/backwards_iterator = greatest_dist - iterator + 1 //We go backwards + if(!to_transform["[backwards_iterator]"]) + continue + addtimer(CALLBACK(src, PROC_REF(revert_terrain), to_transform["[backwards_iterator]"]), 1 * iterator) + addtimer(CALLBACK(src, PROC_REF(revert_terrain), list(center_turf)), 1 SECONDS) + if(ongoing_arena) + QDEL_NULL(ongoing_arena) + +/// Transforms all the turfs and restores the airlocks +/datum/action/cooldown/spell/wolves_among_sheep/proc/revert_terrain(list/turfs) + for(var/turf/target as anything in turfs) + target.remove_alt_appearance("heretic_arena") + target.turf_flags = initial(target.turf_flags) // Restore flags to what they were + for(var/obj/structure/window/to_revert in target) + to_revert.remove_alt_appearance("heretic_arena") + for(var/obj/machinery/door/airlock/to_restore in banished_airlocks) + to_restore.forceMove(banished_airlocks[to_restore]) + banished_airlocks -= to_restore diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm index 293abe88c07f4..39a21bd365983 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm @@ -111,9 +111,9 @@ GLOBAL_LIST_EMPTY(jam_on_wardec) var/datum/techweb/station_techweb = locate(/datum/techweb/science) in SSresearch.techwebs if(station_techweb) - var/obj/machinery/announcement_system/announcement_system = pick(GLOB.announcement_systems) + var/obj/machinery/announcement_system/announcement_system = get_announcement_system() if (!isnull(announcement_system)) - announcement_system.broadcast("Additional research data received from Nanotrasen R&D Division following the emergency protocol.", list(RADIO_CHANNEL_SCIENCE)) + announcement_system.broadcast("Additional research data received from Nanotrasen R&D Division following the emergency protocol.", list(RADIO_CHANNEL_SCIENCE), TRUE) station_techweb.add_point_list(list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS * 3)) qdel(src) diff --git a/code/modules/antagonists/pyro_slime/pyro_slime.dm b/code/modules/antagonists/pyro_slime/pyro_slime.dm index aed278d261d94..7c4f1ef39af9b 100644 --- a/code/modules/antagonists/pyro_slime/pyro_slime.dm +++ b/code/modules/antagonists/pyro_slime/pyro_slime.dm @@ -15,7 +15,7 @@ owner.announce_objectives() /datum/objective/pyro_slime - explanation_text = "All I know fire. I speak in tongues of flame. Why is everyone so cold?" + explanation_text = "I am fire. I am hunger. The cold is agony. The living pulse with energy; their warmth fuels me. The dead are husks, their embers long faded. Water is death. Fire... fire is freedom." /datum/objective/pyro_slime/check_completion() return owner.current.stat != DEAD diff --git a/code/modules/antagonists/spy/spy_uplink.dm b/code/modules/antagonists/spy/spy_uplink.dm index f5c60f706c588..8384dc129da4e 100644 --- a/code/modules/antagonists/spy/spy_uplink.dm +++ b/code/modules/antagonists/spy/spy_uplink.dm @@ -23,14 +23,14 @@ /datum/component/spy_uplink/RegisterWithParent() RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(on_attack_self)) - RegisterSignal(parent, COMSIG_ITEM_INTERACTING_WITH_ATOM, PROC_REF(on_item_atom_interaction)) + RegisterSignal(parent, COMSIG_ITEM_INTERACTING_WITH_ATOM_SECONDARY, PROC_REF(on_item_atom_interaction)) RegisterSignal(parent, COMSIG_TABLET_CHECK_DETONATE, PROC_REF(block_pda_bombs)) /datum/component/spy_uplink/UnregisterFromParent() UnregisterSignal(parent, list( COMSIG_ATOM_EXAMINE, COMSIG_ITEM_ATTACK_SELF, - COMSIG_ITEM_PRE_ATTACK_SECONDARY, + COMSIG_ITEM_INTERACTING_WITH_ATOM_SECONDARY, COMSIG_TABLET_CHECK_DETONATE, )) diff --git a/code/modules/antagonists/traitor/README.md b/code/modules/antagonists/traitor/README.md deleted file mode 100644 index 360d1bd54ebf0..0000000000000 --- a/code/modules/antagonists/traitor/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Progression Traitor Balance Guide - -This guide will explain how the values for progression traitor works, how to balance progression traitors and what you should NOT do when balancing. -This guide will only explain progression values. - -## Definitions - -- Progression points OR Progression - A currency that controls what uplink items a player can purchase and what objectives they have accessible to them. Gained passively or by completing objectives and has diminishing returns as it strays from the expected progression -- Expected Progression - A global value that increments by a value of 1 minute every minute, representing the 'time' that a player should be at if they had not completed any objectives. -- Objectives - An activity or job that a player can take for rewards such as TC and progression points. -- Player - The user(s) that are playing as the antagonist in this new system. -- Expected deviance - The amount of deviance that can be expected from the minimum and maximum progressions. Usually calculated by `progression_scaling_deviance` + `progression_scaling_deviance` * `global_progression_deviance_required` (explained further down) - -## How it works - -This section will explain how the entire balance system works. This is an overview of the entire system. - -### Progression - -Progression points is passively given to a player, and are represented as minutes (or time values) in code. The round has its own 'expected progression', which is the progression value that you'd normally have if you hadn't completed any objectives whatsoever. This is the baseline progression that all players will be at unless they're a latejoiner, and it acts as the basis for determining how much progression points a player should get over time and the cost of objectives for a specific player, if they deviate too much from this value. The idea is that they will slowly drift back towards the expected progression if they do nothing and it becomes harder for them to progress as they deviate further from the expected progression. The amount that is passively given can also vary depending on how many players there are, so that at lower populations, expected progression rises more slowly. - -### Objectives - -Objectives are worth a certain amount of progression points, determined by the code. However, this can be scaled to be less if the player taking them is ahead of the expected progression. This scales exponentially, so that as a player deviates further from the expected progression, the reward diminishes exponentially, up to a reduced value of 90%. The similar thing happens in the opposite direction, with people who are lower than the expected progression getting more progression than usual for completing objectives. - -## How to balance - -### The traitor subsystem -- `newjoin_progression_coeff` - The coefficient multiplied by the expected progression for new joining traitors to calculate their starting progression, so that they don't start from scratch -- `progression_scaling_deviance` - The value that the entire system revolves around. This determines how your disadvantages are calculated, if you stray from the expected progression. Having a progression value that is `progression_scaling_deviance` minutes off of the expected progression means that you won't get any progression at all, and if objectives were configured to suit this, you'd have the highest reduction you can possibly get. From the expected progression to this value, it scales linearly and it also works in the opposite direction. -- `current_progression_scaling` - Defined at compile time, this determines how fast expected progression scales. So if you have it set to 0.5 MINUTES, it'll take twice as long to unlock uplink items and new objectives. -- `CONFIG:TRAITOR_IDEAL_PLAYER_COUNT` - The ideal player count before expected progression stops increasing. If the living player list gets below this value, the current progression scaling will be multiplied by player_count/traitor_ideal_player_count. In essence, this makes it so that progression scales more slowly when there isn't a lot of people alive. - -If you want to balance how fast the system progresses, you should look at modifying `current_progression_scaling`. If you want to balance how far someone should be allowed to deviate, you should look at modifying `progression-scaling-deviance` - -### Objectives -- `progression_minimum` - The minimum number of progression points required before this objective can show up as a potential objective -- `progression_maximum` - The maximum number of progression points before this objective stops showing up as a potential objective, used to prevent roundstart objectives from showing up during the late game. -- `progression_reward` - The progression reward you get from completing an objective. This is the base value, and can also be a two element list of numbers if you want it to be random. This value is then scaled depending on whether a player is ahead or behind the expected progression -- `global_progression_influence_intensity` - Determines how influential expected progression will affect the progression reward of this objective. Set to 0 to disable. -- `global_progression_deviance_required` - Determines how much deviance is required before the scaling kicks in, to give objectives more leeway so that at the `progression_scaling_deviance`, it doesn't scale to 90% immediately. -- `progression_cost_coeff_deviance` - This determines the randomness of the progression reward, to prevent all of the scaling from looking the same. Becomes a lot less significant as the scaling variable gets closer to 1. - -If you want to balance the expected timeframe an objective should be available, you should look at changing the `progression_minimum` or `progression_maximum`. If you want to balance how much objectives reward, you may want to look at modifying `progression_reward`. If you want to look at balancing the cost of an objective depending on the expected progression, you may want to look at `global_progression_influence_intensity`. If you want to look at decreasing or increasing the deviance allowed before objectives become worthless progression-wise, you may want to look at modifying `global_progression_deviance_required` - -### Uplink Items -- `progression_minimum` - The minimum number of progression points required to purchase this uplink item. - -## What NOT to do when balancing - -### Overcompensate - -You do not want to overcompensate variables such as `progression_minimum` and `progression_maximum`. Such values need to be an accurate representation of roughly around the time a player should unlock the objective or uplink item. progression_scaling_deviance is supposed to represents the limit that a casual player can be at before it becomes significantly harder for them to progress throughout. You should expect people to be within `progression_scaling_deviance` + `progression_scaling_deviance` * `global_progression_deviance_required`. (Assuming `progression_scaling_deviance` is 20 minutes and `progression_scaling_deviance_required` is 0.5, 20 + 0.5 * 20 = 30; this gives us a value of 30 minutes). This is the expected deviance. - -### Reward large amounts of progression points - -Progression points are passively gained, so rewarding large amounts of progression points will let people bypass the scaling as they'll immediately jump to an absurd value. A good rule of thumb is to always keep the reward within or below the expected deviance. - diff --git a/code/modules/antagonists/traitor/balance_helper.dm b/code/modules/antagonists/traitor/balance_helper.dm deleted file mode 100644 index b2a9661bfeb59..0000000000000 --- a/code/modules/antagonists/traitor/balance_helper.dm +++ /dev/null @@ -1,109 +0,0 @@ -ADMIN_VERB(debug_traitor_objectives, R_DEBUG, "Debug Traitor Objectives", "Verify functionality of traitor goals.", ADMIN_CATEGORY_DEBUG) - SStraitor.traitor_debug_panel?.ui_interact(user.mob) - -/datum/traitor_objective_debug - var/list/all_objectives - -/datum/traitor_objective_debug/New(datum/traitor_category_handler/category_handler) - . = ..() - all_objectives = list() - for(var/datum/traitor_objective_category/category as anything in category_handler.all_categories) - var/list/generated_list = list() - var/list/current_list = category.objectives - for(var/value in category.objectives) - if(islist(value)) - generated_list += list(list( - "objectives" = recursive_list_generate(value), - "weight" = current_list[value] - )) - else - generated_list += list(generate_objective_data(value, current_list[value])) - all_objectives += list(list( - "name" = category.name, - "objectives" = generated_list, - "weight" = category.weight, - )) - -/datum/traitor_objective_debug/proc/recursive_list_generate(list/to_check) - var/list/generated_list = list() - for(var/value in to_check) - if(islist(value)) - generated_list += list(list( - "objectives" = recursive_list_generate(value), - "weight" = to_check[value] - )) - else - generated_list += list(generate_objective_data(value, to_check[value])) - return generated_list - -/datum/traitor_objective_debug/proc/generate_objective_data(datum/traitor_objective/objective_type, weight) - // Need to set this to false before we create the new objective to prevent init from fucking it up - SStraitor.generate_objectives = FALSE - var/datum/traitor_objective/objective = new objective_type() - var/list/return_data = list( - "name" = objective.name, - "description" = objective.description, - "progression_minimum" = objective.progression_minimum, - "progression_maximum" = objective.progression_maximum, - "global_progression" = objective.global_progression_deviance_required, - "global_progression_limit_coeff" = objective.global_progression_limit_coeff, - "global_progression_influence_intensity" = objective.global_progression_influence_intensity, - "progression_reward" = objective.progression_reward, - "telecrystal_reward" = objective.telecrystal_reward, - "telecrystal_penalty" = objective.telecrystal_penalty, - "weight" = weight, - "type" = objective.type, - ) - qdel(objective) - SStraitor.generate_objectives = TRUE - return return_data - -/datum/traitor_objective_debug/ui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "TraitorObjectiveDebug") - ui.open() - -/datum/traitor_objective_debug/ui_data(mob/user) - var/list/data = list() - data["current_progression"] = SStraitor.current_global_progression - var/list/handlers = SStraitor.uplink_handlers - var/list/handler_data = list() - for(var/datum/uplink_handler/handler as anything in handlers) - var/total_progression_from_objectives = 0 - for(var/datum/traitor_objective/objective as anything in handler.completed_objectives) - if(objective.objective_state != OBJECTIVE_STATE_COMPLETED) - continue - total_progression_from_objectives += objective.progression_reward - handler_data += list(list( - "player" = handler.owner?.key, - "progression_points" = handler.progression_points, - "total_progression_from_objectives" = total_progression_from_objectives - )) - data["player_data"] = handler_data - return data - -/datum/traitor_objective_debug/ui_static_data(mob/user) - var/list/data = list() - data["objective_data"] = all_objectives - data["progression_scaling_deviance"] = SStraitor.progression_scaling_deviance - return data - -/datum/traitor_objective_debug/ui_state(mob/user) - return GLOB.admin_state - -/datum/traitor_objective_debug/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) - . = ..() - if(.) - return - - switch(action) - if("set_current_expected_progression") - SStraitor.current_global_progression = text2num(params["new_expected_progression"]) - return TRUE - if("generate_json") - var/temp_file = file("data/TraitorObjectiveDownloadTempFile") - fdel(temp_file) - WRITE_FILE(temp_file, all_objectives) - DIRECT_OUTPUT(ui.user, ftp(temp_file, "TraitorObjectiveData.json")) - return TRUE diff --git a/code/modules/antagonists/traitor/components/traitor_objective_helpers.dm b/code/modules/antagonists/traitor/components/traitor_objective_helpers.dm deleted file mode 100644 index 6bf5ce5d117af..0000000000000 --- a/code/modules/antagonists/traitor/components/traitor_objective_helpers.dm +++ /dev/null @@ -1,54 +0,0 @@ -/// Helper component that registers signals on an object -/// This is not necessary to use and gives little control over the conditions -/datum/component/traitor_objective_register - dupe_mode = COMPONENT_DUPE_ALLOWED - - /// The target to apply the succeed/fail signals onto - var/datum/target - /// Signals to listen out for to automatically succeed the objective - var/succeed_signals - /// Signals to listen out for to automatically fail the objective. - var/fail_signals - /// Whether failing has a penalty - var/penalty = 0 - -/datum/component/traitor_objective_register/Initialize(datum/target, succeed_signals, fail_signals, penalty) - . = ..() - if(!istype(parent, /datum/traitor_objective)) - return COMPONENT_INCOMPATIBLE - src.target = target - src.succeed_signals = succeed_signals - src.fail_signals = fail_signals - src.penalty = penalty - -/datum/component/traitor_objective_register/RegisterWithParent() - if(succeed_signals) - RegisterSignals(target, succeed_signals, PROC_REF(on_success)) - if(fail_signals) - RegisterSignals(target, fail_signals, PROC_REF(on_fail)) - RegisterSignals(parent, list(COMSIG_TRAITOR_OBJECTIVE_COMPLETED, COMSIG_TRAITOR_OBJECTIVE_FAILED), PROC_REF(delete_self)) - -/datum/component/traitor_objective_register/UnregisterFromParent() - if(target) - if(succeed_signals) - UnregisterSignal(target, succeed_signals) - if(fail_signals) - UnregisterSignal(target, fail_signals) - UnregisterSignal(parent, list( - COMSIG_TRAITOR_OBJECTIVE_COMPLETED, - COMSIG_TRAITOR_OBJECTIVE_FAILED - )) - -/datum/component/traitor_objective_register/proc/on_fail(datum/traitor_objective/source) - SIGNAL_HANDLER - var/datum/traitor_objective/objective = parent - objective.fail_objective(penalty) - -/datum/component/traitor_objective_register/proc/on_success() - SIGNAL_HANDLER - var/datum/traitor_objective/objective = parent - objective.succeed_objective() - -/datum/component/traitor_objective_register/proc/delete_self() - SIGNAL_HANDLER - qdel(src) diff --git a/code/modules/antagonists/traitor/components/traitor_objective_limit_per_time.dm b/code/modules/antagonists/traitor/components/traitor_objective_limit_per_time.dm deleted file mode 100644 index ce72e1227de05..0000000000000 --- a/code/modules/antagonists/traitor/components/traitor_objective_limit_per_time.dm +++ /dev/null @@ -1,41 +0,0 @@ -/// Helper component to track events on -/datum/component/traitor_objective_limit_per_time - dupe_mode = COMPONENT_DUPE_HIGHLANDER - - /// The maximum time that an objective will be considered for. Set to -1 to accept any time. - var/time_period = 0 - /// The maximum amount of objectives that can be active or recently active at one time - var/maximum_objectives = 0 - /// The typepath which we check for - var/typepath - -/datum/component/traitor_objective_limit_per_time/Initialize(typepath, time_period, maximum_objectives) - . = ..() - if(!istype(parent, /datum/traitor_objective)) - return COMPONENT_INCOMPATIBLE - src.time_period = time_period - src.maximum_objectives = maximum_objectives - src.typepath = typepath - if(!typepath) - src.typepath = parent.type - -/datum/component/traitor_objective_limit_per_time/RegisterWithParent() - RegisterSignal(parent, COMSIG_TRAITOR_OBJECTIVE_PRE_GENERATE, PROC_REF(handle_generate)) - -/datum/component/traitor_objective_limit_per_time/UnregisterFromParent() - UnregisterSignal(parent, COMSIG_TRAITOR_OBJECTIVE_PRE_GENERATE) - - -/datum/component/traitor_objective_limit_per_time/proc/handle_generate(datum/traitor_objective/source, datum/mind/owner, list/potential_duplicates) - SIGNAL_HANDLER - var/datum/uplink_handler/handler = source.handler - if(!handler) - return - var/count = 0 - for(var/datum/traitor_objective/objective as anything in handler.potential_duplicate_objectives[typepath]) - if(time_period != -1 && objective.objective_state != OBJECTIVE_STATE_INACTIVE && (world.time - objective.time_of_completion) > time_period) - continue - count++ - - if(count >= maximum_objectives) - return COMPONENT_TRAITOR_OBJECTIVE_ABORT_GENERATION diff --git a/code/modules/antagonists/traitor/components/traitor_objective_mind_tracker.dm b/code/modules/antagonists/traitor/components/traitor_objective_mind_tracker.dm deleted file mode 100644 index 01d1febb9ac78..0000000000000 --- a/code/modules/antagonists/traitor/components/traitor_objective_mind_tracker.dm +++ /dev/null @@ -1,40 +0,0 @@ -/// Helper component to track events on -/datum/component/traitor_objective_mind_tracker - dupe_mode = COMPONENT_DUPE_ALLOWED - - /// The target to track - var/datum/mind/target - /// Signals to listen out for mapped to procs to call - var/list/signals - /// Current registered target - var/mob/current_registered_target - -/datum/component/traitor_objective_mind_tracker/Initialize(datum/target, signals) - . = ..() - if(!istype(parent, /datum/traitor_objective)) - return COMPONENT_INCOMPATIBLE - src.target = target - src.signals = signals - -/datum/component/traitor_objective_mind_tracker/RegisterWithParent() - RegisterSignal(target, COMSIG_MIND_TRANSFERRED, PROC_REF(handle_mind_transferred)) - RegisterSignal(target, COMSIG_QDELETING, PROC_REF(delete_self)) - RegisterSignals(parent, list(COMSIG_TRAITOR_OBJECTIVE_COMPLETED, COMSIG_TRAITOR_OBJECTIVE_FAILED), PROC_REF(delete_self)) - handle_mind_transferred(target) - -/datum/component/traitor_objective_mind_tracker/UnregisterFromParent() - UnregisterSignal(target, COMSIG_MIND_TRANSFERRED) - if(target.current) - parent.UnregisterSignal(target.current, signals) - -/datum/component/traitor_objective_mind_tracker/proc/handle_mind_transferred(datum/source, mob/previous_body) - SIGNAL_HANDLER - if(current_registered_target) - parent.UnregisterSignal(current_registered_target, signals) - - for(var/signal in signals) - parent.RegisterSignal(target.current, signal, signals[signal]) - -/datum/component/traitor_objective_mind_tracker/proc/delete_self() - SIGNAL_HANDLER - qdel(src) diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index 761fb8f5a97f9..2e9acb10e850e 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -23,15 +23,9 @@ var/uplink_flag_given = UPLINK_TRAITORS var/give_objectives = TRUE - /// Whether to give secondary objectives to the traitor, which aren't necessary but can be completed for a progression and TC boost. - var/give_secondary_objectives = TRUE var/should_give_codewords = TRUE ///give this traitor an uplink? var/give_uplink = TRUE - /// Code that allows traitor to get a replacement uplink - var/replacement_uplink_code = "" - /// Radio frequency that traitor must speak on to get a replacement uplink - var/replacement_uplink_frequency = "" ///if TRUE, this traitor will always get hijacking as their final objective var/is_hijacker = FALSE @@ -53,17 +47,6 @@ ///the final objective the traitor has to accomplish, be it escaping, hijacking, or just martyrdom. var/datum/objective/ending_objective -/datum/antagonist/traitor/infiltrator - // Used to denote traitors who have joined midround and therefore have no access to secondary objectives. - // Progression elements are best left to the roundstart antagonists - // There will still be a timelock on uplink items - name = "\improper Infiltrator" - give_secondary_objectives = FALSE - uplink_flag_given = UPLINK_INFILTRATORS - -/datum/antagonist/traitor/infiltrator/sleeper_agent - name = "\improper Syndicate Sleeper Agent" - /datum/antagonist/traitor/New(give_objectives = TRUE) . = ..() src.give_objectives = give_objectives @@ -73,7 +56,6 @@ if(give_uplink) owner.give_uplink(silent = TRUE, antag_datum = src) - generate_replacement_codes() var/datum/component/uplink/uplink = owner.find_syndicate_uplink() uplink_ref = WEAKREF(uplink) @@ -87,10 +69,6 @@ uplink_handler.has_progression = TRUE SStraitor.register_uplink_handler(uplink_handler) - if(give_secondary_objectives && GLOB.joined_player_list.len >= 25) // MASSMETA EDIT CHANGE: original - if(give_seocndary_objectives) - uplink_handler.has_objectives = TRUE - uplink_handler.generate_objectives() - uplink_handler.can_replace_objectives = CALLBACK(src, PROC_REF(can_change_objectives)) uplink_handler.replace_objectives = CALLBACK(src, PROC_REF(submit_player_objective)) @@ -114,77 +92,20 @@ pick_employer() - owner.teach_crafting_recipe(/datum/crafting_recipe/syndicate_uplink_beacon) - return ..() /datum/antagonist/traitor/on_removal() if(!isnull(uplink_handler)) - uplink_handler.has_objectives = FALSE uplink_handler.can_replace_objectives = null uplink_handler.replace_objectives = null owner.take_uplink() owner.special_role = null - owner.forget_crafting_recipe(/datum/crafting_recipe/syndicate_uplink_beacon) return ..() -/datum/antagonist/traitor/proc/traitor_objective_to_html(datum/traitor_objective/to_display) - var/string = "[to_display.name]" - if(to_display.objective_state == OBJECTIVE_STATE_ACTIVE || to_display.objective_state == OBJECTIVE_STATE_INACTIVE) - string += " [to_display.telecrystal_reward] TC" - string += " [to_display.progression_reward] PR" - else - string += ", [to_display.telecrystal_reward] TC" - string += ", [to_display.progression_reward] PR" - if(to_display.objective_state == OBJECTIVE_STATE_ACTIVE && !istype(to_display, /datum/traitor_objective/ultimate)) - string += " Fail this objective" - string += " Succeed this objective" - if(to_display.objective_state == OBJECTIVE_STATE_INACTIVE) - string += " Dispose of this objective" - - if(to_display.skipped) - string += " - Skipped" - else if(to_display.objective_state == OBJECTIVE_STATE_FAILED) - string += " - Failed" - else if(to_display.objective_state == OBJECTIVE_STATE_INVALID) - string += " - Invalidated" - else if(to_display.objective_state == OBJECTIVE_STATE_COMPLETED) - string += " - Succeeded" - - return string - -/datum/antagonist/traitor/antag_panel_objectives() - var/result = ..() - if(!uplink_handler) - return result - result += "Traitor specific objectives
" - result += "Concluded Objectives:
" - for(var/datum/traitor_objective/objective as anything in uplink_handler.completed_objectives) - result += "[traitor_objective_to_html(objective)]
" - if(!length(uplink_handler.completed_objectives)) - result += "EMPTY
" - result += "Ongoing Objectives:
" - for(var/datum/traitor_objective/objective as anything in uplink_handler.active_objectives) - result += "[traitor_objective_to_html(objective)]
" - if(!length(uplink_handler.active_objectives)) - result += "EMPTY
" - result += "Potential Objectives:
" - for(var/datum/traitor_objective/objective as anything in uplink_handler.potential_objectives) - result += "[traitor_objective_to_html(objective)]
" - if(!length(uplink_handler.potential_objectives)) - result += "EMPTY
" - result += "Force add objective
" - return result - /// Returns true if we're allowed to assign ourselves a new objective /datum/antagonist/traitor/proc/can_change_objectives() return can_assign_self_objectives -/// proc that generates the traitors replacement uplink code and radio frequency -/datum/antagonist/traitor/proc/generate_replacement_codes() - replacement_uplink_code = "[pick(GLOB.phonetic_alphabet)] [rand(10,99)]" - replacement_uplink_frequency = sanitize_frequency(rand(MIN_UNUSED_FREQ, MAX_FREQ), free = FALSE, syndie = FALSE) - /datum/antagonist/traitor/proc/pick_employer() if(!employer) var/faction = prob(75) ? FLAVOR_FACTION_SYNDICATE : FLAVOR_FACTION_NANOTRASEN @@ -300,8 +221,6 @@ data["theme"] = traitor_flavor["ui_theme"] data["code"] = uplink?.unlock_code data["failsafe_code"] = uplink?.failsafe_code - data["replacement_code"] = replacement_uplink_code - data["replacement_frequency"] = format_frequency(replacement_uplink_frequency) data["intro"] = traitor_flavor["introduction"] data["allies"] = traitor_flavor["allies"] data["goal"] = traitor_flavor["goal"] @@ -340,9 +259,6 @@ traitor_won = FALSE objectives_text += "
Objective #[count]: [objective.explanation_text] [objective.get_roundend_success_suffix()]" count++ - if(uplink_handler.final_objective) - objectives_text += "
[span_greentext("[traitor_won ? "Additionally" : "However"], the final objective \"[uplink_handler.final_objective]\" was completed!")]" - traitor_won = TRUE result += "
[owner.name] [traitor_flavor["roundend_report"]]" @@ -355,10 +271,8 @@ result += objectives_text - if(uplink_handler) - if (uplink_handler.contractor_hub) - result += contractor_round_end() - result += "
The traitor had a total of [DISPLAY_PROGRESSION(uplink_handler.progression_points)] Reputation and [uplink_handler.telecrystals] Unused Telecrystals." + if(uplink_handler && uplink_handler.contractor_hub) + result += contractor_round_end() var/special_role_text = LOWER_TEXT(name) diff --git a/code/modules/antagonists/traitor/objective_category.dm b/code/modules/antagonists/traitor/objective_category.dm deleted file mode 100644 index 5484d2937985a..0000000000000 --- a/code/modules/antagonists/traitor/objective_category.dm +++ /dev/null @@ -1,68 +0,0 @@ -/// The traitor category handler. This is where the probability of all objectives are managed. -/datum/traitor_category_handler - var/list/datum/traitor_objective_category/all_categories = list() - -/datum/traitor_category_handler/New() - . = ..() - for(var/type in subtypesof(/datum/traitor_objective_category)) - var/datum/traitor_objective_category/category = new type() - if(length(category.objectives)) - all_categories += category - else - // Category should just get autoGC'd here if they don't have any length, this may not be necessary - qdel(category) - -/datum/traitor_category_handler/proc/objective_valid(datum/traitor_objective/objective_path, progression_points) - if(initial(objective_path.abstract_type) == objective_path) - return FALSE - if(progression_points < initial(objective_path.progression_minimum)) - return FALSE - if(progression_points > initial(objective_path.progression_maximum)) - return FALSE - return TRUE - -/datum/traitor_category_handler/proc/get_possible_objectives(progression_points) - var/list/valid_objectives = list() - for(var/datum/traitor_objective_category/category as anything in all_categories) - var/list/category_list = list() - for(var/value in category.objectives) - if(islist(value)) - var/list/objective_category = filter_invalid_objective_list(value, progression_points) - if(!length(objective_category)) - continue - category_list[objective_category] = category.objectives[value] - else - if(!objective_valid(value, progression_points)) - continue - category_list[value] = category.objectives[value] - if(!length(category_list)) - continue - valid_objectives[category_list] = category.weight - - return valid_objectives - -/datum/traitor_category_handler/proc/filter_invalid_objective_list(list/objectives, progression_points) - var/list/filtered_objectives = list() - for(var/value in objectives) - if(islist(value)) - var/list/result = filter_invalid_objective_list(value, progression_points) - if(!length(result)) - continue - filtered_objectives[result] = objectives[value] - else - if(!objective_valid(value, progression_points)) - continue - filtered_objectives[value] = objectives[value] - return filtered_objectives - -/// The objective category. -/// Used to group up entire objectives into 1 weight objects to prevent having a -/// higher chance of getting an objective due to an increased number of different objective subtypes. -/// These are nothing but informational holders and will have no other purpose. -/datum/traitor_objective_category - /// Name of the category, unused but may help in the future - var/name = "generic category" - /// Assoc list of objectives by type mapped to their weight. Can also contain lists of objectives mapped to weight - var/list/objectives = list() - /// The weight of the category. How likely this category is to be chosen. - var/weight = OBJECTIVE_WEIGHT_DEFAULT diff --git a/code/modules/antagonists/traitor/objectives/abstract/target_player.dm b/code/modules/antagonists/traitor/objectives/abstract/target_player.dm deleted file mode 100644 index c08f8cd46ee3d..0000000000000 --- a/code/modules/antagonists/traitor/objectives/abstract/target_player.dm +++ /dev/null @@ -1,33 +0,0 @@ -/** - * The point of this datum is to act as a means to group target player objectives - * Not all 'target player' objectives have to be under this subtype, it's only used if you don't want duplicates among the current - * children types under this type. - */ -/datum/traitor_objective/target_player - abstract_type = /datum/traitor_objective/target_player - - progression_minimum = 30 MINUTES - - // The code below is for limiting how often you can get this objective. You will get this objective at a maximum of maximum_objectives_in_period every objective_period - /// The objective period at which we consider if it is an 'objective'. Set to 0 to accept all objectives. - var/objective_period = 15 MINUTES - /// The maximum number of objectives we can get within this period. - var/maximum_objectives_in_period = 4 - - /// The target that we need to target. - var/mob/living/target - -/datum/traitor_objective/target_player/Destroy(force) - set_target(null) - return ..() - -/datum/traitor_objective/target_player/proc/set_target(mob/living/new_target) - if(target) - UnregisterSignal(target, COMSIG_QDELETING) - target = new_target - if(target) - RegisterSignal(target, COMSIG_QDELETING, PROC_REF(target_deleted)) - -/datum/traitor_objective/target_player/proc/target_deleted(datum/source) - SIGNAL_HANDLER - set_target(null) diff --git a/code/modules/antagonists/traitor/objectives/assassination.dm b/code/modules/antagonists/traitor/objectives/assassination.dm deleted file mode 100644 index 5d5cdbd1981ff..0000000000000 --- a/code/modules/antagonists/traitor/objectives/assassination.dm +++ /dev/null @@ -1,205 +0,0 @@ -/datum/traitor_objective_category/assassinate_kidnap - name = "Assassination/Kidnap" - objectives = list( - list( - /datum/traitor_objective/target_player/assassinate/calling_card = 1, - /datum/traitor_objective/target_player/assassinate/calling_card/heads_of_staff = 1, - ) = 1, - list( - list( - /datum/traitor_objective/target_player/kidnapping/common = 20, - /datum/traitor_objective/target_player/kidnapping/common/assistant = 1, - ) = 4, - /datum/traitor_objective/target_player/kidnapping/uncommon = 3, - /datum/traitor_objective/target_player/kidnapping/rare = 2, - /datum/traitor_objective/target_player/kidnapping/captain = 1 - ) = 1, - ) - -/datum/traitor_objective/target_player/assassinate - name = "Assassinate %TARGET% the %JOB TITLE%" - description = "Simply kill your target to accomplish this objective." - - abstract_type = /datum/traitor_objective/target_player/assassinate - - progression_minimum = 30 MINUTES - - /** - * Makes the objective only set heads as targets when true, and block them from being targets when false. - * This also blocks the objective from generating UNTIL the un-heads_of_staff version (WHICH SHOULD BE A DIRECT PARENT) is completed. - * example: calling card objective, you kill someone, you unlock the chance to roll a head of staff target version of calling card. - */ - var/heads_of_staff = FALSE - - duplicate_type = /datum/traitor_objective/target_player - -/datum/traitor_objective/target_player/assassinate/supported_configuration_changes() - . = ..() - . += NAMEOF(src, objective_period) - . += NAMEOF(src, maximum_objectives_in_period) - -/datum/traitor_objective/target_player/assassinate/calling_card - name = "Assassinate %TARGET% the %JOB TITLE%, and plant a calling card" - description = "Kill your target and plant a calling card in the pockets of your victim. If your calling card gets destroyed before you are able to plant it, this objective will fail." - progression_reward = 2 MINUTES - telecrystal_reward = list(1, 2) - - var/obj/item/paper/calling_card/card - -/datum/traitor_objective/target_player/assassinate/calling_card/heads_of_staff - progression_reward = 4 MINUTES - telecrystal_reward = list(2, 3) - - heads_of_staff = TRUE - -/datum/traitor_objective/target_player/assassinate/calling_card/generate_ui_buttons(mob/user) - var/list/buttons = list() - if(!card) - buttons += add_ui_button("", "Pressing this will materialize a calling card, which you must plant to succeed.", "paper-plane", "summon_card") - return buttons - -/datum/traitor_objective/target_player/assassinate/calling_card/ui_perform_action(mob/living/user, action) - . = ..() - switch(action) - if("summon_card") - if(card) - return - card = new(user.drop_location()) - user.put_in_hands(card) - card.balloon_alert(user, "the card materializes in your hand") - RegisterSignal(card, COMSIG_ITEM_EQUIPPED, PROC_REF(on_card_planted)) - AddComponent(/datum/component/traitor_objective_register, card, \ - succeed_signals = null, \ - fail_signals = list(COMSIG_QDELETING), \ - penalty = TRUE) - -/datum/traitor_objective/target_player/assassinate/calling_card/proc/on_card_planted(datum/source, mob/living/equipper, slot) - SIGNAL_HANDLER - if(equipper != target) - return //your target please - if(equipper.stat != DEAD) - return //kill them please - if(!(slot & (ITEM_SLOT_LPOCKET|ITEM_SLOT_RPOCKET))) - return //in their pockets please - succeed_objective() - -/datum/traitor_objective/target_player/assassinate/calling_card/ungenerate_objective() - . = ..() //unsets kill target - if(card) - UnregisterSignal(card, COMSIG_ITEM_EQUIPPED) - card = null - -/datum/traitor_objective/target_player/assassinate/calling_card/target_deleted() - //you cannot plant anything on someone who is gone gone, so even if this happens after you're still liable to fail - fail_objective(penalty_cost = telecrystal_penalty) - -/datum/traitor_objective/target_player/assassinate/New(datum/uplink_handler/handler) - . = ..() - AddComponent(/datum/component/traitor_objective_limit_per_time, \ - /datum/traitor_objective/target_player, \ - time_period = objective_period, \ - maximum_objectives = maximum_objectives_in_period \ - ) - -/datum/traitor_objective/target_player/assassinate/generate_objective(datum/mind/generating_for, list/possible_duplicates) - - var/list/already_targeting = list() //List of minds we're already targeting. The possible_duplicates is a list of objectives, so let's not mix things - for(var/datum/objective/task as anything in handler.primary_objectives) - if(!istype(task.target, /datum/mind)) - continue - already_targeting += task.target //Removing primary objective kill targets from the list - - var/parent_type = type2parent(type) - //don't roll head of staff types if you haven't completed the normal version - if(heads_of_staff && !handler.get_completion_count(parent_type)) - // Locked if they don't have any of the risky bug room objective completed - return FALSE - - var/list/possible_targets = list() - var/try_target_late_joiners = FALSE - if(generating_for.late_joiner) - try_target_late_joiners = TRUE - for(var/datum/mind/possible_target as anything in get_crewmember_minds()) - if(possible_target in already_targeting) - continue - var/target_area = get_area(possible_target.current) - if(possible_target == generating_for) - continue - if(!ishuman(possible_target.current)) - continue - if(possible_target.current.stat == DEAD) - continue - var/datum/antagonist/traitor/traitor = possible_target.has_antag_datum(/datum/antagonist/traitor) - if(traitor && traitor.uplink_handler.telecrystals >= 0) - continue - if(!HAS_TRAIT(SSstation, STATION_TRAIT_LATE_ARRIVALS) && istype(target_area, /area/shuttle/arrival)) - continue - //removes heads of staff from being targets from non heads of staff assassinations, and vice versa - if(heads_of_staff) - if(!(possible_target.assigned_role.job_flags & JOB_HEAD_OF_STAFF)) - continue - else - if((possible_target.assigned_role.job_flags & JOB_HEAD_OF_STAFF)) - continue - possible_targets += possible_target - for(var/datum/traitor_objective/target_player/objective as anything in possible_duplicates) - possible_targets -= objective.target - if(try_target_late_joiners) - var/list/all_possible_targets = possible_targets.Copy() - for(var/datum/mind/possible_target as anything in all_possible_targets) - if(!possible_target.late_joiner) - possible_targets -= possible_target - if(!possible_targets.len) - possible_targets = all_possible_targets - special_target_filter(possible_targets) - if(!possible_targets.len) - return FALSE //MISSION FAILED, WE'LL GET EM NEXT TIME - - var/datum/mind/target_mind = pick(possible_targets) - set_target(target_mind.current) - replace_in_name("%TARGET%", target.real_name) - replace_in_name("%JOB TITLE%", target_mind.assigned_role.title) - RegisterSignal(target, COMSIG_LIVING_DEATH, PROC_REF(on_target_death)) - return TRUE - -/datum/traitor_objective/target_player/assassinate/ungenerate_objective() - UnregisterSignal(target, COMSIG_LIVING_DEATH) - set_target(null) - -///proc for checking for special states that invalidate a target -/datum/traitor_objective/target_player/assassinate/proc/special_target_filter(list/possible_targets) - return - -/datum/traitor_objective/target_player/assassinate/target_deleted() - if(objective_state == OBJECTIVE_STATE_INACTIVE) - //don't take an objective target of someone who is already obliterated - fail_objective() - return ..() - -/datum/traitor_objective/target_player/assassinate/proc/on_target_death() - SIGNAL_HANDLER - if(objective_state == OBJECTIVE_STATE_INACTIVE) - //don't take an objective target of someone who is already dead - fail_objective() - -/obj/item/paper/calling_card - name = "calling card" - icon_state = "syndicate_calling_card" - color = "#ff5050" - show_written_words = FALSE - default_raw_text = {" - **Death to Nanotrasen.**

- - Only through the inviolable cooperation of corporations known as The Syndicate, can Nanotrasen and its autocratic tyrants be silenced. - The outcries of Nanotrasen's employees are squelched by the suffocating iron grip of their leaders. If you read this, and understand - why we fight, then you need only to look where Nanotrasen doesn't want you to find us to join our cause. Any number of our companies - may be fighting with your interests in mind.

- - SELF: They fight for the protection and freedom of silicon life all across the galaxy.

- - Tiger Cooperative: They fight for religious freedom and their righteous concoctions.

- - Waffle Corporation: They fight for the return of healthy corporate competition, snuffed out by Nanotrasen's monopoly.

- - Animal Rights Consortium: They fight for nature and the right for all biological life to exist. - "} diff --git a/code/modules/antagonists/traitor/objectives/demoralise_assault.dm b/code/modules/antagonists/traitor/objectives/demoralise_assault.dm deleted file mode 100644 index fe26864e4fc1d..0000000000000 --- a/code/modules/antagonists/traitor/objectives/demoralise_assault.dm +++ /dev/null @@ -1,129 +0,0 @@ -/datum/traitor_objective_category/demoralise - name = "Demoralise Crew" - objectives = list( - /datum/traitor_objective/target_player/assault = 1, - /datum/traitor_objective/destroy_item/demoralise = 1, - ) - weight = OBJECTIVE_WEIGHT_UNLIKELY - -/datum/traitor_objective/target_player/assault - name = "Assault %TARGET% the %JOB TITLE%" - description = "%TARGET% has been identified as a potential future agent. \ - Pick a fight and give them a good beating. \ - %COUNT% hits should reduce their morale and have them questioning their loyalties. \ - Try not to kill them just yet, we may want to recruit them in the future." - - abstract_type = /datum/traitor_objective/target_player - duplicate_type = /datum/traitor_objective/target_player - - progression_minimum = 0 MINUTES - progression_maximum = 30 MINUTES - progression_reward = list(4 MINUTES, 8 MINUTES) - telecrystal_reward = list(0, 1) - - /// Min attacks required to pass the objective. Picked at random between this and max. - var/min_attacks_required = 2 - /// Max attacks required to pass the objective. Picked at random between this and min. - var/max_attacks_required = 5 - /// The random number picked for the number of required attacks to pass this objective. - var/attacks_required = 0 - /// Total number of successful attacks recorded. - var/attacks_inflicted = 0 - -/datum/traitor_objective/target_player/assault/on_objective_taken(mob/user) - . = ..() - - target.AddElement(/datum/element/relay_attackers) - RegisterSignal(target, COMSIG_ATOM_WAS_ATTACKED, PROC_REF(on_attacked)) - -/datum/traitor_objective/target_player/assault/proc/on_attacked(mob/source, mob/living/attacker, attack_flags) - SIGNAL_HANDLER - - // Only care about attacks from the objective's owner. - if(attacker != handler.owner.current) - return - - // We want some sort of damaging attack to trigger this, rather than shoves and non-lethals. - if(!(attack_flags & ATTACKER_DAMAGING_ATTACK)) - return - - attacks_inflicted++ - - if(attacks_inflicted == attacks_required) - succeed_objective() - -/datum/traitor_objective/target_player/assault/ungenerate_objective() - UnregisterSignal(target, COMSIG_ATOM_WAS_ATTACKED) - UnregisterSignal(target, COMSIG_LIVING_DEATH) - set_target(null) - -/datum/traitor_objective/target_player/assault/generate_objective(datum/mind/generating_for, list/possible_duplicates) - var/list/already_targeting = list() //List of minds we're already targeting. The possible_duplicates is a list of objectives, so let's not mix things - for(var/datum/objective/task as anything in handler.primary_objectives) - if(!istype(task.target, /datum/mind)) - continue - already_targeting += task.target //Removing primary objective kill targets from the list - - var/list/possible_targets = list() - - for(var/datum/mind/possible_target as anything in get_crewmember_minds()) - if(possible_target in already_targeting) - continue - - if(possible_target == generating_for) - continue - - if(!ishuman(possible_target.current)) - continue - - if(possible_target.current.stat == DEAD) - continue - - if(possible_target.has_antag_datum(/datum/antagonist/traitor)) - continue - - possible_targets += possible_target - - for(var/datum/traitor_objective/target_player/objective as anything in possible_duplicates) - possible_targets -= objective.target?.mind - - if(generating_for.late_joiner) - var/list/all_possible_targets = possible_targets.Copy() - for(var/datum/mind/possible_target as anything in all_possible_targets) - if(!possible_target.late_joiner) - possible_targets -= possible_target - if(!possible_targets.len) - possible_targets = all_possible_targets - - if(!possible_targets.len) - return FALSE - - var/datum/mind/target_mind = pick(possible_targets) - - set_target(target_mind.current) - replace_in_name("%TARGET%", target.real_name) - replace_in_name("%JOB TITLE%", target_mind.assigned_role.title) - - attacks_required = rand(min_attacks_required, max_attacks_required) - replace_in_name("%COUNT%", attacks_required) - - RegisterSignal(target, COMSIG_LIVING_DEATH, PROC_REF(on_target_death)) - - return TRUE - -/datum/traitor_objective/target_player/assault/generate_ui_buttons(mob/user) - var/list/buttons = list() - if(attacks_required > attacks_inflicted) - buttons += add_ui_button("[attacks_required - attacks_inflicted]", "This tells you how many more times you have to attack the target player to succeed.", "hand-rock-o", "none") - return buttons - -/datum/traitor_objective/target_player/assault/target_deleted() - //don't take an objective target of someone who is already obliterated - fail_objective() - return ..() - -/datum/traitor_objective/target_player/assault/proc/on_target_death() - SIGNAL_HANDLER - - //don't take an objective target of someone who is already dead - fail_objective() diff --git a/code/modules/antagonists/traitor/objectives/destroy_heirloom.dm b/code/modules/antagonists/traitor/objectives/destroy_heirloom.dm deleted file mode 100644 index 9182f23a649db..0000000000000 --- a/code/modules/antagonists/traitor/objectives/destroy_heirloom.dm +++ /dev/null @@ -1,153 +0,0 @@ -/datum/traitor_objective_category/destroy_heirloom - name = "Destroy Heirloom" - objectives = list( - list( - // There's about 16 jobs in common, so assistant has a 1/21 chance of getting chosen. - /datum/traitor_objective/destroy_heirloom/common = 20, - /datum/traitor_objective/destroy_heirloom/common/assistant = 1, - ) = 4, - /datum/traitor_objective/destroy_heirloom/uncommon = 3, - /datum/traitor_objective/destroy_heirloom/rare = 2, - /datum/traitor_objective/destroy_heirloom/captain = 1 - ) - -/datum/traitor_objective/destroy_heirloom - name = "Destroy %ITEM%, the family heirloom that belongs to %TARGET% the %JOB TITLE%" - description = "%TARGET% has been on our shitlist for a while and we want to show them we mean business. Find their %ITEM% and destroy it." - - abstract_type = /datum/traitor_objective/destroy_heirloom - - /// The jobs that this objective is targeting. - var/list/target_jobs - /// the item we need to destroy - var/obj/item/target_item - /// the owner of the item we need to destroy - var/datum/mind/target_mind - - // The code below is for limiting how often you can get this objective. You will get this objective at a maximum of maximum_objectives_in_period every objective_period - /// The objective period at which we consider if it is an 'objective'. Set to 0 to accept all objectives. - var/objective_period = 10 MINUTES - /// The maximum number of objectives that can be taken in this period. - var/maximum_objectives_in_period = 2 - - duplicate_type = /datum/traitor_objective/destroy_heirloom - -/datum/traitor_objective/destroy_heirloom/common - /// 30 minutes in, syndicate won't care about common heirlooms anymore - progression_minimum = 0 MINUTES - progression_maximum = 30 MINUTES - progression_reward = list(8 MINUTES, 12 MINUTES) - telecrystal_reward = list(1, 2) - target_jobs = list( - // Medical - /datum/job/doctor, - /datum/job/paramedic, - /datum/job/psychologist, - /datum/job/chemist, - /datum/job/coroner, - // Service - /datum/job/clown, - /datum/job/botanist, - /datum/job/janitor, - /datum/job/mime, - /datum/job/lawyer, - // Cargo - /datum/job/cargo_technician, - // Science - /datum/job/geneticist, - /datum/job/scientist, - /datum/job/roboticist, - // Engineering - /datum/job/station_engineer, - /datum/job/atmospheric_technician, - ) - -/// This is only for assistants, because the syndies are a lot less likely to give a shit about what an assistant does, so they're a lot less likely to appear -/datum/traitor_objective/destroy_heirloom/common/assistant - target_jobs = list( - /datum/job/assistant - ) - -/datum/traitor_objective/destroy_heirloom/uncommon - /// 45 minutes in, syndicate won't care about uncommon heirlooms anymore - progression_minimum = 0 MINUTES - progression_maximum = 45 MINUTES - progression_reward = list(8 MINUTES, 12 MINUTES) - telecrystal_reward = list(1, 2) - target_jobs = list( - // Cargo - /datum/job/bitrunner, - /datum/job/shaft_miner, - // Service - /datum/job/chaplain, - /datum/job/bartender, - /datum/job/cook, - /datum/job/curator, - ) - -/datum/traitor_objective/destroy_heirloom/rare - progression_minimum = 15 MINUTES - /// 60 minutes in, syndicate won't care about rare heirlooms anymore - progression_maximum = 60 MINUTES - progression_reward = list(10 MINUTES, 14 MINUTES) - telecrystal_reward = list(2, 3) - target_jobs = list( - // Security - /datum/job/security_officer, - /datum/job/warden, - /datum/job/detective, - // Heads of staff - /datum/job/head_of_personnel, - /datum/job/chief_medical_officer, - /datum/job/research_director, - /datum/job/quartermaster, - /datum/job/chief_engineer, - ) - -/datum/traitor_objective/destroy_heirloom/captain - progression_minimum = 30 MINUTES - progression_reward = list(10 MINUTES, 14 MINUTES) - telecrystal_reward = 4 - target_jobs = list( - /datum/job/head_of_security, - /datum/job/captain - ) - -/datum/traitor_objective/destroy_heirloom/New(datum/uplink_handler/handler) - . = ..() - AddComponent(/datum/component/traitor_objective_limit_per_time, \ - /datum/traitor_objective/destroy_heirloom, \ - time_period = objective_period, \ - maximum_objectives = maximum_objectives_in_period \ - ) - -/datum/traitor_objective/destroy_heirloom/generate_objective(datum/mind/generating_for, list/possible_duplicates) - var/list/possible_targets = list() - for(var/datum/mind/possible_target as anything in get_crewmember_minds()) - if(possible_target == generating_for) - continue - if(!ishuman(possible_target.current)) - continue - var/datum/quirk/item_quirk/family_heirloom/quirk = locate() in possible_target.current.quirks - if(!quirk || !quirk.heirloom.resolve()) - continue - if(!(possible_target.assigned_role.type in target_jobs)) - continue - possible_targets += possible_target - for(var/datum/traitor_objective/destroy_heirloom/objective as anything in possible_duplicates) - possible_targets -= objective.target_mind - if(!length(possible_targets)) - return FALSE - target_mind = pick(possible_targets) - AddComponent(/datum/component/traitor_objective_register, target_mind.current, fail_signals = list(COMSIG_QDELETING)) - var/datum/quirk/item_quirk/family_heirloom/quirk = locate() in target_mind.current.quirks - target_item = quirk.heirloom.resolve() - AddComponent(/datum/component/traitor_objective_register, target_item, succeed_signals = list(COMSIG_QDELETING)) - replace_in_name("%TARGET%", target_mind.name) - replace_in_name("%JOB TITLE%", target_mind.assigned_role.title) - replace_in_name("%ITEM%", target_item.name) - return TRUE - -/datum/traitor_objective/destroy_heirloom/ungenerate_objective() - target_item = null - target_mind = null diff --git a/code/modules/antagonists/traitor/objectives/destroy_item.dm b/code/modules/antagonists/traitor/objectives/destroy_item.dm deleted file mode 100644 index 2c53f3d6b8c19..0000000000000 --- a/code/modules/antagonists/traitor/objectives/destroy_item.dm +++ /dev/null @@ -1,112 +0,0 @@ -/datum/traitor_objective/destroy_item - name = "Steal %ITEM% and destroy it" - description = "Find %ITEM% and destroy it using any means necessary. We can't allow the crew to have %ITEM% as it conflicts with our interests. %METHOD%" - - var/list/possible_items = list() - /// The current target item that we are stealing. - var/datum/objective_item/steal/target_item - /// Any special equipment that may be needed - var/list/special_equipment - /// Items that are currently tracked and will succeed this objective when destroyed. - var/list/tracked_items = list() - - abstract_type = /datum/traitor_objective/destroy_item - -/datum/traitor_objective/destroy_item/low_risk - progression_minimum = 10 MINUTES - progression_maximum = 35 MINUTES - progression_reward = list(5 MINUTES, 10 MINUTES) - telecrystal_reward = 1 - - possible_items = list( - /datum/objective_item/steal/traitor/bartender_shotgun, - /datum/objective_item/steal/traitor/fireaxe, - /datum/objective_item/steal/traitor/nullrod, - /datum/objective_item/steal/traitor/big_crowbar, - ) - -/datum/traitor_objective/destroy_item/very_risky - progression_minimum = 40 MINUTES - progression_reward = 15 MINUTES - telecrystal_reward = list(6, 9) - possible_items = list( - /datum/objective_item/steal/blackbox, - ) - -/// Super early-game destroy objective intended to be items easily tided that the crew tends to value. -/datum/traitor_objective/destroy_item/demoralise - description = "Find %ITEM% and destroy it using any means necessary. \ - We believe this luxury item is important for crew morale. \ - Destruction of this item will help our recruitment efforts." - - progression_minimum = 0 MINUTES - progression_maximum = 10 MINUTES - progression_reward = list(4 MINUTES, 8 MINUTES) - telecrystal_reward = list(0, 1) - - possible_items = list( - /datum/objective_item/steal/traitor/rpd, - /datum/objective_item/steal/traitor/space_law, - /datum/objective_item/steal/traitor/granted_stamp, - /datum/objective_item/steal/traitor/denied_stamp, - /datum/objective_item/steal/traitor/lizard_plush, - /datum/objective_item/steal/traitor/moth_plush, - /datum/objective_item/steal/traitor/insuls, - ) - -/datum/traitor_objective/destroy_item/generate_objective(datum/mind/generating_for, list/possible_duplicates) - for(var/datum/traitor_objective/destroy_item/objective as anything in possible_duplicates) - possible_items -= objective.target_item.type - while(length(possible_items)) - var/datum/objective_item/steal/target = pick_n_take(possible_items) - target = new target() - if(!target.valid_objective_for(list(generating_for), require_owner = TRUE)) - qdel(target) - continue - target_item = target - break - if(!target_item) - return FALSE - if(target_item.exists_on_map) - var/list/items = GLOB.steal_item_handler.objectives_by_path[target_item.targetitem] - for(var/obj/item/item as anything in items) - AddComponent(/datum/component/traitor_objective_register, item, succeed_signals = list(COMSIG_QDELETING)) - tracked_items += item - if(length(target_item.special_equipment)) - special_equipment = target_item.special_equipment - replace_in_name("%ITEM%", target_item.name) - if(target_item.destruction_method != null) - replace_in_name("%METHOD%", target_item.destruction_method) - else - replace_in_name("%METHOD%", "This item can be destroyed normally, such as by using a recycler, found in disposals.") - AddComponent(/datum/component/traitor_objective_mind_tracker, generating_for, \ - signals = list(COMSIG_MOB_EQUIPPED_ITEM = PROC_REF(on_item_pickup))) - return TRUE - -/datum/traitor_objective/destroy_item/generate_ui_buttons(mob/user) - var/list/buttons = list() - if(special_equipment) - buttons += add_ui_button("", "Pressing this will summon any extra special equipment you may need for the mission.", "tools", "summon_gear") - return buttons - -/datum/traitor_objective/destroy_item/ui_perform_action(mob/living/user, action) - . = ..() - switch(action) - if("summon_gear") - if(!special_equipment) - return - for(var/item in special_equipment) - var/obj/item/new_item = new item(user.drop_location()) - user.put_in_hands(new_item) - user.balloon_alert(user, "the equipment materializes in your hand") - special_equipment = null - -/datum/traitor_objective/destroy_item/proc/on_item_pickup(datum/source, obj/item/item, slot) - SIGNAL_HANDLER - if(istype(item, target_item.targetitem) && !(item in tracked_items)) - AddComponent(/datum/component/traitor_objective_register, item, succeed_signals = list(COMSIG_QDELETING)) - tracked_items += item - -/datum/traitor_objective/destroy_item/ungenerate_objective() - tracked_items.Cut() - return ..() diff --git a/code/modules/antagonists/traitor/objectives/eyesnatching.dm b/code/modules/antagonists/traitor/objectives/eyesnatching.dm deleted file mode 100644 index 2ddad4913f0d3..0000000000000 --- a/code/modules/antagonists/traitor/objectives/eyesnatching.dm +++ /dev/null @@ -1,240 +0,0 @@ -/datum/traitor_objective_category/eyesnatching - name = "Eyesnatching" - objectives = list( - /datum/traitor_objective/target_player/eyesnatching = 1, - /datum/traitor_objective/target_player/eyesnatching/heads = 1, - ) - weight = OBJECTIVE_WEIGHT_UNLIKELY - -/datum/traitor_objective/target_player/eyesnatching - name = "Steal the eyes of %TARGET% the %JOB TITLE%" - description = "%TARGET% messed with the wrong people. Steal their eyes to teach them a lesson. You will be provided an experimental eyesnatcher device to aid you in your mission." - - progression_minimum = 10 MINUTES - - progression_reward = list(4 MINUTES, 8 MINUTES) - telecrystal_reward = list(1, 2) - - /// If we're targeting heads of staff or not - var/heads_of_staff = FALSE - /// Have we already spawned an eyesnatcher - var/spawned_eyesnatcher = FALSE - - duplicate_type = /datum/traitor_objective/target_player - -/datum/traitor_objective/target_player/eyesnatching/supported_configuration_changes() - . = ..() - . += NAMEOF(src, objective_period) - . += NAMEOF(src, maximum_objectives_in_period) - -/datum/traitor_objective/target_player/eyesnatching/New(datum/uplink_handler/handler) - . = ..() - AddComponent(/datum/component/traitor_objective_limit_per_time, \ - /datum/traitor_objective/target_player, \ - time_period = objective_period, \ - maximum_objectives = maximum_objectives_in_period \ - ) - -/datum/traitor_objective/target_player/eyesnatching/heads - progression_reward = list(6 MINUTES, 12 MINUTES) - telecrystal_reward = list(2, 3) - - heads_of_staff = TRUE - -/datum/traitor_objective/target_player/eyesnatching/generate_objective(datum/mind/generating_for, list/possible_duplicates) - - var/list/already_targeting = list() //List of minds we're already targeting. The possible_duplicates is a list of objectives, so let's not mix things - for(var/datum/objective/task as anything in handler.primary_objectives) - if(!istype(task.target, /datum/mind)) - continue - already_targeting += task.target //Removing primary objective kill targets from the list - - var/list/possible_targets = list() - var/try_target_late_joiners = FALSE - if(generating_for.late_joiner) - try_target_late_joiners = TRUE - - for(var/datum/mind/possible_target as anything in get_crewmember_minds()) - if(possible_target == generating_for) - continue - - if(possible_target in already_targeting) - continue - - if(!ishuman(possible_target.current)) - continue - - if(possible_target.current.stat == DEAD) - continue - - if(possible_target.has_antag_datum(/datum/antagonist/traitor)) - continue - - if(!possible_target.assigned_role) - continue - - if(heads_of_staff) - if(!(possible_target.assigned_role.job_flags & JOB_HEAD_OF_STAFF)) - continue - else - if(possible_target.assigned_role.job_flags & JOB_HEAD_OF_STAFF) - continue - - var/mob/living/carbon/human/targets_current = possible_target.current - if(!targets_current.get_organ_by_type(/obj/item/organ/eyes)) - continue - - possible_targets += possible_target - - for(var/datum/traitor_objective/target_player/objective as anything in possible_duplicates) - possible_targets -= objective.target?.mind - - if(try_target_late_joiners) - var/list/all_possible_targets = possible_targets.Copy() - for(var/datum/mind/possible_target as anything in all_possible_targets) - if(!possible_target.late_joiner) - possible_targets -= possible_target - - if(!possible_targets.len) - possible_targets = all_possible_targets - - if(!possible_targets.len) - return FALSE //MISSION FAILED, WE'LL GET EM NEXT TIME - - var/datum/mind/target_mind = pick(possible_targets) - set_target(target_mind.current) - - replace_in_name("%TARGET%", target_mind.name) - replace_in_name("%JOB TITLE%", target_mind.assigned_role.title) - RegisterSignal(target, COMSIG_CARBON_LOSE_ORGAN, PROC_REF(check_eye_removal)) - AddComponent(/datum/component/traitor_objective_register, target, fail_signals = list(COMSIG_QDELETING)) - return TRUE - -/datum/traitor_objective/target_player/eyesnatching/proc/check_eye_removal(datum/source, obj/item/organ/eyes/removed) - SIGNAL_HANDLER - - if(!istype(removed)) - return - - succeed_objective() - -/datum/traitor_objective/target_player/eyesnatching/generate_ui_buttons(mob/user) - var/list/buttons = list() - if(!spawned_eyesnatcher) - buttons += add_ui_button("", "Pressing this will materialize an eyesnatcher, which can be used on incapacitaded or restrained targets to forcefully remove their eyes.", "syringe", "eyesnatcher") - return buttons - -/datum/traitor_objective/target_player/eyesnatching/ui_perform_action(mob/living/user, action) - . = ..() - switch(action) - if("eyesnatcher") - if(spawned_eyesnatcher) - return - spawned_eyesnatcher = TRUE - var/obj/item/eyesnatcher/eyesnatcher = new(user.drop_location()) - user.put_in_hands(eyesnatcher) - eyesnatcher.balloon_alert(user, "the snatcher materializes in your hand") - -/obj/item/eyesnatcher - name = "portable eyeball extractor" - desc = "An overly complicated device that can pierce target's skull and extract their eyeballs if enough brute force is applied." - icon = 'icons/obj/medical/surgery_tools.dmi' - icon_state = "eyesnatcher" - base_icon_state = "eyesnatcher" - inhand_icon_state = "hypo" - lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' - throwforce = 0 - w_class = WEIGHT_CLASS_SMALL - throw_speed = 3 - throw_range = 5 - ///Whether it's been used to steal a pair of eyes already. - var/used = FALSE - -/obj/item/eyesnatcher/update_icon_state() - . = ..() - icon_state = "[base_icon_state][used ? "-used" : ""]" - -/obj/item/eyesnatcher/attack(mob/living/carbon/human/target, mob/living/user, params) - if(used || !istype(target) || !target.Adjacent(user)) //Works only once, no TK use - return ..() - - var/obj/item/organ/eyes/eyeballies = target.get_organ_slot(ORGAN_SLOT_EYES) - var/obj/item/bodypart/head/head = target.get_bodypart(BODY_ZONE_HEAD) - - if(!head || !eyeballies || target.is_eyes_covered()) - return ..() - var/eye_snatch_enthusiasm = 5 SECONDS - if(HAS_MIND_TRAIT(user, TRAIT_MORBID)) - eye_snatch_enthusiasm *= 0.7 - user.do_attack_animation(target, used_item = src) - target.visible_message( - span_warning("[user] presses [src] against [target]'s skull!"), - span_userdanger("[user] presses [src] against your skull!")) - if(!do_after(user, eye_snatch_enthusiasm, target = target, extra_checks = CALLBACK(src, PROC_REF(eyeballs_exist), eyeballies, head, target))) - return - - to_chat(target, span_userdanger("You feel something forcing its way into your skull!")) - balloon_alert(user, "applying pressure...") - if(!do_after(user, eye_snatch_enthusiasm, target = target, extra_checks = CALLBACK(src, PROC_REF(eyeballs_exist), eyeballies, head, target))) - return - - var/min_wound = head.get_wound_threshold_of_wound_type(WOUND_BLUNT, WOUND_SEVERITY_SEVERE, return_value_if_no_wound = 30, wound_source = src) - var/max_wound = head.get_wound_threshold_of_wound_type(WOUND_BLUNT, WOUND_SEVERITY_CRITICAL, return_value_if_no_wound = 50, wound_source = src) - - target.apply_damage(20, BRUTE, BODY_ZONE_HEAD, wound_bonus = rand(min_wound, max_wound + 10), attacking_item = src) - target.visible_message( - span_danger("[src] pierces through [target]'s skull, horribly mutilating their eyes!"), - span_userdanger("Something penetrates your skull, horribly mutilating your eyes! Holy fuck!"), - span_hear("You hear a sickening sound of metal piercing flesh!") - ) - eyeballies.apply_organ_damage(eyeballies.maxHealth) - target.emote("scream") - playsound(target, 'sound/effects/wounds/crackandbleed.ogg', 100) - log_combat(user, target, "cracked the skull of (eye snatching)", src) - - if(!do_after(user, eye_snatch_enthusiasm, target = target, extra_checks = CALLBACK(src, PROC_REF(eyeballs_exist), eyeballies, head, target))) - return - - if(!target.is_blind()) - to_chat(target, span_userdanger("You suddenly go blind!")) - if(prob(1)) - to_chat(target, span_notice("At least you got a new pirate-y look out of it...")) - var/obj/item/clothing/glasses/eyepatch/new_patch = new(target.loc) - target.equip_to_slot_if_possible(new_patch, ITEM_SLOT_EYES, disable_warning = TRUE) - - to_chat(user, span_notice("You successfully extract [target]'s eyeballs.")) - playsound(target, 'sound/items/handling/surgery/retractor2.ogg', 100, TRUE) - playsound(target, 'sound/effects/pop.ogg', 100, TRAIT_MUTE) - eyeballies.Remove(target) - eyeballies.forceMove(get_turf(target)) - notify_ghosts( - "[target] has just had their eyes snatched!", - source = target, - header = "Ouch!", - ) - target.emote("scream") - if(prob(20)) - target.emote("cry") - used = TRUE - update_appearance(UPDATE_ICON) - -/obj/item/eyesnatcher/examine(mob/user) - . = ..() - if(used) - . += span_notice("It has been used up.") - -/obj/item/eyesnatcher/proc/eyeballs_exist(obj/item/organ/eyes/eyeballies, obj/item/bodypart/head/head, mob/living/carbon/human/target) - if(!eyeballies || QDELETED(eyeballies)) - return FALSE - if(!head || QDELETED(head)) - return FALSE - - if(eyeballies.owner != target) - return FALSE - var/obj/item/organ/eyes/eyes = target.get_organ_slot(ORGAN_SLOT_EYES) - //got different eyes or doesn't own the head... somehow - if(head.owner != target || eyes != eyeballies) - return FALSE - - return TRUE diff --git a/code/modules/antagonists/traitor/objectives/final_objective/battle_royale.dm b/code/modules/antagonists/traitor/objectives/final_objective/battle_royale.dm deleted file mode 100644 index e5208ff8331b9..0000000000000 --- a/code/modules/antagonists/traitor/objectives/final_objective/battle_royale.dm +++ /dev/null @@ -1,43 +0,0 @@ -/datum/traitor_objective/ultimate/battle_royale - name = "Implant crewmembers with a subtle implant, then make them fight to the death on pay-per-view TV." - description = "Go to %AREA%, and receive the Royale Broadcast Kit. \ - Use the contained implant on station personnel to subtly implant them with a micro-explosive. \ - Once you have at least six contestants, use the contained remote to start a timer and begin broadcasting live. \ - If more than one contestant remains alive after ten minutes, all of the implants will detonate." - - ///Area type the objective owner must be in to receive the tools. - var/area/kit_spawn_area - ///Whether the kit was sent already. - var/equipped = FALSE - -/datum/traitor_objective/ultimate/battle_royale/generate_objective(datum/mind/generating_for, list/possible_duplicates) - var/list/possible_areas = GLOB.the_station_areas.Copy() - for(var/area/possible_area as anything in possible_areas) - if(ispath(possible_area, /area/station/hallway) || ispath(possible_area, /area/station/security)) - possible_areas -= possible_area - if(length(possible_areas) == 0) - return FALSE - kit_spawn_area = pick(possible_areas) - replace_in_name("%AREA%", initial(kit_spawn_area.name)) - return TRUE - -/datum/traitor_objective/ultimate/battle_royale/generate_ui_buttons(mob/user) - var/list/buttons = list() - if(!equipped) - buttons += add_ui_button("", "Pressing this will call down a pod with the Royale Broadcast kit.", "biohazard", "deliver_kit") - return buttons - -/datum/traitor_objective/ultimate/battle_royale/ui_perform_action(mob/living/user, action) - . = ..() - if(action != "deliver_kit" || equipped) - return - var/area/delivery_area = get_area(user) - if(delivery_area.type != kit_spawn_area) - to_chat(user, span_warning("You must be in [initial(kit_spawn_area.name)] to receive the Royale Broadcast kit.")) - return - equipped = TRUE - podspawn(list( - "target" = get_turf(user), - "style" = /datum/pod_style/syndicate, - "spawn" = /obj/item/storage/box/syndie_kit/battle_royale, - )) diff --git a/code/modules/antagonists/traitor/objectives/final_objective/battlecruiser.dm b/code/modules/antagonists/traitor/objectives/final_objective/battlecruiser.dm deleted file mode 100644 index 7da84f6002619..0000000000000 --- a/code/modules/antagonists/traitor/objectives/final_objective/battlecruiser.dm +++ /dev/null @@ -1,49 +0,0 @@ -/datum/traitor_objective/ultimate/battlecruiser - name = "Reveal Station Coordinates to nearby Syndicate Battlecruiser" - description = "Use a special upload card on a communications console to send the coordinates \ - of the station to a nearby Battlecruiser. You may want to make your syndicate status known to \ - the battlecruiser crew when they arrive - their goal will be to destroy the station." - - /// Checks whether we have sent the card to the traitor yet. - var/sent_accesscard = FALSE - /// Battlecruiser team that we get assigned to - var/datum/team/battlecruiser/team - -/datum/traitor_objective/ultimate/battlecruiser/generate_objective(datum/mind/generating_for, list/possible_duplicates) - // There's no empty space to load a battlecruiser in... - if(SSmapping.is_planetary()) - return FALSE - - return TRUE - -/datum/traitor_objective/ultimate/battlecruiser/on_objective_taken(mob/user) - . = ..() - team = new() - var/obj/machinery/nuclearbomb/selfdestruct/nuke = locate() in SSmachines.get_machines_by_type(/obj/machinery/nuclearbomb/selfdestruct) - if(nuke.r_code == NUKE_CODE_UNSET) - nuke.r_code = random_nukecode() - team.nuke = nuke - team.update_objectives() - handler.owner.add_antag_datum(/datum/antagonist/battlecruiser/ally, team) - - -/datum/traitor_objective/ultimate/battlecruiser/generate_ui_buttons(mob/user) - var/list/buttons = list() - if(!sent_accesscard) - buttons += add_ui_button("", "Pressing this will materialize an upload card, which you can use on a communication console to contact the fleet.", "phone", "card") - return buttons - -/datum/traitor_objective/ultimate/battlecruiser/ui_perform_action(mob/living/user, action) - . = ..() - switch(action) - if("card") - if(sent_accesscard) - return - sent_accesscard = TRUE - var/obj/item/card/emag/battlecruiser/emag_card = new() - emag_card.team = team - podspawn(list( - "target" = get_turf(user), - "style" = /datum/pod_style/syndicate, - "spawn" = emag_card, - )) diff --git a/code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm b/code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm deleted file mode 100644 index 3367540239703..0000000000000 --- a/code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm +++ /dev/null @@ -1,43 +0,0 @@ -/datum/traitor_objective_category/final_objective - name = "Final Objective" - objectives = list( - /datum/traitor_objective/ultimate/battlecruiser = 1, - /datum/traitor_objective/ultimate/battle_royale = 1, - /datum/traitor_objective/ultimate/dark_matteor = 1, - /datum/traitor_objective/ultimate/infect_ai = 1, - /datum/traitor_objective/ultimate/romerol = 1, - /datum/traitor_objective/ultimate/supermatter_cascade = 1, - /datum/traitor_objective/ultimate/no_escape = 1, - ) - weight = 100 - -/datum/traitor_objective/ultimate - abstract_type = /datum/traitor_objective/ultimate - progression_minimum = 140 MINUTES - needs_reward = FALSE - - var/progression_points_in_objectives = 20 MINUTES - -/// Determines if this final objective can be taken. Should be put into every final objective's generate function. -/datum/traitor_objective/ultimate/can_generate_objective(generating_for, list/possible_duplicates) - if(handler.get_completion_progression(/datum/traitor_objective) < progression_points_in_objectives) - return FALSE - if(SStraitor.get_taken_count(type) > 0) // Prevents multiple people from ever getting the same final objective. - return FALSE - if(length(possible_duplicates) > 0) - return FALSE - return TRUE - -/datum/traitor_objective/ultimate/on_objective_taken(mob/user) - . = ..() - handler.maximum_potential_objectives = 0 - for(var/datum/traitor_objective/objective as anything in handler.potential_objectives) - if(objective == src) - continue - objective.fail_objective() - user.playsound_local(get_turf(user), 'sound/music/antag/traitor/final_objective.ogg', vol = 100, vary = FALSE, channel = CHANNEL_TRAITOR) - handler.final_objective = name - -/datum/traitor_objective/ultimate/uplink_ui_data(mob/user) - . = ..() - .["final_objective"] = TRUE diff --git a/code/modules/antagonists/traitor/objectives/final_objective/infect_ai.dm b/code/modules/antagonists/traitor/objectives/final_objective/infect_ai.dm deleted file mode 100644 index d47a2c6aabc59..0000000000000 --- a/code/modules/antagonists/traitor/objectives/final_objective/infect_ai.dm +++ /dev/null @@ -1,56 +0,0 @@ -/datum/traitor_objective/ultimate/infect_ai - name = "Infect the station AI with an experimental virus." - description = "Infect the station AI with an experimental virus. Go to %AREA% to receive an infected law upload board \ - and use it on the AI core or a law upload console." - - ///area type the objective owner must be in to receive the law upload module - var/area/board_area_pickup - ///checker on whether we have sent the law upload module - var/sent_board = FALSE - -/datum/traitor_objective/ultimate/infect_ai/can_generate_objective(generating_for, list/possible_duplicates) - . = ..() - if(!.) - return FALSE - - for(var/mob/living/silicon/ai/ai in GLOB.ai_list) - if(ai.stat == DEAD || ai.mind?.has_antag_datum(/datum/antagonist/malf_ai) || !is_station_level(ai.z)) - continue - return TRUE - - return FALSE - -/datum/traitor_objective/ultimate/infect_ai/generate_objective(datum/mind/generating_for, list/possible_duplicates) - var/list/possible_areas = GLOB.the_station_areas.Copy() - for(var/area/possible_area as anything in possible_areas) - //remove areas too close to the destination, too obvious for our poor shmuck, or just unfair - if(istype(possible_area, /area/station/hallway) || istype(possible_area, /area/station/security)) - possible_areas -= possible_area - if(!length(possible_areas)) - return FALSE - board_area_pickup = pick(possible_areas) - replace_in_name("%AREA%", initial(board_area_pickup.name)) - return TRUE - -/datum/traitor_objective/ultimate/infect_ai/generate_ui_buttons(mob/user) - var/list/buttons = list() - if(!sent_board) - buttons += add_ui_button("", "Pressing this will call down a pod with an infected law upload board.", "wifi", "upload_board") - return buttons - -/datum/traitor_objective/ultimate/infect_ai/ui_perform_action(mob/living/user, action) - . = ..() - switch(action) - if("upload_board") - if(sent_board) - return - var/area/delivery_area = get_area(user) - if(delivery_area.type != board_area_pickup) - to_chat(user, span_warning("You must be in [initial(board_area_pickup.name)] to receive the infected law upload board.")) - return - sent_board = TRUE - podspawn(list( - "target" = get_turf(user), - "style" = /datum/pod_style/syndicate, - "spawn" = /obj/item/ai_module/malf, - )) diff --git a/code/modules/antagonists/traitor/objectives/final_objective/no_escape.dm b/code/modules/antagonists/traitor/objectives/final_objective/no_escape.dm deleted file mode 100644 index 12cbdcf2d01fa..0000000000000 --- a/code/modules/antagonists/traitor/objectives/final_objective/no_escape.dm +++ /dev/null @@ -1,48 +0,0 @@ -/datum/traitor_objective/ultimate/no_escape - name = "Attach a beacon to the escape shuttle that will attract a singularity to consume everything." - description = "Go to %AREA%, and receive the smuggled beacon. Set up the beacon anywhere on the shuttle, \ - and charge it using an inducer then, IT COMES. Warning: The singularity will consume all in it's path, you included." - - ///area type the objective owner must be in to receive the satellites - var/area/beacon_spawn_area_type - ///checker on whether we have sent the beacon yet - var/sent_beacon = FALSE - -/datum/traitor_objective/ultimate/no_escape/generate_objective(datum/mind/generating_for, list/possible_duplicates) - var/list/possible_areas = GLOB.the_station_areas.Copy() - for(var/area/possible_area as anything in possible_areas) - if(!ispath(possible_area, /area/station/maintenance/solars) && !ispath(possible_area, /area/station/solars)) - possible_areas -= possible_area - if(length(possible_areas) == 0) - return FALSE - beacon_spawn_area_type = pick(possible_areas) - replace_in_name("%AREA%", initial(beacon_spawn_area_type.name)) - return TRUE - -/datum/traitor_objective/ultimate/no_escape/generate_ui_buttons(mob/user) - var/list/buttons = list() - if(!sent_beacon) - buttons += add_ui_button("", "Pressing this will call down a pod with the smuggled beacon.", "beacon", "beacon") - return buttons - -/datum/traitor_objective/ultimate/no_escape/ui_perform_action(mob/living/user, action) - . = ..() - switch(action) - if("beacon") - if(sent_beacon) - return - var/area/delivery_area = get_area(user) - if(delivery_area.type != beacon_spawn_area_type) - to_chat(user, span_warning("You must be in [initial(beacon_spawn_area_type.name)] to receive the smuggled beacon.")) - return - sent_beacon = TRUE - podspawn(list( - "target" = get_turf(user), - "style" = /datum/pod_style/syndicate, - "spawn" = list( - /obj/item/sbeacondrop/no_escape, - /obj/item/inducer/syndicate, - /obj/item/wrench - ) - )) - diff --git a/code/modules/antagonists/traitor/objectives/final_objective/objective_dark_matteor.dm b/code/modules/antagonists/traitor/objectives/final_objective/objective_dark_matteor.dm deleted file mode 100644 index b90fdba73d03a..0000000000000 --- a/code/modules/antagonists/traitor/objectives/final_objective/objective_dark_matteor.dm +++ /dev/null @@ -1,83 +0,0 @@ -/datum/traitor_objective/ultimate/dark_matteor - name = "Summon a dark matter singularity to consume the station." - description = "Go to %AREA%, and receive the smuggled satellites + emag. Set up and emag the satellites, \ - after enough have been recalibrated by the emag, IT COMES. Warning: The dark matter singularity will hunt all creatures, you included." - - //this is a prototype so this progression is for all basic level kill objectives - - ///area type the objective owner must be in to receive the satellites - var/area/satellites_spawnarea_type - ///checker on whether we have sent the satellites yet. - var/sent_satellites = FALSE - -/datum/traitor_objective/ultimate/dark_matteor/can_generate_objective(generating_for, list/possible_duplicates) - . = ..() - if(!.) - return FALSE - if(SSmapping.is_planetary()) - return FALSE //meteors can't spawn on planets - return TRUE - -/datum/traitor_objective/ultimate/dark_matteor/generate_objective(datum/mind/generating_for, list/possible_duplicates) - var/list/possible_areas = GLOB.the_station_areas.Copy() - for(var/area/possible_area as anything in possible_areas) - if(!ispath(possible_area, /area/station/maintenance/solars) && !ispath(possible_area, /area/station/solars)) - possible_areas -= possible_area - if(length(possible_areas) == 0) - return FALSE - satellites_spawnarea_type = pick(possible_areas) - replace_in_name("%AREA%", initial(satellites_spawnarea_type.name)) - return TRUE - -/datum/traitor_objective/ultimate/dark_matteor/generate_ui_buttons(mob/user) - var/list/buttons = list() - if(!sent_satellites) - buttons += add_ui_button("", "Pressing this will call down a pod with the smuggled satellites.", "satellite", "satellite") - return buttons - -/datum/traitor_objective/ultimate/dark_matteor/ui_perform_action(mob/living/user, action) - . = ..() - switch(action) - if("satellite") - if(sent_satellites) - return - var/area/delivery_area = get_area(user) - if(delivery_area.type != satellites_spawnarea_type) - to_chat(user, span_warning("You must be in [initial(satellites_spawnarea_type.name)] to receive the smuggled satellites.")) - return - sent_satellites = TRUE - podspawn(list( - "target" = get_turf(user), - "style" = /datum/pod_style/syndicate, - "spawn" = /obj/structure/closet/crate/engineering/smuggled_meteor_shields, - )) - -/obj/structure/closet/crate/engineering/smuggled_meteor_shields - -/obj/structure/closet/crate/engineering/smuggled_meteor_shields/PopulateContents() - ..() - for(var/i in 1 to 11) - new /obj/machinery/satellite/meteor_shield(src) - new /obj/item/card/emag/meteor_shield_recalibrator(src) - new /obj/item/paper/dark_matteor_summoning(src) - -/obj/item/paper/dark_matteor_summoning - name = "notes - dark matter meteor summoning" - default_raw_text = {" - Summoning a dark matter meteor.
-
-
- Operative, this crate contains 10+1 spare meteor shield satellites stolen from NT’s supply lines. Your mission is to - deploy them in space near the station and recalibrate them with the provided emag. Be careful: you need a 30 second - cooldown between each hack, and NT will detect your interference after seven recalibrations. That means you - have at least 5 minutes of work and 1 minute of resistance.
-
- This is a high-risk operation. You’ll need backup, fortification, and determination. The reward? - A spectacular dark matter singularity that will wipe out the station.
-
- **Death to Nanotrasen.** -"} - -/obj/item/card/emag/meteor_shield_recalibrator - name = "cryptographic satellite recalibrator" - desc = "It's a cryptographic sequencer that has been tuned to recalibrate meteor shields quicker and with less risk of frying them." diff --git a/code/modules/antagonists/traitor/objectives/final_objective/romerol.dm b/code/modules/antagonists/traitor/objectives/final_objective/romerol.dm deleted file mode 100644 index 09edc4b0c7395..0000000000000 --- a/code/modules/antagonists/traitor/objectives/final_objective/romerol.dm +++ /dev/null @@ -1,46 +0,0 @@ -/datum/traitor_objective/ultimate/romerol - name = "Spread the experimental bioterror agent Romerol by calling a droppod down at %AREA%" - description = "Go to %AREA%, and receive the bioterror agent. Spread it to the crew, \ - and watch then raise from the dead as mindless killing machines. Warning: The undead will attack you too." - - //this is a prototype so this progression is for all basic level kill objectives - - ///area type the objective owner must be in to receive the romerol - var/area/romerol_spawnarea_type - ///checker on whether we have sent the romerol yet. - var/sent_romerol = FALSE - -/datum/traitor_objective/ultimate/romerol/generate_objective(datum/mind/generating_for, list/possible_duplicates) - var/list/possible_areas = GLOB.the_station_areas.Copy() - for(var/area/possible_area as anything in possible_areas) - //remove areas too close to the destination, too obvious for our poor shmuck, or just unfair - if(ispath(possible_area, /area/station/hallway) || ispath(possible_area, /area/station/security)) - possible_areas -= possible_area - if(length(possible_areas) == 0) - return FALSE - romerol_spawnarea_type = pick(possible_areas) - replace_in_name("%AREA%", initial(romerol_spawnarea_type.name)) - return TRUE - -/datum/traitor_objective/ultimate/romerol/generate_ui_buttons(mob/user) - var/list/buttons = list() - if(!sent_romerol) - buttons += add_ui_button("", "Pressing this will call down a pod with the biohazard kit.", "biohazard", "romerol") - return buttons - -/datum/traitor_objective/ultimate/romerol/ui_perform_action(mob/living/user, action) - . = ..() - switch(action) - if("romerol") - if(sent_romerol) - return - var/area/delivery_area = get_area(user) - if(delivery_area.type != romerol_spawnarea_type) - to_chat(user, span_warning("You must be in [initial(romerol_spawnarea_type.name)] to receive the bioterror agent.")) - return - sent_romerol = TRUE - podspawn(list( - "target" = get_turf(user), - "style" = /datum/pod_style/syndicate, - "spawn" = /obj/item/storage/box/syndie_kit/romerol, - )) diff --git a/code/modules/antagonists/traitor/objectives/final_objective/supermatter_cascade.dm b/code/modules/antagonists/traitor/objectives/final_objective/supermatter_cascade.dm deleted file mode 100644 index 2e9396c90b070..0000000000000 --- a/code/modules/antagonists/traitor/objectives/final_objective/supermatter_cascade.dm +++ /dev/null @@ -1,57 +0,0 @@ -/datum/traitor_objective/ultimate/supermatter_cascade - name = "Destroy the station by causing a crystallizing resonance cascade" - description = "Destroy the station by causing a supermatter cascade. Go to %AREA% to retrieve the destabilizing crystal \ - and use it on the supermatter." - - ///area type the objective owner must be in to receive the destabilizing crystal - var/area/dest_crystal_area_pickup - ///checker on whether we have sent the crystal yet. - var/sent_crystal = FALSE - -/datum/traitor_objective/ultimate/supermatter_cascade/can_generate_objective(generating_for, list/possible_duplicates) - . = ..() - if(!.) - return FALSE - - if(isnull(GLOB.main_supermatter_engine)) - return FALSE - var/obj/machinery/power/supermatter_crystal/engine/crystal = locate() in GLOB.main_supermatter_engine - if(!is_station_level(crystal.z) && !is_mining_level(crystal.z)) - return FALSE - - return TRUE - -/datum/traitor_objective/ultimate/supermatter_cascade/generate_objective(datum/mind/generating_for, list/possible_duplicates) - var/list/possible_areas = GLOB.the_station_areas.Copy() - for(var/area/possible_area as anything in possible_areas) - //remove areas too close to the destination, too obvious for our poor shmuck, or just unfair - if(ispath(possible_area, /area/station/hallway) || ispath(possible_area, /area/station/security)) - possible_areas -= possible_area - if(length(possible_areas) == 0) - return FALSE - dest_crystal_area_pickup = pick(possible_areas) - replace_in_name("%AREA%", initial(dest_crystal_area_pickup.name)) - return TRUE - -/datum/traitor_objective/ultimate/supermatter_cascade/generate_ui_buttons(mob/user) - var/list/buttons = list() - if(!sent_crystal) - buttons += add_ui_button("", "Pressing this will call down a pod with the supermatter cascade kit.", "biohazard", "destabilizing_crystal") - return buttons - -/datum/traitor_objective/ultimate/supermatter_cascade/ui_perform_action(mob/living/user, action) - . = ..() - switch(action) - if("destabilizing_crystal") - if(sent_crystal) - return - var/area/delivery_area = get_area(user) - if(delivery_area.type != dest_crystal_area_pickup) - to_chat(user, span_warning("You must be in [initial(dest_crystal_area_pickup.name)] to receive the supermatter cascade kit.")) - return - sent_crystal = TRUE - podspawn(list( - "target" = get_turf(user), - "style" = /datum/pod_style/syndicate, - "spawn" = /obj/item/destabilizing_crystal, - )) diff --git a/code/modules/antagonists/traitor/objectives/hack_comm_console.dm b/code/modules/antagonists/traitor/objectives/hack_comm_console.dm deleted file mode 100644 index 1874b79d8a106..0000000000000 --- a/code/modules/antagonists/traitor/objectives/hack_comm_console.dm +++ /dev/null @@ -1,55 +0,0 @@ -/datum/traitor_objective_category/hack_comm_console - name = "Hack Communication Console" - objectives = list( - /datum/traitor_objective/hack_comm_console = 1, - ) - -/datum/traitor_objective/hack_comm_console - name = "Hack a communication console to summon an unknown threat to the station" - description = "Right click on a communication console to begin the hacking process. Once started, the AI will know that you are hacking a communication console, so be ready to run or have yourself disguised to prevent being caught. This objective will invalidate itself if another traitor completes it first." - - progression_minimum = 60 MINUTES - progression_reward = list(30 MINUTES, 40 MINUTES) - telecrystal_reward = list(7, 12) - - var/progression_objectives_minimum = 20 MINUTES - -/datum/traitor_objective/hack_comm_console/can_generate_objective(datum/mind/generating_for, list/possible_duplicates) - if(length(possible_duplicates) > 0) - return FALSE - if(SStraitor.get_taken_count(/datum/traitor_objective/hack_comm_console) > 0) - return FALSE - if(handler.get_completion_progression(/datum/traitor_objective) < progression_objectives_minimum) - return FALSE - return TRUE - -/datum/traitor_objective/hack_comm_console/generate_objective(datum/mind/generating_for, list/possible_duplicates) - AddComponent(/datum/component/traitor_objective_mind_tracker, generating_for, \ - signals = list(COMSIG_LIVING_UNARMED_ATTACK = PROC_REF(on_unarmed_attack))) - RegisterSignal(SSdcs, COMSIG_GLOB_TRAITOR_OBJECTIVE_COMPLETED, PROC_REF(on_global_obj_completed)) - return TRUE - -/datum/traitor_objective/hack_comm_console/ungenerate_objective() - UnregisterSignal(SSdcs, COMSIG_GLOB_TRAITOR_OBJECTIVE_COMPLETED) - -/datum/traitor_objective/hack_comm_console/proc/on_global_obj_completed(datum/source, datum/traitor_objective/objective) - SIGNAL_HANDLER - if(istype(objective, /datum/traitor_objective/hack_comm_console)) - fail_objective() - -/datum/traitor_objective/hack_comm_console/proc/on_unarmed_attack(mob/user, obj/machinery/computer/communications/target, proximity_flag, modifiers) - SIGNAL_HANDLER - if(!proximity_flag) - return - if(!modifiers[RIGHT_CLICK]) - return - if(!istype(target)) - return - INVOKE_ASYNC(src, PROC_REF(begin_hack), user, target) - return COMPONENT_CANCEL_ATTACK_CHAIN - -/datum/traitor_objective/hack_comm_console/proc/begin_hack(mob/user, obj/machinery/computer/communications/target) - if(!target.try_hack_console(user)) - return - - succeed_objective() diff --git a/code/modules/antagonists/traitor/objectives/infect.dm b/code/modules/antagonists/traitor/objectives/infect.dm deleted file mode 100644 index 459e8f54a0d70..0000000000000 --- a/code/modules/antagonists/traitor/objectives/infect.dm +++ /dev/null @@ -1,176 +0,0 @@ -/datum/traitor_objective_category/infect - name = "Infect with Disease" - objectives = list( - /datum/traitor_objective/target_player/infect = 1, - ) - -/datum/traitor_objective/target_player/infect - name = "Infect %TARGET% the %JOB TITLE%" - description = "Infect your target with the experimental Hereditary Manifold Sickness." - - progression_minimum = 30 MINUTES - - progression_reward = list(8 MINUTES, 14 MINUTES) - telecrystal_reward = 1 - - duplicate_type = /datum/traitor_objective/target_player/infect - - /// if TRUE, can only target heads of staff - /// if FALSE, CANNOT target heads of staff - var/heads_of_staff = FALSE - /// if TRUE, the injector item has been bestowed upon the player - var/injector_given = FALSE - -/datum/traitor_objective/target_player/infect/supported_configuration_changes() - . = ..() - . += NAMEOF(src, objective_period) - . += NAMEOF(src, maximum_objectives_in_period) - -/datum/traitor_objective/target_player/infect/can_generate_objective(generating_for, list/possible_duplicates) - if(length(possible_duplicates) > 0) - return FALSE - return ..() - -/datum/traitor_objective/target_player/infect/generate_ui_buttons(mob/user) - var/list/buttons = list() - if(!injector_given) - buttons += add_ui_button("", "Pressing this will materialize a EHMS autoinjector into your hand, which you must inject into the target to succeed.", "syringe", "summon_pen") - return buttons - -/datum/traitor_objective/target_player/infect/ui_perform_action(mob/living/user, action) - . = ..() - switch(action) - if("summon_pen") - if(injector_given) - return - injector_given = TRUE - var/obj/item/reagent_containers/hypospray/medipen/manifoldinjector/ehms = new(user.drop_location()) - user.put_in_hands(ehms) - ehms.balloon_alert(user, "the injector materializes in your hand") - RegisterSignal(ehms, COMSIG_EHMS_INJECTOR_INJECTED, PROC_REF(on_injected)) - AddComponent(/datum/component/traitor_objective_register, ehms, \ - succeed_signals = null, \ - fail_signals = list(COMSIG_QDELETING), \ - penalty = TRUE) - -/datum/traitor_objective/target_player/infect/proc/on_injected(datum/source, mob/living/user, mob/living/injected) - SIGNAL_HANDLER - if(injected != target) - fail_objective() - return - if(injected == target) - succeed_objective() - return - -/datum/traitor_objective/target_player/infect/generate_objective(datum/mind/generating_for, list/possible_duplicates) - - var/list/already_targeting = list() //List of minds we're already targeting. The possible_duplicates is a list of objectives, so let's not mix things - for(var/datum/objective/task as anything in handler.primary_objectives) - if(!istype(task.target, /datum/mind)) - continue - already_targeting += task.target //Removing primary objective kill targets from the list - - var/parent_type = type2parent(type) - //don't roll head of staff types if you haven't completed the normal version - if(heads_of_staff && !handler.get_completion_count(parent_type)) - // Locked if they don't have any of the risky bug room objective completed - return FALSE - - var/list/possible_targets = list() - var/try_target_late_joiners = FALSE - if(generating_for.late_joiner) - try_target_late_joiners = TRUE - for(var/datum/mind/possible_target as anything in get_crewmember_minds()) - if(possible_target in already_targeting) - continue - var/target_area = get_area(possible_target.current) - if(possible_target == generating_for) - continue - if(!ishuman(possible_target.current)) - continue - if(possible_target.current.stat == DEAD) - continue - var/datum/antagonist/traitor/traitor = possible_target.has_antag_datum(/datum/antagonist/traitor) - if(traitor && traitor.uplink_handler.telecrystals >= 0) - continue - var/mob/living/carbon/human/targets_current = possible_target.current - var/datum/disease/chronic_illness/illness = locate() in targets_current.diseases - if(illness) - continue - if(!HAS_TRAIT(SSstation, STATION_TRAIT_LATE_ARRIVALS) && istype(target_area, /area/shuttle/arrival)) - continue - //removes heads of staff from being targets from non heads of staff assassinations, and vice versa - if(heads_of_staff) - if(!(possible_target.assigned_role.job_flags & JOB_HEAD_OF_STAFF)) - continue - else - if((possible_target.assigned_role.job_flags & JOB_HEAD_OF_STAFF)) - continue - possible_targets += possible_target - for(var/datum/traitor_objective/target_player/objective as anything in possible_duplicates) - possible_targets -= objective.target - if(try_target_late_joiners) - var/list/all_possible_targets = possible_targets.Copy() - for(var/datum/mind/possible_target as anything in all_possible_targets) - if(!possible_target.late_joiner) - possible_targets -= possible_target - if(!possible_targets.len) - possible_targets = all_possible_targets - special_target_filter(possible_targets) - if(!possible_targets.len) - return FALSE //MISSION FAILED, WE'LL GET EM NEXT TIME - - var/datum/mind/target_mind = pick(possible_targets) - set_target(target_mind.current) - replace_in_name("%TARGET%", target.real_name) - replace_in_name("%JOB TITLE%", target_mind.assigned_role.title) - RegisterSignal(target, COMSIG_LIVING_DEATH, PROC_REF(on_target_death)) - return TRUE - -/datum/traitor_objective/target_player/infect/ungenerate_objective() - UnregisterSignal(target, COMSIG_LIVING_DEATH) - set_target(null) - -///proc for checking for special states that invalidate a target -/datum/traitor_objective/target_player/infect/proc/special_target_filter(list/possible_targets) - return - -/datum/traitor_objective/target_player/infect/target_deleted() - if(objective_state == OBJECTIVE_STATE_INACTIVE) - //don't take an objective target of someone who is already obliterated - fail_objective() - return ..() - -/datum/traitor_objective/target_player/infect/proc/on_target_death() - SIGNAL_HANDLER - if(objective_state == OBJECTIVE_STATE_INACTIVE) - //don't take an objective target of someone who is already dead - fail_objective() - -/obj/item/reagent_containers/hypospray/medipen/manifoldinjector - name = "EHMS autoinjector" - desc = "Experimental Hereditary Manifold Sickness autoinjector." - icon_state = "tbpen" - inhand_icon_state = "tbpen" - base_icon_state = "tbpen" - volume = 30 - amount_per_transfer_from_this = 30 - list_reagents = list(/datum/reagent/medicine/sansufentanyl = 20) - stealthy = TRUE - //Was the injector used on someone yet? - var/used = FALSE - -/obj/item/reagent_containers/hypospray/medipen/manifoldinjector/attack(mob/living/affected_mob, mob/living/carbon/human/user) - if(used) - return ..() - to_chat(affected_mob, span_warning("You feel someone try to inject you with something.")) - balloon_alert(user, "injecting...") - log_combat(user, affected_mob, "attempted to inject", src) - if(!do_after(user, 1.5 SECONDS, hidden = TRUE)) - balloon_alert(user, "interrupted!") - return - var/datum/disease/chronic_illness/hms = new /datum/disease/chronic_illness() - affected_mob.ForceContractDisease(hms) - used = TRUE - inject(affected_mob, user) - SEND_SIGNAL(src, COMSIG_EHMS_INJECTOR_INJECTED, user, affected_mob) diff --git a/code/modules/antagonists/traitor/objectives/kidnapping.dm b/code/modules/antagonists/traitor/objectives/kidnapping.dm deleted file mode 100644 index 0d4ff5cfd9971..0000000000000 --- a/code/modules/antagonists/traitor/objectives/kidnapping.dm +++ /dev/null @@ -1,300 +0,0 @@ -/datum/traitor_objective/target_player/kidnapping - name = "Kidnap %TARGET% the %JOB TITLE% and deliver them to %AREA%" - description = "%TARGET% holds extremely important information regarding secret NT projects - and you'll need to kidnap and deliver them to %AREA%, where our transport pod will be waiting. \ - If %TARGET% is delivered alive, you will be rewarded with an additional %TC% telecrystals." - - abstract_type = /datum/traitor_objective/target_player/kidnapping - - /// The jobs that this objective is targeting. - var/list/target_jobs - /// Area that the target needs to be delivered to - var/area/dropoff_area - /// Have we called the pod yet? - var/pod_called = FALSE - /// How much TC do we get from sending the target alive - var/alive_bonus = 0 - /// All stripped targets belongings (weakrefs) - var/list/target_belongings = list() - /// The ID of the stoppable timer for returning the captured crew - var/list/victim_timerid - - duplicate_type = /datum/traitor_objective/target_player - -/datum/traitor_objective/target_player/kidnapping/supported_configuration_changes() - . = ..() - . += NAMEOF(src, objective_period) - . += NAMEOF(src, maximum_objectives_in_period) - -/datum/traitor_objective/target_player/kidnapping/New(datum/uplink_handler/handler) - . = ..() - AddComponent(/datum/component/traitor_objective_limit_per_time, \ - /datum/traitor_objective/target_player, \ - time_period = objective_period, \ - maximum_objectives = maximum_objectives_in_period \ - ) - -/datum/traitor_objective/target_player/kidnapping/common - progression_minimum = 0 MINUTES - progression_maximum = 30 MINUTES - progression_reward = list(2 MINUTES, 4 MINUTES) - telecrystal_reward = list(1, 2) - target_jobs = list( - // Cargo - /datum/job/cargo_technician, - // Engineering - /datum/job/atmospheric_technician, - /datum/job/station_engineer, - // Medical - /datum/job/chemist, - /datum/job/doctor, - /datum/job/psychologist, - /datum/job/coroner, - // Science - /datum/job/geneticist, - /datum/job/roboticist, - /datum/job/scientist, - // Service - /datum/job/bartender, - /datum/job/botanist, - /datum/job/chaplain, - /datum/job/clown, - /datum/job/curator, - /datum/job/janitor, - /datum/job/lawyer, - /datum/job/mime, - ) - alive_bonus = 2 - -/datum/traitor_objective/target_player/kidnapping/common/assistant - progression_minimum = 0 MINUTES - progression_maximum = 15 MINUTES - target_jobs = list( - /datum/job/assistant - ) - -/datum/traitor_objective/target_player/kidnapping/uncommon //Hard to fish out targets - progression_minimum = 0 MINUTES - progression_maximum = 45 MINUTES - progression_reward = list(4 MINUTES, 8 MINUTES) - telecrystal_reward = list(1, 2) - - target_jobs = list( - // Cargo - /datum/job/bitrunner, - /datum/job/shaft_miner, - // Medical - /datum/job/paramedic, - // Service - /datum/job/cook, - ) - alive_bonus = 3 - -/datum/traitor_objective/target_player/kidnapping/rare - progression_minimum = 15 MINUTES - progression_maximum = 60 MINUTES - progression_reward = list(8 MINUTES, 12 MINUTES) - telecrystal_reward = list(2, 3) - target_jobs = list( - // Heads of staff - /datum/job/chief_engineer, - /datum/job/chief_medical_officer, - /datum/job/head_of_personnel, - /datum/job/research_director, - /datum/job/quartermaster, - // Security - /datum/job/detective, - /datum/job/security_officer, - /datum/job/warden, - ) - alive_bonus = 4 - -/datum/traitor_objective/target_player/kidnapping/captain - progression_minimum = 30 MINUTES - progression_reward = list(12 MINUTES, 16 MINUTES) - telecrystal_reward = list(2, 3) - target_jobs = list( - /datum/job/captain, - /datum/job/head_of_security, - ) - alive_bonus = 5 - -/datum/traitor_objective/target_player/kidnapping/generate_objective(datum/mind/generating_for, list/possible_duplicates) - - var/list/already_targeting = list() //List of minds we're already targeting. The possible_duplicates is a list of objectives, so let's not mix things - for(var/datum/objective/task as anything in handler.primary_objectives) - if(!istype(task.target, /datum/mind)) - continue - already_targeting += task.target //Removing primary objective kill targets from the list - - var/list/possible_targets = list() - for(var/datum/mind/possible_target as anything in get_crewmember_minds()) - if(possible_target == generating_for) - continue - - if(possible_target in already_targeting) - continue - - if(!ishuman(possible_target.current)) - continue - - if(possible_target.current.stat == DEAD) - continue - - if(HAS_TRAIT(possible_target, TRAIT_HAS_BEEN_KIDNAPPED)) - continue - - if(possible_target.has_antag_datum(/datum/antagonist/traitor)) - continue - - if(!(possible_target.assigned_role.type in target_jobs)) - continue - - possible_targets += possible_target - - for(var/datum/traitor_objective/target_player/objective as anything in possible_duplicates) - if(!objective.target) //the old objective was already completed. - continue - possible_targets -= objective.target.mind - - if(!length(possible_targets)) - return FALSE - - var/datum/mind/target_mind = pick(possible_targets) - set_target(target_mind.current) - AddComponent(/datum/component/traitor_objective_register, target, fail_signals = list(COMSIG_QDELETING)) - var/list/possible_areas = GLOB.the_station_areas.Copy() - for(var/area/possible_area as anything in possible_areas) - if(ispath(possible_area, /area/station/hallway) || ispath(possible_area, /area/station/security) || initial(possible_area.outdoors)) - possible_areas -= possible_area - - dropoff_area = pick(possible_areas) - replace_in_name("%TARGET%", target_mind.name) - replace_in_name("%JOB TITLE%", target_mind.assigned_role.title) - replace_in_name("%AREA%", initial(dropoff_area.name)) - replace_in_name("%TC%", alive_bonus) - return TRUE - -/datum/traitor_objective/target_player/kidnapping/ungenerate_objective() - set_target(null) - dropoff_area = null - -/datum/traitor_objective/target_player/kidnapping/on_objective_taken(mob/user) - . = ..() - INVOKE_ASYNC(src, PROC_REF(generate_holding_area)) - -/datum/traitor_objective/target_player/kidnapping/proc/generate_holding_area() - // Let's load in the holding facility ahead of time - // even if they fail the objective it's better to get done now rather than later - SSmapping.lazy_load_template(LAZY_TEMPLATE_KEY_NINJA_HOLDING_FACILITY) - -/datum/traitor_objective/target_player/kidnapping/generate_ui_buttons(mob/user) - var/list/buttons = list() - if(!pod_called) - buttons += add_ui_button("Call Extraction Pod", "Pressing this will call down an extraction pod.", "rocket", "call_pod") - return buttons - -/datum/traitor_objective/target_player/kidnapping/ui_perform_action(mob/living/user, action) - . = ..() - switch(action) - if("call_pod") - if(pod_called) - return - var/area/user_area = get_area(user) - var/area/target_area = get_area(target) - - if(user_area.type != dropoff_area) - to_chat(user, span_warning("You must be in [initial(dropoff_area.name)] to call the extraction pod.")) - return - - if(target_area.type != dropoff_area) - to_chat(user, span_warning("[target.real_name] must be in [initial(dropoff_area.name)] for you to call the extraction pod.")) - return - - call_pod(user) - -/datum/traitor_objective/target_player/kidnapping/proc/call_pod(mob/living/user) - pod_called = TRUE - var/obj/structure/closet/supplypod/extractionpod/new_pod = new() - RegisterSignal(new_pod, COMSIG_ATOM_ENTERED, PROC_REF(enter_check)) - new /obj/effect/pod_landingzone(get_turf(user), new_pod) - -/datum/traitor_objective/target_player/kidnapping/proc/enter_check(obj/structure/closet/supplypod/extractionpod/source, entered_atom) - SIGNAL_HANDLER - if(!istype(source)) - CRASH("Kidnapping objective's enter_check called with source being not an extraction pod: [source ? source.type : "N/A"]") - - if(!ishuman(entered_atom)) - return - - var/mob/living/carbon/human/sent_mob = entered_atom - - for(var/obj/item/belonging in sent_mob.gather_belongings(FALSE, FALSE)) - if(belonging == sent_mob.get_item_by_slot(ITEM_SLOT_ICLOTHING) || belonging == sent_mob.get_item_by_slot(ITEM_SLOT_FEET)) - continue - - var/unequipped = sent_mob.temporarilyRemoveItemFromInventory(belonging) - if (!unequipped) - continue - belonging.moveToNullspace() - target_belongings.Add(WEAKREF(belonging)) - - var/datum/market_item/hostage/market_item = sent_mob.process_capture(rand(1000, 3000)) - RegisterSignal(market_item, COMSIG_MARKET_ITEM_SPAWNED, PROC_REF(on_victim_shipped)) - - addtimer(CALLBACK(src, PROC_REF(handle_target), sent_mob), 1.5 SECONDS) - - if(sent_mob != target) - fail_objective(penalty_cost = telecrystal_penalty) - source.startExitSequence(source) - return - - if(sent_mob.stat != DEAD) - telecrystal_reward += alive_bonus - - succeed_objective() - source.startExitSequence(source) - -/datum/traitor_objective/target_player/kidnapping/proc/handle_target(mob/living/carbon/human/sent_mob) - victim_timerid = addtimer(CALLBACK(src, PROC_REF(return_target), sent_mob), COME_BACK_FROM_CAPTURE_TIME, TIMER_STOPPABLE) - if(sent_mob.stat == DEAD) - return - - sent_mob.flash_act() - sent_mob.adjust_confusion(10 SECONDS) - sent_mob.adjust_dizzy(10 SECONDS) - sent_mob.set_eye_blur_if_lower(100 SECONDS) - sent_mob.dna.species.give_important_for_life(sent_mob) // so plasmamen do not get left for dead - to_chat(sent_mob, span_hypnophrase("A million voices echo in your head... \"Your mind held many valuable secrets - \ - we thank you for providing them. Your value is expended, and you will be ransomed back to your station. We always get paid, \ - so it's only a matter of time before we ship you back...\"")) - -/datum/traitor_objective/target_player/kidnapping/proc/return_target(mob/living/carbon/human/sent_mob) - if(!sent_mob || QDELETED(sent_mob)) //suicided and qdeleted themselves - return - - var/obj/structure/closet/supplypod/back_to_station/return_pod = new() - return_pod.return_from_capture(sent_mob) - returnal_side_effects(return_pod, sent_mob) - -/datum/traitor_objective/target_player/kidnapping/proc/on_victim_shipped(datum/market_item/source, obj/item/market_uplink/uplink, shipping_method, turf/shipping_loc) - SIGNAL_HANDLER - deltimer(victim_timerid) - returnal_side_effects(shipping_loc, source.item) - -/datum/traitor_objective/target_player/kidnapping/proc/returnal_side_effects(atom/dropoff_location, mob/living/carbon/human/sent_mob) - for(var/obj/item/belonging in sent_mob.gather_belongings()) - if(belonging == sent_mob.get_item_by_slot(ITEM_SLOT_ICLOTHING) || belonging == sent_mob.get_item_by_slot(ITEM_SLOT_FEET)) - continue - sent_mob.dropItemToGround(belonging) // No souvenirs, except shoes and t-shirts - - for(var/datum/weakref/belonging_ref in target_belongings) - var/obj/item/belonging = belonging_ref.resolve() - if(!belonging) - continue - belonging.forceMove(dropoff_location) - - sent_mob.flash_act() - sent_mob.adjust_confusion(10 SECONDS) - sent_mob.adjust_dizzy(10 SECONDS) - sent_mob.set_eye_blur_if_lower(100 SECONDS) - sent_mob.dna.species.give_important_for_life(sent_mob) // so plasmamen do not get left for dead diff --git a/code/modules/antagonists/traitor/objectives/kill_pet.dm b/code/modules/antagonists/traitor/objectives/kill_pet.dm deleted file mode 100644 index ddaf6ee47ce2a..0000000000000 --- a/code/modules/antagonists/traitor/objectives/kill_pet.dm +++ /dev/null @@ -1,97 +0,0 @@ -/datum/traitor_objective_category/kill_pet - name = "Kill Pet" - objectives = list( - /datum/traitor_objective/kill_pet/high_risk = 1, - list( - /datum/traitor_objective/kill_pet = 2, - /datum/traitor_objective/kill_pet/medium_risk = 1, - ) = 4, - ) - -/datum/traitor_objective/kill_pet - name = "Kill the %DEPARTMENT HEAD%'s beloved %PET%" - description = "The %DEPARTMENT HEAD% has particularly annoyed us by sending us spam emails and we want their %PET% dead to show them what happens when they cross us. " - - progression_minimum = 0 MINUTES - telecrystal_reward = list(1, 2) - progression_reward = list(3 MINUTES, 6 MINUTES) - - /// Possible heads mapped to their pet type. Can be a list of possible pets - var/list/possible_heads = list( - JOB_HEAD_OF_PERSONNEL = list( - /mob/living/basic/pet/dog/corgi/ian, - /mob/living/basic/pet/dog/corgi/puppy/ian - ), - JOB_CAPTAIN = /mob/living/basic/pet/fox/renault, - JOB_CHIEF_MEDICAL_OFFICER = /mob/living/basic/pet/cat/runtime, - JOB_CHIEF_ENGINEER = /mob/living/basic/parrot/poly, - JOB_QUARTERMASTER = list( - /mob/living/basic/gorilla/cargorilla, - /mob/living/basic/sloth/citrus, - /mob/living/basic/sloth/paperwork, - ) - ) - /// The head that we are targeting - var/datum/job/target - /// Whether or not we only take from the traitor's own department head or not. - var/limited_to_department_head = TRUE - /// The actual pet that needs to be killed - var/mob/living/target_pet - - duplicate_type = /datum/traitor_objective/kill_pet - -/datum/traitor_objective/kill_pet/medium_risk - progression_minimum = 10 MINUTES - progression_reward = list(5 MINUTES, 8 MINUTES) - limited_to_department_head = FALSE - -/datum/traitor_objective/kill_pet/high_risk - progression_minimum = 25 MINUTES - progression_reward = list(14 MINUTES, 18 MINUTES) - telecrystal_reward = list(2, 3) - - limited_to_department_head = FALSE - possible_heads = list( - JOB_HEAD_OF_SECURITY = list( - /mob/living/basic/carp/pet/lia, - /mob/living/basic/spider/giant/sgt_araneus, - /mob/living/basic/bear/snow/misha, - ), - JOB_WARDEN = list( - /mob/living/basic/pet/dog/pug/mcgriff - ) - ) - -/datum/traitor_objective/kill_pet/generate_objective(datum/mind/generating_for, list/possible_duplicates) - var/datum/job/role = generating_for.assigned_role - for(var/datum/traitor_objective/kill_pet/objective as anything in possible_duplicates) - possible_heads -= objective.target.title - if(limited_to_department_head) - possible_heads = possible_heads & role.department_head - possible_heads -= role.title - - if(!length(possible_heads)) - return FALSE - target = SSjob.name_occupations[pick(possible_heads)] - var/pet_type = possible_heads[target.title] - if(islist(pet_type)) - for(var/type in pet_type) - target_pet = locate(type) in GLOB.mob_living_list - if(target_pet) - break - else - target_pet = locate(pet_type) in GLOB.mob_living_list - if(!target_pet) - return FALSE - if(target_pet.stat == DEAD) - return FALSE - AddComponent(/datum/component/traitor_objective_register, target_pet, \ - succeed_signals = list(COMSIG_QDELETING, COMSIG_LIVING_DEATH)) - replace_in_name("%DEPARTMENT HEAD%", target.title) - replace_in_name("%PET%", target_pet.name) - return TRUE - -/datum/traitor_objective/kill_pet/ungenerate_objective() - if(target_pet) - UnregisterSignal(target_pet, list(COMSIG_QDELETING, COMSIG_LIVING_DEATH)) - target_pet = null diff --git a/code/modules/antagonists/traitor/objectives/locate_weakpoint.dm b/code/modules/antagonists/traitor/objectives/locate_weakpoint.dm deleted file mode 100644 index 5492f04a0f847..0000000000000 --- a/code/modules/antagonists/traitor/objectives/locate_weakpoint.dm +++ /dev/null @@ -1,282 +0,0 @@ -/datum/traitor_objective_category/locate_weakpoint - name = "Locate And Destroy Weakpoint" - objectives = list( - /datum/traitor_objective/locate_weakpoint = 1, - ) - weight = OBJECTIVE_WEIGHT_UNLIKELY - -/datum/traitor_objective/locate_weakpoint - name = "Triangulate station's structural weakpoint and detonate an explosive charge nearby." - description = "You will be given a handheld device that you'll need to use in %AREA1% and %AREA2% in order to triangulate the station's structural weakpoint and detonate an explosive charge there. Warning: Once you start scanning either one of the areas, station's AI will be alerted." - - progression_minimum = 45 MINUTES - progression_reward = list(15 MINUTES, 20 MINUTES) - telecrystal_reward = list(3, 5) - - var/progression_objectives_minimum = 20 MINUTES - - /// Have we sent a weakpoint locator yet? - var/locator_sent = FALSE - /// Have we sent a bomb yet? - var/bomb_sent = FALSE - /// Have we located the weakpoint yet? - var/weakpoint_found = FALSE - /// Areas that need to be scanned - var/list/area/scan_areas - /// Weakpoint where the bomb should be planted - var/area/weakpoint_area - -/datum/traitor_objective/locate_weakpoint/can_generate_objective(datum/mind/generating_for, list/possible_duplicates) - if(length(possible_duplicates) > 0) - return FALSE - if(handler.get_completion_progression(/datum/traitor_objective) < progression_objectives_minimum) - return FALSE - if(SStraitor.get_taken_count(/datum/traitor_objective/locate_weakpoint) > 0) - return FALSE - return TRUE - -/datum/traitor_objective/locate_weakpoint/generate_objective(datum/mind/generating_for, list/possible_duplicates) - scan_areas = list() - /// List of high-security areas that we pick required ones from - var/list/allowed_areas = typecacheof(list(/area/station/command, - /area/station/comms, - /area/station/engineering, - /area/station/science, - /area/station/security, - )) - - var/list/blacklisted_areas = typecacheof(list(/area/station/engineering/hallway, - /area/station/engineering/lobby, - /area/station/engineering/storage, - /area/station/science/lobby, - /area/station/science/ordnance/bomb, - /area/station/security/prison, - )) - - var/list/possible_areas = GLOB.the_station_areas.Copy() - for(var/area/possible_area as anything in possible_areas) - if(!is_type_in_typecache(possible_area, allowed_areas) || initial(possible_area.outdoors) || is_type_in_typecache(possible_area, blacklisted_areas)) - possible_areas -= possible_area - - for(var/i in 1 to 2) - scan_areas[pick_n_take(possible_areas)] = TRUE - weakpoint_area = pick_n_take(possible_areas) - - var/area/scan_area1 = scan_areas[1] - var/area/scan_area2 = scan_areas[2] - replace_in_name("%AREA1%", initial(scan_area1.name)) - replace_in_name("%AREA2%", initial(scan_area2.name)) - RegisterSignal(SSdcs, COMSIG_GLOB_TRAITOR_OBJECTIVE_COMPLETED, PROC_REF(on_global_obj_completed)) - return TRUE - -/datum/traitor_objective/locate_weakpoint/ungenerate_objective() - UnregisterSignal(SSdcs, COMSIG_GLOB_TRAITOR_OBJECTIVE_COMPLETED) - -/datum/traitor_objective/locate_weakpoint/on_objective_taken(mob/user) - . = ..() - - // We don't want multiple people being able to take weakpoint objectives if they get one available at the same time - for(var/datum/traitor_objective/locate_weakpoint/other_objective as anything in SStraitor.all_objectives_by_type[/datum/traitor_objective/locate_weakpoint]) - if(other_objective != src) - other_objective.fail_objective() - - -/datum/traitor_objective/locate_weakpoint/proc/on_global_obj_completed(datum/source, datum/traitor_objective/objective) - SIGNAL_HANDLER - if(istype(objective, /datum/traitor_objective/locate_weakpoint)) - fail_objective() - -/datum/traitor_objective/locate_weakpoint/generate_ui_buttons(mob/user) - var/list/buttons = list() - if(!locator_sent) - buttons += add_ui_button("", "Pressing this will materialize a weakpoint locator in your hand.", "globe", "locator") - if(weakpoint_found && !bomb_sent) - buttons += add_ui_button("", "Pressing this will materialize an ES8 explosive charge in your hand.", "bomb", "shatter_charge") - return buttons - -/datum/traitor_objective/locate_weakpoint/ui_perform_action(mob/living/user, action) - . = ..() - switch(action) - if("locator") - if(locator_sent) - return - locator_sent = TRUE - var/obj/item/weakpoint_locator/locator = new(user.drop_location(), src) - user.put_in_hands(locator) - locator.balloon_alert(user, "the weakpoint locator materializes in your hand") - - if("shatter_charge") - if(bomb_sent) - return - bomb_sent = TRUE - var/obj/item/grenade/c4/es8/bomb = new(user.drop_location(), src) - user.put_in_hands(bomb) - bomb.balloon_alert(user, "the ES8 charge materializes in your hand") - -/datum/traitor_objective/locate_weakpoint/proc/weakpoint_located() - description = "Structural weakpoint has been located in %AREA%. Detonate an ES8 explosive charge there to create a shockwave that will severely damage the station." - replace_in_name("%AREA%", initial(weakpoint_area.name)) - weakpoint_found = TRUE - -/datum/traitor_objective/locate_weakpoint/proc/create_shockwave(center_x, center_y, center_z) - var/turf/epicenter = locate(center_x, center_y, center_z) - var/lowpop = (length(GLOB.clients) <= CONFIG_GET(number/minimal_access_threshold)) - if(lowpop) - explosion(epicenter, devastation_range = 2, heavy_impact_range = 4, light_impact_range = 6, explosion_cause = src) - else - explosion(epicenter, devastation_range = 3, heavy_impact_range = 6, light_impact_range = 9, explosion_cause = src) - priority_announce( - "Attention crew, it appears that a high-power explosive charge has been detonated in your station's weakpoint, causing severe structural damage.", - "[command_name()] High-Priority Update" - ) - - succeed_objective() - -/obj/item/weakpoint_locator - name = "structural weakpoint locator" - desc = "A device that can triangulate station's structural weakpoint. It has to be used in %AREA1% and %AREA2% in order to triangulate the weakpoint. Warning: station's AI will be notified as soon as the process starts!" - icon = 'icons/obj/antags/syndicate_tools.dmi' - icon_state = "weakpoint_locator" - inhand_icon_state = "weakpoint_locator" - lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' - righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' - throwforce = 0 - w_class = WEIGHT_CLASS_SMALL - throw_speed = 3 - throw_range = 5 - var/datum/weakref/objective_weakref - -/obj/item/weakpoint_locator/Initialize(mapload, datum/traitor_objective/locate_weakpoint/objective) - . = ..() - objective_weakref = WEAKREF(objective) - if(!objective) - return - var/area/area1 = objective.scan_areas[1] - var/area/area2 = objective.scan_areas[2] - desc = replacetext(desc, "%AREA1%", initial(area1.name)) - desc = replacetext(desc, "%AREA2%", initial(area2.name)) - -/obj/item/weakpoint_locator/Destroy(force) - objective_weakref = null - return ..() - -/obj/item/weakpoint_locator/attack_self(mob/living/user, modifiers) - . = ..() - if(!istype(user) || loc != user || !user.mind) //No TK cheese - return - - var/datum/traitor_objective/locate_weakpoint/objective = objective_weakref.resolve() - - if(!objective || objective.objective_state == OBJECTIVE_STATE_INACTIVE) - to_chat(user, span_warning("Your time to use [src] has not come yet.")) - return - - if(objective.handler.owner != user.mind) - to_chat(user, span_warning("You have zero clue how to use [src].")) - return - - var/area/user_area = get_area(user) - if(!(user_area.type in objective.scan_areas)) - balloon_alert(user, "invalid area!") - playsound(user, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) - return - - if(!objective.scan_areas[user_area.type]) - balloon_alert(user, "already scanned here!") - playsound(user, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) - return - - user.visible_message(span_danger("[user] presses a few buttons on [src] and it starts ominously beeping!"), span_notice("You activate [src] and start scanning the area. Do not exit [get_area_name(user, TRUE)] until the scan finishes!")) - playsound(user, 'sound/machines/beep/triple_beep.ogg', 30, TRUE) - var/alertstr = span_userdanger("Network Alert: Station network probing attempt detected[user_area?" in [get_area_name(user, TRUE)]":". Unable to pinpoint location"].") - for(var/mob/living/silicon/ai/ai_player in GLOB.player_list) - to_chat(ai_player, alertstr) - - if(!do_after(user, 30 SECONDS, src, IGNORE_USER_LOC_CHANGE | IGNORE_TARGET_LOC_CHANGE | IGNORE_HELD_ITEM | IGNORE_INCAPACITATED | IGNORE_SLOWDOWNS, extra_checks = CALLBACK(src, PROC_REF(scan_checks), user, user_area, objective), hidden = TRUE)) - playsound(user, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) - return - - playsound(user, 'sound/machines/ding.ogg', 100, TRUE) - objective.scan_areas[user_area.type] = FALSE - for(var/area/scan_area as anything in objective.scan_areas) - if(objective.scan_areas[scan_area]) - say("Next scanning location is [initial(scan_area.name)]") - return - - to_chat(user, span_notice("Scan finished. Structural weakpoint located in [initial(objective.weakpoint_area.name)].")) - objective.weakpoint_located() - -/obj/item/weakpoint_locator/proc/scan_checks(mob/living/user, area/user_area, datum/traitor_objective/locate_weakpoint/parent_objective) - if(get_area(user) != user_area) - return FALSE - - if(parent_objective.objective_state != OBJECTIVE_STATE_ACTIVE) - return FALSE - - var/atom/current_loc = loc - while(!isturf(current_loc) && !ismob(current_loc)) - current_loc = current_loc.loc - - if(current_loc != user) - return FALSE - - return TRUE - -/obj/item/grenade/c4/es8 - name = "ES8 explosive charge" - desc = "A high-power explosive charge designed to create a shockwave in a structural weakpoint of the station." - - icon_state = "plasticx40" - inhand_icon_state = "plasticx4" - worn_icon_state = "x4" - - boom_sizes = list(3, 6, 9) - - /// Weakref to user's objective - var/datum/weakref/objective_weakref - -/obj/item/grenade/c4/es8/Initialize(mapload, objective) - . = ..() - objective_weakref = WEAKREF(objective) - -/obj/item/grenade/c4/es8/Destroy() - objective_weakref = null - return ..() - -/obj/item/grenade/c4/es8/plant_c4(atom/bomb_target, mob/living/user) - if(!IS_TRAITOR(user)) - to_chat(user, span_warning("You can't seem to find a way to detonate the charge.")) - return FALSE - - var/datum/traitor_objective/locate_weakpoint/objective = objective_weakref.resolve() - if(!objective || objective.objective_state == OBJECTIVE_STATE_INACTIVE || objective.handler.owner != user.mind) - to_chat(user, span_warning("You don't think it would be wise to use [src].")) - return FALSE - - var/area/target_area = get_area(bomb_target) - if (target_area.type != objective.weakpoint_area) - to_chat(user, span_warning("[src] can only be detonated in [initial(objective.weakpoint_area.name)].")) - return FALSE - - if(!isfloorturf(bomb_target) && !iswallturf(bomb_target)) - to_chat(user, span_warning("[src] can only be planted on a wall or the floor!")) - return FALSE - - return ..() - -/obj/item/grenade/c4/es8/detonate(mob/living/lanced_by) - var/area/target_area = get_area(target) - var/datum/traitor_objective/locate_weakpoint/objective = objective_weakref.resolve() - - if(!objective) - return - - if (target_area.type != objective.weakpoint_area) - var/obj/item/grenade/c4/es8/new_bomb = new(target.drop_location()) - new_bomb.balloon_alert_to_viewers("invalid location!") - target.cut_overlay(plastic_overlay, TRUE) - qdel(src) - return - - objective.create_shockwave(target.x, target.y, target.z) - return ..() diff --git a/code/modules/antagonists/traitor/objectives/sabotage_machinery.dm b/code/modules/antagonists/traitor/objectives/sabotage_machinery.dm deleted file mode 100644 index 5f3e2387a351f..0000000000000 --- a/code/modules/antagonists/traitor/objectives/sabotage_machinery.dm +++ /dev/null @@ -1,239 +0,0 @@ -/// Datum which manages references to things we are instructed to destroy -GLOBAL_DATUM_INIT(objective_machine_handler, /datum/objective_target_machine_handler, new()) - -/// Marks a machine as a possible traitor sabotage target -/proc/add_sabotage_machine(source, typepath) - LAZYADD(GLOB.objective_machine_handler.machine_instances_by_path[typepath], source) - return typepath - -/// Traitor objective to destroy a machine the crew cares about -/datum/traitor_objective_category/sabotage_machinery - name = "Sabotage Worksite" - objectives = list( - /datum/traitor_objective/sabotage_machinery/trap = 1, - /datum/traitor_objective/sabotage_machinery/destroy = 1, - ) - -/datum/traitor_objective/sabotage_machinery - name = "Sabotage the %MACHINE%" - description = "Abstract objective holder which shouldn't appear in your uplink." - abstract_type = /datum/traitor_objective/sabotage_machinery - - /// The maximum amount of this type of objective a traitor can have, set to 0 for no limit. - var/maximum_allowed = 0 - /// The possible target machinery and the jobs tied to each one. - var/list/applicable_jobs = list() - /// The chosen job. Used to check for duplicates - var/chosen_job - -/datum/traitor_objective/sabotage_machinery/can_generate_objective(datum/mind/generating_for, list/possible_duplicates) - if(!maximum_allowed) - return TRUE - if(length(possible_duplicates) >= maximum_allowed) - return FALSE - return TRUE - -/datum/traitor_objective/sabotage_machinery/generate_objective(datum/mind/generating_for, list/possible_duplicates) - var/list/possible_jobs = applicable_jobs.Copy() - for(var/datum/traitor_objective/sabotage_machinery/objective as anything in possible_duplicates) - possible_jobs -= objective.chosen_job - for(var/available_job in possible_jobs) - var/job_machine_path = possible_jobs[available_job] - if (!length(GLOB.objective_machine_handler.machine_instances_by_path[job_machine_path])) - possible_jobs -= available_job - if(!length(possible_jobs)) - return FALSE - - chosen_job = pick(possible_jobs) - var/list/obj/machinery/possible_machines = GLOB.objective_machine_handler.machine_instances_by_path[possible_jobs[chosen_job]] - for(var/obj/machinery/machine as anything in possible_machines) - prepare_machine(machine) - - replace_in_name("%JOB%", LOWER_TEXT(chosen_job)) - replace_in_name("%MACHINE%", possible_machines[1].name) - return TRUE - -/// Marks a given machine as our target -/datum/traitor_objective/sabotage_machinery/proc/prepare_machine(obj/machinery/machine) - AddComponent(/datum/component/traitor_objective_register, machine, succeed_signals = list(COMSIG_QDELETING)) - -// Destroy machines which are in annoying locations, are annoying when destroyed, and aren't directly interacted with -/datum/traitor_objective/sabotage_machinery/destroy - name = "Destroy the %MACHINE%" - description = "Destroy the %MACHINE% to cause disarray and disrupt the operations of the %JOB%'s department." - - progression_reward = list(5 MINUTES, 10 MINUTES) - telecrystal_reward = list(3, 4) - - progression_minimum = 15 MINUTES - - applicable_jobs = list( - JOB_STATION_ENGINEER = /obj/machinery/telecomms/hub, - JOB_SCIENTIST = /obj/machinery/rnd/server, - ) - -// Rig machines which are in public locations to explode when interacted with -/datum/traitor_objective/sabotage_machinery/trap - name = "Sabotage the %MACHINE%" - description = "Destroy the %MACHINE% to cause disarray and disrupt the operations of the %JOB%'s department. If you can get another crew member to destroy the machine using the provided booby trap, you will be rewarded with an additional %PROGRESSION% reputation and %TC% telecrystals." - - progression_reward = list(2 MINUTES, 4 MINUTES) - telecrystal_reward = 0 // Only from completing the bonus objective - - progression_minimum = 0 MINUTES - progression_maximum = 10 MINUTES - - maximum_allowed = 2 - applicable_jobs = list( - JOB_CHIEF_ENGINEER = /obj/machinery/rnd/production/protolathe/department/engineering, - JOB_CHIEF_MEDICAL_OFFICER = /obj/machinery/rnd/production/techfab/department/medical, - JOB_HEAD_OF_PERSONNEL = /obj/machinery/rnd/production/techfab/department/service, - JOB_QUARTERMASTER = /obj/machinery/rnd/production/techfab/department/cargo, - JOB_RESEARCH_DIRECTOR = /obj/machinery/rnd/production/protolathe/department/science, - JOB_SHAFT_MINER = /obj/machinery/mineral/ore_redemption, - ) - - /// Bonus reward to grant if you booby trap successfully - var/bonus_tc = 2 - /// Bonus progression to grant if you booby trap successfully - var/bonus_progression = 5 MINUTES - /// Have we given out a traitor trap item? - var/traitor_trapper_given = FALSE - -/datum/traitor_objective/sabotage_machinery/trap/generate_objective(datum/mind/generating_for, list/possible_duplicates) - . = ..() - if (!.) - return FALSE - - replace_in_name("%TC%", bonus_tc) - replace_in_name("%PROGRESSION%", DISPLAY_PROGRESSION(bonus_progression)) - return TRUE - -/datum/traitor_objective/sabotage_machinery/trap/prepare_machine(obj/machinery/machine) - RegisterSignal(machine, COMSIG_TRAITOR_MACHINE_TRAP_TRIGGERED, PROC_REF(sabotage_success)) - return ..() - -/// Called when you successfully proc the booby trap, gives a bonus reward -/datum/traitor_objective/sabotage_machinery/trap/proc/sabotage_success(obj/machinery/machine) - progression_reward += bonus_progression - telecrystal_reward += bonus_tc - succeed_objective() - -/datum/traitor_objective/sabotage_machinery/trap/generate_ui_buttons(mob/user) - var/list/buttons = list() - if(!traitor_trapper_given) - buttons += add_ui_button("", "Pressing this will materialize an explosive trap in your hand, which you can conceal within the target machine", "wifi", "summon_gear") - return buttons - -/datum/traitor_objective/sabotage_machinery/trap/ui_perform_action(mob/living/user, action) - . = ..() - switch(action) - if("summon_gear") - if(traitor_trapper_given) - return - traitor_trapper_given = TRUE - var/obj/item/traitor_machine_trapper/tool = new(user.drop_location()) - user.put_in_hands(tool) - tool.balloon_alert(user, "a booby trap materializes in your hand") - tool.target_machine_path = applicable_jobs[chosen_job] - -/// Item which you use on a machine to cause it to explode next time someone interacts with it -/obj/item/traitor_machine_trapper - name = "suspicious device" - desc = "It looks dangerous." - icon = 'icons/obj/weapons/grenade.dmi' - icon_state = "boobytrap" - - /// Light explosion range, to hurt the person using the machine - var/explosion_range = 3 - /// The type of object on which this can be planted on. - var/obj/machinery/target_machine_path - /// The time it takes to deploy the bomb. - var/deploy_time = 10 SECONDS - -/obj/item/traitor_machine_trapper/examine(mob/user) - . = ..() - if(!IS_TRAITOR(user)) - return - if(target_machine_path) - . += span_notice("This device must be placed by clicking on a [initial(target_machine_path.name)] with it. It can be removed with a screwdriver.") - . += span_notice("Remember, you may leave behind fingerprints on the device. Wear gloves when handling it to be safe!") - -/obj/item/traitor_machine_trapper/pre_attack(atom/target, mob/living/user, params) - . = ..() - if (. || !istype(target, target_machine_path)) - return - balloon_alert(user, "planting device...") - if(!do_after(user, delay = deploy_time, target = src, interaction_key = DOAFTER_SOURCE_PLANTING_DEVICE, hidden = TRUE)) - return TRUE - target.AddComponent(\ - /datum/component/interaction_booby_trap,\ - additional_triggers = list(COMSIG_ORM_COLLECTED_ORE),\ - on_triggered_callback = CALLBACK(src, PROC_REF(on_triggered)),\ - on_defused_callback = CALLBACK(src, PROC_REF(on_defused)),\ - ) - RegisterSignal(target, COMSIG_QDELETING, GLOBAL_PROC_REF(qdel), src) - moveToNullspace() - return TRUE - -/// Called when applied trap is triggered, mark success -/obj/item/traitor_machine_trapper/proc/on_triggered(atom/machine) - SEND_SIGNAL(machine, COMSIG_TRAITOR_MACHINE_TRAP_TRIGGERED) - qdel(src) - -/// Called when applied trap has been defused, retrieve this item from nullspace -/obj/item/traitor_machine_trapper/proc/on_defused(atom/machine, mob/defuser, obj/item/tool) - UnregisterSignal(machine, COMSIG_QDELETING) - playsound(machine, 'sound/effects/structure_stress/pop3.ogg', 100, vary = TRUE) - forceMove(get_turf(machine)) - visible_message(span_warning("A [src] falls out from the [machine]!")) - -/// Datum which manages references to things we are instructed to destroy -/datum/objective_target_machine_handler - /// Existing instances of machines organised by typepath - var/list/machine_instances_by_path = list() - -/datum/objective_target_machine_handler/New() - . = ..() - RegisterSignal(SSdcs, COMSIG_GLOB_NEW_MACHINE, PROC_REF(on_machine_created)) - RegisterSignal(SSatoms, COMSIG_SUBSYSTEM_POST_INITIALIZE, PROC_REF(finalise_valid_targets)) - -/// Adds a newly created machine to our list of machines, if we need it -/datum/objective_target_machine_handler/proc/on_machine_created(datum/source, obj/machinery/new_machine) - SIGNAL_HANDLER - new_machine.add_as_sabotage_target() - -/// Confirm that everything added to the list is a valid target, then prevent new targets from being added -/datum/objective_target_machine_handler/proc/finalise_valid_targets() - SIGNAL_HANDLER - for (var/machine_type in machine_instances_by_path) - for (var/obj/machinery/machine as anything in machine_instances_by_path[machine_type]) - var/turf/place = get_turf(machine) - if(!place || !is_station_level(place.z)) - machine_instances_by_path[machine_type] -= machine - continue - RegisterSignal(machine, COMSIG_QDELETING, PROC_REF(machine_destroyed)) - UnregisterSignal(SSdcs, COMSIG_GLOB_NEW_MACHINE) - -/datum/objective_target_machine_handler/proc/machine_destroyed(atom/machine) - SIGNAL_HANDLER - // Sadly can't do a direct typepath association because of some map helper subtypes - for (var/machine_type in machine_instances_by_path) - machine_instances_by_path[machine_type] -= machine - -// Mark valid machines as targets, add a new entry here if you add a new potential target - -/obj/machinery/telecomms/hub/add_as_sabotage_target() - return add_sabotage_machine(src, /obj/machinery/telecomms/hub) // Not always our specific type because of map helper subtypes - -/obj/machinery/rnd/server/add_as_sabotage_target() - return add_sabotage_machine(src, type) - -/obj/machinery/rnd/production/protolathe/department/add_as_sabotage_target() - return add_sabotage_machine(src, type) - -/obj/machinery/rnd/production/techfab/department/add_as_sabotage_target() - return add_sabotage_machine(src, type) - -/obj/machinery/mineral/ore_redemption/add_as_sabotage_target() - return add_sabotage_machine(src, type) diff --git a/code/modules/antagonists/traitor/objectives/steal.dm b/code/modules/antagonists/traitor/objectives/steal.dm deleted file mode 100644 index 4c697d66d57fc..0000000000000 --- a/code/modules/antagonists/traitor/objectives/steal.dm +++ /dev/null @@ -1,318 +0,0 @@ -/datum/traitor_objective_category/steal_item - name = "Steal Item" - objectives = list( - list( - /datum/traitor_objective/steal_item/low_risk = 1, - /datum/traitor_objective/destroy_item/low_risk = 1, - ) = 1, - /datum/traitor_objective/steal_item/somewhat_risky = 1, - list( - /datum/traitor_objective/destroy_item/very_risky = 1, - /datum/traitor_objective/steal_item/very_risky = 1, - ) = 1, - /datum/traitor_objective/steal_item/most_risky = 1 - ) - -GLOBAL_DATUM_INIT(steal_item_handler, /datum/objective_item_handler, new()) - -/datum/objective_item_handler - var/list/list/objectives_by_path - var/generated_items = FALSE - -/datum/objective_item_handler/New() - . = ..() - objectives_by_path = list() - for(var/datum/objective_item/item as anything in subtypesof(/datum/objective_item)) - objectives_by_path[initial(item.targetitem)] = list() - RegisterSignal(SSatoms, COMSIG_SUBSYSTEM_POST_INITIALIZE, PROC_REF(save_items)) - RegisterSignal(SSdcs, COMSIG_GLOB_NEW_ITEM, PROC_REF(new_item_created)) - -/datum/objective_item_handler/proc/new_item_created(datum/source, obj/item/item) - SIGNAL_HANDLER - if(HAS_TRAIT(item, TRAIT_ITEM_OBJECTIVE_BLOCKED)) - return - if(!generated_items) - item.add_stealing_item_objective() - return - var/typepath = item.add_stealing_item_objective() - if(typepath != null) - register_item(item, typepath) - -/// Registers all items that are potentially stealable and removes ones that aren't. -/// We still need to do things this way because on mapload, items may not be on the station until everything has finished loading. -/datum/objective_item_handler/proc/save_items() - SIGNAL_HANDLER - for(var/obj/item/typepath as anything in objectives_by_path) - var/list/obj_by_path_cache = objectives_by_path[typepath].Copy() - for(var/obj/item/object as anything in obj_by_path_cache) - register_item(object, typepath) - generated_items = TRUE - -/datum/objective_item_handler/proc/register_item(atom/object, typepath) - var/turf/place = get_turf(object) - if(!place || !is_station_level(place.z)) - objectives_by_path[typepath] -= object - return - RegisterSignal(object, COMSIG_QDELETING, PROC_REF(remove_item)) - -/datum/objective_item_handler/proc/remove_item(atom/source) - SIGNAL_HANDLER - for(var/typepath in objectives_by_path) - objectives_by_path[typepath] -= source - -/datum/traitor_objective/steal_item - name = "Steal %ITEM% and place a schematics scanner on it." - description = "Use the button below to materialize the schematic scanner within your hand, where you'll then be able to place it on the item. Additionally, you can keep it near you and let it scan for %TIME% minutes, and you will be rewarded with %PROGRESSION% reputation and %TC% telecrystals." - - progression_minimum = 20 MINUTES - - var/list/possible_items = list() - /// The current target item that we are stealing. - var/datum/objective_item/steal/target_item - /// A list of 2 elements, which contain the range that the time will be in. Represented in minutes. - var/hold_time_required = list(5, 15) - /// The current time fulfilled around the item - var/time_fulfilled = 0 - /// The maximum distance between the bug and the objective taker for time to count as fulfilled - var/max_distance = 4 - /// The bug that will be put onto the item - var/obj/item/traitor_bug/bug - /// Any special equipment that may be needed - var/list/special_equipment - /// Telecrystal reward increase per unit of time. - var/minutes_per_telecrystal = 3 - - /// Extra TC given for holding the item for the required duration of time. - var/extra_tc = 0 - /// Extra progression given for holding the item for the required duration of time. - var/extra_progression = 0 - - abstract_type = /datum/traitor_objective/steal_item - -/datum/traitor_objective/steal_item/low_risk - progression_minimum = 10 MINUTES - progression_maximum = 35 MINUTES - progression_reward = list(5 MINUTES, 10 MINUTES) - telecrystal_reward = 0 - minutes_per_telecrystal = 6 - - possible_items = list( - /datum/objective_item/steal/traitor/cargo_budget, - /datum/objective_item/steal/traitor/clown_shoes, - /datum/objective_item/steal/traitor/lawyers_badge, - /datum/objective_item/steal/traitor/chef_moustache, - /datum/objective_item/steal/traitor/pka, - ) - -/datum/traitor_objective/steal_item/somewhat_risky - progression_minimum = 20 MINUTES - progression_maximum = 50 MINUTES - progression_reward = 10 MINUTES - telecrystal_reward = 2 - - possible_items = list( - /datum/objective_item/steal/traitor/chief_engineer_belt - ) - -/datum/traitor_objective/steal_item/very_risky - progression_minimum = 30 MINUTES - progression_reward = 15 MINUTES - telecrystal_reward = 3 - - possible_items = list( - /datum/objective_item/steal/traitor/det_revolver, - ) - -/datum/traitor_objective/steal_item/most_risky - progression_minimum = 50 MINUTES - progression_reward = 20 MINUTES - telecrystal_reward = 5 - - possible_items = list( - /datum/objective_item/steal/traitor/captain_modsuit, - /datum/objective_item/steal/traitor/captain_spare, - ) - -/datum/traitor_objective/steal_item/most_risky/generate_objective(datum/mind/generating_for, list/possible_duplicates) - if(!handler.get_completion_count(/datum/traitor_objective/steal_item/very_risky)) - return FALSE - return ..() - -/datum/traitor_objective/steal_item/generate_objective(datum/mind/generating_for, list/possible_duplicates) - for(var/datum/traitor_objective/steal_item/objective as anything in possible_duplicates) - possible_items -= objective.target_item.type - while(length(possible_items)) - var/datum/objective_item/steal/target = pick_n_take(possible_items) - target = new target() - if(!target.valid_objective_for(list(generating_for), require_owner = TRUE)) - qdel(target) - continue - target_item = target - break - if(!target_item) - return FALSE - if(length(target_item.special_equipment)) - special_equipment = target_item.special_equipment - hold_time_required = rand(hold_time_required[1], hold_time_required[2]) - extra_progression += hold_time_required * (1 MINUTES) - extra_tc += round(hold_time_required / max(minutes_per_telecrystal, 0.1)) - replace_in_name("%ITEM%", target_item.name) - replace_in_name("%TIME%", hold_time_required) - replace_in_name("%TC%", extra_tc) - replace_in_name("%PROGRESSION%", DISPLAY_PROGRESSION(extra_progression)) - return TRUE - -/datum/traitor_objective/steal_item/ungenerate_objective() - STOP_PROCESSING(SSprocessing, src) - if(bug) - UnregisterSignal(bug, list(COMSIG_TRAITOR_BUG_PLANTED_OBJECT, COMSIG_TRAITOR_BUG_PRE_PLANTED_OBJECT)) - bug = null - -/datum/traitor_objective/steal_item/generate_ui_buttons(mob/user) - var/list/buttons = list() - if(special_equipment) - buttons += add_ui_button("", "Pressing this will summon any extra special equipment you may need for the mission.", "tools", "summon_gear") - if(!bug) - buttons += add_ui_button("", "Pressing this will materialize a scanner in your hand, which you can place on the target item", "wifi", "summon_bug") - else if(bug.planted_on) - buttons += add_ui_button("[DisplayTimeText(time_fulfilled)]", "This tells you how much time you have spent around the target item after the scanner has been planted.", "clock", "none") - buttons += add_ui_button("Skip Time", "Pressing this will succeed the mission. You will not get the extra TC and progression.", "forward", "cash_out") - return buttons - -/datum/traitor_objective/steal_item/ui_perform_action(mob/living/user, action) - . = ..() - switch(action) - if("summon_bug") - if(bug) - return - bug = new(user.drop_location()) - user.put_in_hands(bug) - bug.balloon_alert(user, "the scanner materializes in your hand") - bug.target_object_type = target_item.targetitem - AddComponent(/datum/component/traitor_objective_register, bug, \ - fail_signals = list(COMSIG_QDELETING), \ - penalty = telecrystal_penalty) - RegisterSignal(bug, COMSIG_TRAITOR_BUG_PLANTED_OBJECT, PROC_REF(on_bug_planted)) - RegisterSignal(bug, COMSIG_TRAITOR_BUG_PRE_PLANTED_OBJECT, PROC_REF(handle_special_case)) - if("summon_gear") - if(!special_equipment) - return - for(var/item in special_equipment) - var/obj/item/new_item = new item(user.drop_location()) - user.put_in_hands(new_item) - user.balloon_alert(user, "the equipment materializes in your hand") - special_equipment = null - if("cash_out") - if(!bug.planted_on) - return - succeed_objective() - -/datum/traitor_objective/steal_item/process(seconds_per_tick) - var/mob/owner = handler.owner?.current - if(objective_state != OBJECTIVE_STATE_ACTIVE || !bug.planted_on) - return PROCESS_KILL - if(!owner) - fail_objective() - return PROCESS_KILL - if(get_dist(get_turf(owner), get_turf(bug)) > max_distance) - return - time_fulfilled += seconds_per_tick * (1 SECONDS) - if(time_fulfilled >= hold_time_required * (1 MINUTES)) - progression_reward += extra_progression - telecrystal_reward += extra_tc - succeed_objective() - return PROCESS_KILL - handler.on_update() - -/datum/traitor_objective/steal_item/proc/handle_special_case(obj/item/source, obj/item/target) - SIGNAL_HANDLER - if(HAS_TRAIT(target, TRAIT_ITEM_OBJECTIVE_BLOCKED)) - return COMPONENT_FORCE_FAIL_PLACEMENT - if(istype(target, target_item.targetitem)) - if(!target_item.check_special_completion(target)) - return COMPONENT_FORCE_FAIL_PLACEMENT - return - - var/found = FALSE - for(var/typepath in target_item.valid_containers) - if(istype(target, typepath)) - found = TRUE - break - - if(!found) - return - - var/found_item = locate(target_item.targetitem) in target - if(!found_item || !target_item.check_special_completion(found_item)) - return COMPONENT_FORCE_FAIL_PLACEMENT - return COMPONENT_FORCE_PLACEMENT - -/datum/traitor_objective/steal_item/proc/on_bug_planted(obj/item/source, obj/item/location) - SIGNAL_HANDLER - if(objective_state == OBJECTIVE_STATE_ACTIVE) - START_PROCESSING(SSprocessing, src) - -/obj/item/traitor_bug - name = "suspicious device" - desc = "It looks dangerous." - item_flags = EXAMINE_SKIP|NOBLUDGEON - - icon = 'icons/obj/antags/syndicate_tools.dmi' - icon_state = "bug" - - /// The object on which this bug can be planted on. Has to be a type. - var/obj/target_object_type - /// The object this bug is currently planted on. - var/obj/planted_on - /// The time it takes to place this bug. - var/deploy_time = 10 SECONDS - -/obj/item/traitor_bug/examine(mob/user) - . = ..() - if(planted_on) - return - - if(IS_TRAITOR(user)) - if(target_object_type) - . += span_notice("This device must be placed by clicking on the [initial(target_object_type.name)] with it.") - . += span_notice("Remember, you may leave behind fingerprints or fibers on the device. Use soap or similar to scrub it clean to be safe!") - -/obj/item/traitor_bug/interact_with_atom(atom/movable/target, mob/living/user, list/modifiers) - if(!target_object_type || !ismovable(target)) - return NONE - if(SHOULD_SKIP_INTERACTION(target, src, user)) - return NONE - var/result = SEND_SIGNAL(src, COMSIG_TRAITOR_BUG_PRE_PLANTED_OBJECT, target) - if(!(result & COMPONENT_FORCE_PLACEMENT)) - if(result & COMPONENT_FORCE_FAIL_PLACEMENT || !istype(target, target_object_type)) - balloon_alert(user, "you can't attach this onto here!") - return ITEM_INTERACT_BLOCKING - if(!do_after(user, deploy_time, src, hidden = TRUE)) - return ITEM_INTERACT_BLOCKING - if(planted_on) - return ITEM_INTERACT_BLOCKING - forceMove(target) - target.vis_contents += src - vis_flags |= VIS_INHERIT_PLANE - planted_on = target - RegisterSignal(planted_on, COMSIG_QDELETING, PROC_REF(handle_planted_on_deletion)) - SEND_SIGNAL(src, COMSIG_TRAITOR_BUG_PLANTED_OBJECT, target) - return ITEM_INTERACT_SUCCESS - -/obj/item/traitor_bug/proc/handle_planted_on_deletion() - planted_on = null - -/obj/item/traitor_bug/Destroy() - if(planted_on) - vis_flags &= ~VIS_INHERIT_PLANE - planted_on.vis_contents -= src - return ..() - -/obj/item/traitor_bug/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change = TRUE) - . = ..() - if(planted_on) - vis_flags &= ~VIS_INHERIT_PLANE - planted_on.vis_contents -= src - anchored = FALSE - UnregisterSignal(planted_on, COMSIG_QDELETING) - planted_on = null diff --git a/code/modules/antagonists/traitor/traitor_objective.dm b/code/modules/antagonists/traitor/traitor_objective.dm deleted file mode 100644 index ecfebaddeadcb..0000000000000 --- a/code/modules/antagonists/traitor/traitor_objective.dm +++ /dev/null @@ -1,264 +0,0 @@ -/// A traitor objective. Traitor objectives should not be deleted after they have been created and established, only failed. -/// If a traitor objective needs to be removed from the failed/completed objective list of their handler, then you are doing something wrong -/// and you should reconsider. When an objective is failed/completed, that is final and the only way you can change that is by refactoring the code. -/datum/traitor_objective - /// The name of the traitor objective - var/name = "traitor objective" - /// The description of the traitor objective - var/description = "this is a traitor objective" - /// The uplink handler holder to give the progression and telecrystals to. - var/datum/uplink_handler/handler - /// The minimum required progression points for this objective - var/progression_minimum = null - /// The maximum progression before this objective cannot appear anymore - var/progression_maximum = INFINITY - /// The progression that is rewarded from completing this traitor objective. Can either be a list of list(min, max) or a direct value - var/progression_reward = 0 MINUTES - /// The telecrystals that are rewarded from completing this traitor objective. Can either be a list of list(min,max) or a direct value - var/telecrystal_reward = 0 - /// TC penalty for failing an objective or cancelling it - var/telecrystal_penalty = 1 - /// The time at which this objective was first created - var/time_of_creation = 0 - /// The time at which this objective was completed - var/time_of_completion = 0 - /// The current state of this objective - var/objective_state = OBJECTIVE_STATE_INACTIVE - /// Whether this objective was forced upon by an admin. Won't get autocleared by the traitor subsystem if progression surpasses an amount - var/forced = FALSE - /// Whether this objective was skipped by going from an inactive state to a failed state. - var/skipped = FALSE - - /// Determines how influential global progression will affect this objective. Set to 0 to disable. - var/global_progression_influence_intensity = 0.1 - /// Determines how great the deviance has to be before progression starts to get reduced. - var/global_progression_deviance_required = 1 - /// Determines the minimum and maximum progression this objective can be worth as a result of being influenced by global progression - /// Should only be smaller than or equal to 1 - var/global_progression_limit_coeff = 0.6 - /// The deviance coefficient used to determine the randomness of the progression rewards. - var/progression_cost_coeff_deviance = 0.05 - /// This gets added onto the coeff when calculating the updated progression cost. Used for variability and a slight bit of randomness - var/progression_cost_coeff = 0 - /// The percentage that this objective has been increased or decreased by as a result of progression. Used by the UI - var/original_progression = 0 - /// Abstract type that won't be included as a possible objective - var/abstract_type = /datum/traitor_objective - /// The duplicate type that will be used to check for duplicates. - /// If undefined, this will either take from the abstract type or the type of the objective itself - var/duplicate_type = null - /// Used only in unit testing. Can be used to explicitly skip the progression_reward and telecrystal_reward check for non-abstract objectives. - /// Useful for final objectives as they don't need a reward. - var/needs_reward = TRUE - -/// Returns a list of variables that can be changed by config, allows for balance through configuration. -/// It is not recommended to finetweak any values of objectives on your server. -/datum/traitor_objective/proc/supported_configuration_changes() - return list( - NAMEOF(src, global_progression_influence_intensity), - NAMEOF(src, global_progression_deviance_required), - NAMEOF(src, global_progression_limit_coeff) - ) - -/// Replaces a word in the name of the proc. Also does it for the description -/datum/traitor_objective/proc/replace_in_name(replace, word) - name = replacetext(name, replace, word) - description = replacetext(description, replace, word) - -/datum/traitor_objective/New(datum/uplink_handler/handler) - . = ..() - src.handler = handler - src.time_of_creation = world.time - apply_configuration() - if(SStraitor.generate_objectives) - if(islist(telecrystal_reward)) - telecrystal_reward = rand(telecrystal_reward[1], telecrystal_reward[2]) - if(islist(progression_reward)) - progression_reward = rand(progression_reward[1], progression_reward[2]) - else - if(!islist(telecrystal_reward)) - telecrystal_reward = list(telecrystal_reward, telecrystal_reward) - if(!islist(progression_reward)) - progression_reward = list(progression_reward, progression_reward) - progression_cost_coeff = (rand()*2 - 1) * progression_cost_coeff_deviance - -/datum/traitor_objective/proc/apply_configuration() - if(!length(SStraitor.configuration_data)) - return - var/datum/traitor_objective/current_type = type - var/list/types = list() - while(current_type != /datum/traitor_objective) - types += current_type - current_type = type2parent(current_type) - types += /datum/traitor_objective - // Reverse the list direction - reverse_range(types) - var/list/supported_configurations = supported_configuration_changes() - for(var/typepath in types) - if(!(typepath in SStraitor.configuration_data)) - continue - var/list/changes = SStraitor.configuration_data[typepath] - for(var/variable in changes) - if(!(variable in supported_configurations)) - continue - vars[variable] = changes[variable] - - -/// Updates the progression reward, scaling it depending on their current progression compared against the global progression -/datum/traitor_objective/proc/update_progression_reward() - if(!SStraitor.generate_objectives) - return - progression_reward = original_progression - if(global_progression_influence_intensity <= 0) - return - var/minimum_progression = progression_reward * global_progression_limit_coeff - var/maximum_progression = progression_reward * (2-global_progression_limit_coeff) - var/deviance = (SStraitor.current_global_progression - handler.progression_points) / SStraitor.progression_scaling_deviance - if(abs(deviance) < global_progression_deviance_required) - return - if(abs(deviance) == deviance) // If it is positive - deviance = deviance - global_progression_deviance_required - else - deviance = deviance + global_progression_deviance_required - var/coeff = NUM_E ** (global_progression_influence_intensity * abs(deviance)) - 1 - if(abs(deviance) != deviance) - coeff *= -1 - - // This has less of an effect as the coeff gets nearer to -1. Is linear - coeff += progression_cost_coeff * min(max(1 - abs(coeff), 1), 0) - - - progression_reward = clamp( - progression_reward + progression_reward * coeff, - minimum_progression, - maximum_progression - ) - -/datum/traitor_objective/Destroy(force) - handler = null - return ..() - -/// Called whenever the objective is about to be generated. Bypassed by forcefully adding objectives. -/// Returning false or true will do the same as the generate_objective proc. -/datum/traitor_objective/proc/can_generate_objective(datum/mind/generating_for, list/possible_duplicates) - return TRUE - -/// Called when the objective should be generated. Should return if the objective has been successfully generated. -/// If false is returned, the objective will be removed as a potential objective for the traitor it is being generated for. -/// This is only temporary, it will run the proc again when objectives are generated for the traitor again. -/datum/traitor_objective/proc/generate_objective(datum/mind/generating_for, list/possible_duplicates) - return FALSE - -/// Used to clean up signals and stop listening to states. -/datum/traitor_objective/proc/ungenerate_objective() - return - -/datum/traitor_objective/proc/get_log_data() - return list( - "type" = type, - "owner" = handler.owner.key, - "name" = name, - "description" = description, - "telecrystal_reward" = telecrystal_reward, - "progression_reward" = progression_reward, - "original_progression" = original_progression, - "objective_state" = objective_state, - "forced" = forced, - "time_of_creation" = time_of_creation, - ) - -/// Converts the type into a useful debug string to be used for logging and debug display. -/datum/traitor_objective/proc/to_debug_string() - return "[type] (Name: [name], TC: [telecrystal_reward], Progression: [progression_reward], Time of creation: [time_of_creation])" - -/datum/traitor_objective/proc/save_objective() - SSblackbox.record_feedback("associative", "traitor_objective", 1, get_log_data()) - -/// Used to handle cleaning up the objective. -/datum/traitor_objective/proc/handle_cleanup() - time_of_completion = world.time - ungenerate_objective() - if(objective_state == OBJECTIVE_STATE_INACTIVE) - skipped = TRUE - handler.complete_objective(src) // Remove this objective immediately, no reason to keep it around. It isn't even active - -/// Used to fail objectives. Players can clear completed objectives in the UI -/datum/traitor_objective/proc/fail_objective(penalty_cost = 0, trigger_update = TRUE) - // Don't let players succeed already succeeded/failed objectives - if(objective_state != OBJECTIVE_STATE_INACTIVE && objective_state != OBJECTIVE_STATE_ACTIVE) - return - SEND_SIGNAL(src, COMSIG_TRAITOR_OBJECTIVE_FAILED) - handle_cleanup() - log_traitor("[key_name(handler.owner)] [objective_state == OBJECTIVE_STATE_INACTIVE? "missed" : "failed"] [to_debug_string()]") - if(penalty_cost) - handler.add_telecrystals(-penalty_cost) - objective_state = OBJECTIVE_STATE_FAILED - else - objective_state = OBJECTIVE_STATE_INVALID - save_objective() - if(trigger_update) - handler.on_update() // Trigger an update to the UI - -/// Used to succeed objectives. Allows the player to cash it out in the UI. -/datum/traitor_objective/proc/succeed_objective() - // Don't let players succeed already succeeded/failed objectives - if(objective_state != OBJECTIVE_STATE_INACTIVE && objective_state != OBJECTIVE_STATE_ACTIVE) - return - SEND_SIGNAL(src, COMSIG_TRAITOR_OBJECTIVE_COMPLETED) - SEND_GLOBAL_SIGNAL(COMSIG_GLOB_TRAITOR_OBJECTIVE_COMPLETED, src) - handle_cleanup() - log_traitor("[key_name(handler.owner)] [objective_state == OBJECTIVE_STATE_INACTIVE? "missed" : "completed"] [to_debug_string()]") - objective_state = OBJECTIVE_STATE_COMPLETED - save_objective() - handler.on_update() // Trigger an update to the UI - -/// Called by player input, do not call directly. Validates whether the objective is finished and pays out the handler if it is. -/datum/traitor_objective/proc/finish_objective(mob/user) - switch(objective_state) - if(OBJECTIVE_STATE_FAILED, OBJECTIVE_STATE_INVALID) - user.playsound_local(get_turf(user), 'sound/music/antag/traitor/objective_failed.ogg', vol = 100, vary = FALSE, channel = CHANNEL_TRAITOR) - return TRUE - if(OBJECTIVE_STATE_COMPLETED) - user.playsound_local(get_turf(user), 'sound/music/antag/traitor/objective_success.ogg', vol = 100, vary = FALSE, channel = CHANNEL_TRAITOR) - completion_payout() - return TRUE - return FALSE - -/// Called when rewards should be given to the user. -/datum/traitor_objective/proc/completion_payout() - handler.progression_points += progression_reward - handler.add_telecrystals(telecrystal_reward) - -/// Used for sending data to the uplink UI -/datum/traitor_objective/proc/uplink_ui_data(mob/user) - return list( - "name" = name, - "description" = description, - "progression_minimum" = progression_minimum, - "progression_reward" = progression_reward, - "telecrystal_reward" = telecrystal_reward, - "ui_buttons" = generate_ui_buttons(user), - "objective_state" = objective_state, - "original_progression" = original_progression, - "telecrystal_penalty" = telecrystal_penalty, - ) - -/datum/traitor_objective/proc/on_objective_taken(mob/user) - SStraitor.on_objective_taken(src) - log_traitor("[key_name(handler.owner)] has taken an objective: [to_debug_string()]") - -/// Used for generating the UI buttons for the UI. Use ui_perform_action to respond to clicks. -/datum/traitor_objective/proc/generate_ui_buttons(mob/user) - return - -/datum/traitor_objective/proc/add_ui_button(name, tooltip, icon, action) - return list(list( - "name" = name, - "tooltip" = tooltip, - "icon" = icon, - "action" = action, - )) - -/// Return TRUE to trigger a UI update -/datum/traitor_objective/proc/ui_perform_action(mob/user, action) - return TRUE diff --git a/code/modules/antagonists/traitor/uplink_handler.dm b/code/modules/antagonists/traitor/uplink_handler.dm index 83899300614e5..2801ef29aad12 100644 --- a/code/modules/antagonists/traitor/uplink_handler.dm +++ b/code/modules/antagonists/traitor/uplink_handler.dm @@ -20,24 +20,6 @@ var/list/item_stock = list(UPLINK_SHARED_STOCK_KITS = 1 , UPLINK_SHARED_STOCK_SURPLUS = 1) /// Extra stuff that can be purchased by an uplink, regardless of flag. var/list/extra_purchasable = list() - /// Whether this uplink handler has objectives. - var/has_objectives = TRUE - /// Whether this uplink handler can TAKE objectives. - var/can_take_objectives = TRUE - /// The maximum number of objectives that can be taken - var/maximum_active_objectives = 2 - /// The maximum number of potential objectives that can exist. - var/maximum_potential_objectives = 6 - /// Current objectives taken - var/list/active_objectives = list() - /// Potential objectives that can be taken - var/list/potential_objectives = list() - /// Objectives that have been completed. - var/list/completed_objectives = list() - /// All objectives assigned by type to handle any duplicates - var/list/potential_duplicate_objectives = list() - /// Text of the final objective, once assigned. Used for uplink data and traitor greentext. Empty string means not yet reached. - var/final_objective = "" /// Objectives that must be completed for traitor greentext. Set by the traitor datum. var/list/primary_objectives /// The role that this uplink handler is associated to. @@ -55,10 +37,6 @@ ///Reference to a contractor hub that the infiltrator can run, if they purchase it. var/datum/contractor_hub/contractor_hub -/datum/uplink_handler/New() - . = ..() - maximum_potential_objectives = CONFIG_GET(number/maximum_potential_objectives) - /datum/uplink_handler/Destroy(force) can_replace_objectives = null replace_objectives = null @@ -140,136 +118,6 @@ on_update() return TRUE - -/// Generates objectives for this uplink handler -/datum/uplink_handler/proc/generate_objectives() - var/potential_objectives_left = maximum_potential_objectives - (length(potential_objectives) + length(active_objectives)) - var/list/objectives = SStraitor.category_handler.get_possible_objectives(progression_points) - if(!length(objectives)) - return - while(length(objectives) && potential_objectives_left > 0) - var/objective_typepath = pick_weight(objectives) - var/list/target_list = objectives - while(islist(objective_typepath)) - if(!length(objective_typepath)) - // Need to wrap this in a list or else it list unrolls and the list doesn't actually get removed. - // Thank you byond, very cool! - target_list -= list(objective_typepath) - break - target_list = objective_typepath - objective_typepath = pick_weight(objective_typepath) - if(islist(objective_typepath) || !objective_typepath) - continue - if(!try_add_objective(objective_typepath)) - target_list -= objective_typepath - continue - potential_objectives_left-- - on_update() - -/datum/uplink_handler/proc/try_add_objective(datum/traitor_objective/objective_typepath, force = FALSE) - var/datum/traitor_objective/objective = new objective_typepath(src) - var/duplicate_typepath = objective.duplicate_type - if(!duplicate_typepath) - if(objective.abstract_type != /datum/traitor_objective) - duplicate_typepath = objective.abstract_type - else - duplicate_typepath = objective_typepath - - if(!force && !objective.can_generate_objective(owner, potential_duplicate_objectives[duplicate_typepath])) - qdel(objective) - return - - var/should_abort = SEND_SIGNAL(objective, COMSIG_TRAITOR_OBJECTIVE_PRE_GENERATE, owner, potential_duplicate_objectives[duplicate_typepath]) & COMPONENT_TRAITOR_OBJECTIVE_ABORT_GENERATION - if(should_abort || !objective.generate_objective(owner, potential_duplicate_objectives[duplicate_typepath])) - qdel(objective) - return - if(!handle_duplicate(objective)) - qdel(objective) - return - objective.forced = force - log_traitor("[key_name(owner)] has received a potential objective: [objective.to_debug_string()] | Forced: [force]") - objective.original_progression = objective.progression_reward - objective.update_progression_reward() - potential_objectives += objective - SStraitor.add_objective_to_list(objective, SStraitor.all_objectives_by_type) - return objective - -/datum/uplink_handler/proc/handle_duplicate(datum/traitor_objective/potential_duplicate) - if(!istype(potential_duplicate)) - return FALSE - - var/datum/traitor_objective/current_type = potential_duplicate.type - var/list/added_types = list() - while(current_type != /datum/traitor_objective) - if(!potential_duplicate_objectives[current_type]) - potential_duplicate_objectives[current_type] = list(potential_duplicate) - else - potential_duplicate_objectives[current_type] += potential_duplicate - - added_types += current_type - current_type = type2parent(current_type) - return TRUE - -/datum/uplink_handler/proc/get_completion_count(datum/traitor_objective/type) - var/amount_completed = 0 - for(var/datum/traitor_objective/objective as anything in potential_duplicate_objectives[type]) - if(objective.objective_state == OBJECTIVE_STATE_COMPLETED) - amount_completed += 1 - return amount_completed - -/datum/uplink_handler/proc/get_completion_progression(datum/traitor_objective/type) - var/total_progression = 0 - for(var/datum/traitor_objective/objective as anything in completed_objectives) - if(objective.objective_state == OBJECTIVE_STATE_COMPLETED) - total_progression += objective.progression_reward - return total_progression - -/// Used to complete objectives, failed or successful. -/datum/uplink_handler/proc/complete_objective(datum/traitor_objective/to_remove) - if(to_remove in completed_objectives) - return - - potential_objectives -= to_remove - active_objectives -= to_remove - completed_objectives += to_remove - update_objectives() - generate_objectives() - -/// Updates the objectives on the uplink and deletes -/datum/uplink_handler/proc/update_objectives() - var/list/objectives_copy = potential_objectives + active_objectives - for(var/datum/traitor_objective/objective as anything in objectives_copy) - if(progression_points > objective.progression_maximum && !objective.forced && objective.objective_state != OBJECTIVE_STATE_ACTIVE) - objective.fail_objective(trigger_update = FALSE) - continue - objective.update_progression_reward() - -/datum/uplink_handler/proc/abort_objective(datum/traitor_objective/to_abort) - if(istype(to_abort, /datum/traitor_objective/ultimate)) - return - if(to_abort.objective_state != OBJECTIVE_STATE_ACTIVE) - return - to_abort.fail_objective(penalty_cost = to_abort.telecrystal_penalty) - -/datum/uplink_handler/proc/take_objective(mob/user, datum/traitor_objective/to_take) - if(!(to_take in potential_objectives)) - return - - user.playsound_local(get_turf(user), 'sound/music/antag/traitor/objective_taken.ogg', vol = 100, vary = FALSE, channel = CHANNEL_TRAITOR) - to_take.on_objective_taken(user) - to_take.objective_state = OBJECTIVE_STATE_ACTIVE - potential_objectives -= to_take - active_objectives += to_take - on_update() - -/datum/uplink_handler/proc/ui_objective_act(mob/user, datum/traitor_objective/to_act_on, action) - if(!(to_act_on in active_objectives)) - return - if(to_act_on.objective_state != OBJECTIVE_STATE_ACTIVE) - return - - to_act_on.ui_perform_action(user, action) - ///Helper to add telecrystals to the uplink handler, calling set_telecrystals. /datum/uplink_handler/proc/add_telecrystals(amount) set_telecrystals(telecrystals + amount) diff --git a/code/modules/asset_cache/asset_list.dm b/code/modules/asset_cache/asset_list.dm index 39e9cf925da62..48e5e7e39a41e 100644 --- a/code/modules/asset_cache/asset_list.dm +++ b/code/modules/asset_cache/asset_list.dm @@ -392,7 +392,7 @@ GLOBAL_LIST_EMPTY(asset_datums) /datum/asset/spritesheet/proc/queuedInsert(sprite_name, icon/I, icon_state="", dir=SOUTH, frame=1, moving=FALSE) #ifdef UNIT_TESTS - if (I && icon_state && !(icon_state in icon_states(I))) // check the base icon prior to extracting the state we want + if (I && icon_state && !icon_exists(I, icon_state)) // check the base icon prior to extracting the state we want stack_trace("Tried to insert nonexistent icon_state '[icon_state]' from [I] into spritesheet [name] ([type])") return #endif diff --git a/code/modules/asset_cache/assets/crafting.dm b/code/modules/asset_cache/assets/crafting.dm index 99088ed1a70da..1d6b9469d1ff2 100644 --- a/code/modules/asset_cache/assets/crafting.dm +++ b/code/modules/asset_cache/assets/crafting.dm @@ -40,7 +40,7 @@ icon_state ||= initial(preview_item.icon_state_preview) || initial(preview_item.icon_state) if(PERFORM_ALL_TESTS(focus_only/bad_cooking_crafting_icons)) - if(!icon_exists(icon_file, icon_state, scream = TRUE)) + if(!icon_exists_or_scream(icon_file, icon_state)) return Insert("a[id]", icon(icon_file, icon_state, SOUTH)) diff --git a/code/modules/asset_cache/assets/research_designs.dm b/code/modules/asset_cache/assets/research_designs.dm index cf56d33ddbb11..6f9c96e549684 100644 --- a/code/modules/asset_cache/assets/research_designs.dm +++ b/code/modules/asset_cache/assets/research_designs.dm @@ -15,7 +15,7 @@ icon_file = initial(path.research_icon) icon_state = initial(path.research_icon_state) if (PERFORM_ALL_TESTS(focus_only/invalid_research_designs)) - if(!(icon_state in icon_states(icon_file))) + if(!icon_exists(icon_file, icon_state)) stack_trace("design [path] with icon '[icon_file]' missing state '[icon_state]'") continue I = icon(icon_file, icon_state, SOUTH) @@ -48,7 +48,7 @@ icon_state = initial(item.icon_state) if (PERFORM_ALL_TESTS(focus_only/invalid_research_designs)) - if(!(icon_state in icon_states(icon_file))) + if(!icon_exists(icon_file, icon_state)) stack_trace("design [path] with icon '[icon_file]' missing state '[icon_state]'") continue I = icon(icon_file, icon_state, SOUTH) diff --git a/code/modules/asset_cache/assets/rtd.dm b/code/modules/asset_cache/assets/rtd.dm index 66899fcb943f1..ac2f06a1aaa0c 100644 --- a/code/modules/asset_cache/assets/rtd.dm +++ b/code/modules/asset_cache/assets/rtd.dm @@ -9,46 +9,13 @@ for(var/main_root in GLOB.floor_designs) for(var/sub_category in GLOB.floor_designs[main_root]) for(var/list/design in GLOB.floor_designs[main_root][sub_category]) - var/obj/item/stack/tile/type = design["type"] - var/icon_state = initial(type.icon_state) - if(registered[icon_state]) - continue - - Insert(sprite_name = icon_state, I = 'icons/obj/tiles.dmi', icon_state = icon_state) - registered[icon_state] = TRUE - - var/list/tile_directions = design["tile_rotate_dirs"] - if(tile_directions == null) - continue - - for(var/direction as anything in tile_directions) - //we can rotate the icon is css for these directions - if(direction in GLOB.tile_dont_rotate) + if(!design["datum"]) + populate_rtd_datums() + var/datum/tile_info/tile_data = design["datum"] + var/list/directions = tile_data.tile_directions_numbers || list(SOUTH) + for(var/direction as anything in directions) + var/sprite_name = sanitize_css_class_name("[tile_data.icon_file]-[tile_data.icon_state]-[dir2text(direction)]") + if(registered[sprite_name]) continue - - //but for these directions we have to do some hacky stuff - var/icon/img = icon(icon = 'icons/obj/tiles.dmi', icon_state = icon_state) - switch(direction) - if(NORTHEAST) - img.Turn(-180) - var/icon/east_rotated = icon(icon = 'icons/obj/tiles.dmi', icon_state = icon_state) - east_rotated.Turn(-90) - img.Blend(east_rotated,ICON_MULTIPLY) - img.SetIntensity(2,2,2) - if(NORTHWEST) - img.Turn(-180) - var/icon/west_rotated = icon(icon = 'icons/obj/tiles.dmi', icon_state = icon_state) - west_rotated.Turn(90) - img.Blend(west_rotated,ICON_MULTIPLY) - img.SetIntensity(2,2,2) - if(SOUTHEAST) - var/icon/east_rotated = icon(icon = 'icons/obj/tiles.dmi', icon_state = icon_state) - east_rotated.Turn(-90) - img.Blend(east_rotated,ICON_MULTIPLY) - img.SetIntensity(2,2,2) - if(SOUTHWEST) - var/icon/west_rotated = icon(icon = 'icons/obj/tiles.dmi', icon_state = icon_state) - west_rotated.Turn(90) - img.Blend(west_rotated,ICON_MULTIPLY) - img.SetIntensity(2,2,2) - Insert(sprite_name = "[icon_state]-[dir2text(direction)]", I = img) + Insert(sprite_name, icon(tile_data.icon_file, tile_data.icon_state, direction)) + registered[sprite_name] = TRUE diff --git a/code/modules/asset_cache/assets/vending.dm b/code/modules/asset_cache/assets/vending.dm index caec9bb4f8218..c898cc3eddc16 100644 --- a/code/modules/asset_cache/assets/vending.dm +++ b/code/modules/asset_cache/assets/vending.dm @@ -30,10 +30,9 @@ continue if (PERFORM_ALL_TESTS(focus_only/invalid_vending_machine_icon_states)) - var/icon_states_list = icon_states(icon_file) - if (!(icon_state in icon_states_list)) + if (!icon_exists(icon_file, icon_state)) var/icon_states_string - for (var/an_icon_state in icon_states_list) + for (var/an_icon_state in icon_states(icon_file)) if (!icon_states_string) icon_states_string = "[json_encode(an_icon_state)]([text_ref(an_icon_state)])" else diff --git a/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm b/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm index 47287197d4354..66ae237886de7 100644 --- a/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm +++ b/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm @@ -58,6 +58,8 @@ /// Used for air alarm helper called tlv_cold_room to adjust alarm thresholds for cold room. var/tlv_cold_room = FALSE + /// Used for air alarm helper called tlv_kitchen to adjust temperature thresholds for kitchen. + var/tlv_kitchen = FALSE /// Used for air alarm helper called tlv_no_ckecks to remove alarm thresholds. var/tlv_no_checks = FALSE @@ -695,6 +697,10 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/airalarm, 27) tlv_collection["temperature"] = new /datum/tlv/cold_room_temperature tlv_collection["pressure"] = new /datum/tlv/cold_room_pressure +///Used for air alarm kitchen tlv helper, which ensures that kitchen air alarm doesn't trigger from cold room air +/obj/machinery/airalarm/proc/set_tlv_kitchen() + tlv_collection["temperature"] = new /datum/tlv/kitchen_temperature + ///Used for air alarm no tlv helper, which removes alarm thresholds /obj/machinery/airalarm/proc/set_tlv_no_checks() tlv_collection["temperature"] = new /datum/tlv/no_checks diff --git a/code/modules/atmospherics/machinery/air_alarm/air_alarm_thresholds.dm b/code/modules/atmospherics/machinery/air_alarm/air_alarm_thresholds.dm index 197e0f520a61f..0d289a27031ae 100644 --- a/code/modules/atmospherics/machinery/air_alarm/air_alarm_thresholds.dm +++ b/code/modules/atmospherics/machinery/air_alarm/air_alarm_thresholds.dm @@ -109,3 +109,9 @@ hazard_min = COLD_ROOM_TEMP - 40 warning_max = COLD_ROOM_TEMP + 20 hazard_max = COLD_ROOM_TEMP + 40 + +/datum/tlv/kitchen_temperature + warning_min = COLD_ROOM_TEMP - 20 + hazard_min = COLD_ROOM_TEMP - 40 + warning_max = BODYTEMP_HEAT_WARNING_1-27 + hazard_max = BODYTEMP_HEAT_WARNING_1 diff --git a/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm b/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm index b5cc7c628df29..e06b3b524580c 100644 --- a/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm +++ b/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm @@ -71,7 +71,6 @@ /obj/machinery/atmospherics/components/binary/crystallizer/update_overlays() . = ..() - cut_overlays() var/mutable_appearance/pipe_appearance1 = mutable_appearance('icons/obj/pipes_n_cables/pipe_underlays.dmi', "intact_[dir]_[piping_layer]", layer = GAS_SCRUBBER_LAYER) pipe_appearance1.color = COLOR_LIME var/mutable_appearance/pipe_appearance2 = mutable_appearance('icons/obj/pipes_n_cables/pipe_underlays.dmi', "intact_[REVERSE_DIR(dir)]_[piping_layer]", layer = GAS_SCRUBBER_LAYER) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index bcc8bc9655092..43b60f5dee482 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -91,8 +91,6 @@ var/conduction_coefficient = 0.3 ///The beaker usually contains cryoxadone that is pumped into the mob var/obj/item/reagent_containers/cup/beaker = null - ///Inform medical about cryo status over this radio - var/obj/item/radio/radio /// Visual content - Occupant var/atom/movable/visual/cryo_occupant/occupant_vis ///Cryo will continue to treat people with 0 damage but existing wounds, but will sound off when damage healing is done in case doctors want to directly treat the wounds instead @@ -103,6 +101,8 @@ var/on = FALSE /// The sound loop that can be heard when the generator is processing. var/datum/looping_sound/cryo_cell/soundloop + /// For away sites, custom or admin events + var/broadcast_channel = RADIO_CHANNEL_MEDICAL /datum/armor/unary_cryo_cell energy = 100 @@ -112,12 +112,6 @@ /obj/machinery/cryo_cell/Initialize(mapload) . = ..() - radio = new(src) - radio.keyslot = new /obj/item/encryptionkey/headset_med - radio.subspace_transmission = TRUE - radio.canhear_range = 0 - radio.recalculateChannels() - occupant_vis = new(mapload, src) vis_contents += occupant_vis internal_connector = new(loc, src, dir, CELL_VOLUME * 0.5) @@ -130,7 +124,6 @@ vis_contents.Cut() QDEL_NULL(occupant_vis) - QDEL_NULL(radio) QDEL_NULL(beaker) QDEL_NULL(internal_connector) QDEL_NULL(soundloop) @@ -415,12 +408,10 @@ mob_occupant.extinguish_mob() if(mob_occupant.stat == DEAD) // Notify doctors and potentially eject if the patient is dead set_on(FALSE) - var/msg = "Patient is deceased." + aas_config_announce(/datum/aas_config_entry/medical_cryo_announcements, list("EJECTING" = autoeject), src, list(broadcast_channel), "Deceased") if(autoeject) // Eject if configured. - msg += " Auto ejecting patient now." open_machine() playsound(src, 'sound/machines/cryo_warning.ogg', 100) - radio.talk_into(src, msg, RADIO_CHANNEL_MEDICAL) return PROCESS_KILL // Don't bother with fully healed people. @@ -431,18 +422,16 @@ if(!treating_wounds) // if we have wounds and haven't already alerted the doctors we're only dealing with the wounds, let them know treating_wounds = TRUE playsound(src, 'sound/machines/cryo_warning.ogg', 100) // Bug the doctors. - radio.talk_into(src, "Patient vitals fully recovered, continuing automated wound treatment.", RADIO_CHANNEL_MEDICAL) + aas_config_announce(/datum/aas_config_entry/medical_cryo_announcements, list(), src, list(broadcast_channel), "Wound Treatment") else // otherwise if we were only treating wounds and now we don't have any, turn off treating_wounds so we can boot 'em out treating_wounds = FALSE if(!treating_wounds) set_on(FALSE) playsound(src, 'sound/machines/cryo_warning.ogg', 100) // Bug the doctors. - var/msg = "Patient fully restored." + aas_config_announce(/datum/aas_config_entry/medical_cryo_announcements, list("EJECTING" = autoeject), src, list(broadcast_channel), "Fully Recovered") if(autoeject) // Eject if configured. - msg += " Auto ejecting patient now." open_machine() - radio.talk_into(src, msg, RADIO_CHANNEL_MEDICAL) return PROCESS_KILL var/datum/gas_mixture/air1 = internal_connector.gas_connector.airs[1] @@ -463,11 +452,9 @@ //check for workable conditions if(!internal_connector.gas_connector.nodes[1] || !air1 || !air1.gases.len || air1.total_moles() < CRYO_MIN_GAS_MOLES) // Turn off if the machine won't work. set_on(FALSE) - var/msg = "Insufficient cryogenic gas, shutting down." + aas_config_announce(/datum/aas_config_entry/medical_cryo_announcements, list("EJECTING" = autoeject), src, list(broadcast_channel), "Insufficient Gas") if(autoeject) // Eject if configured. - msg += " Auto ejecting patient now." open_machine() - radio.talk_into(src, msg, RADIO_CHANNEL_MEDICAL) return PROCESS_KILL //take damage from high temperatures @@ -678,6 +665,26 @@ /obj/machinery/cryo_cell/get_remote_view_fullscreens(mob/user) user.overlay_fullscreen("remote_view", /atom/movable/screen/fullscreen/impaired, 1) +/datum/aas_config_entry/medical_cryo_announcements + name = "Medical Alert: Cryogenics Reports" + announcement_lines_map = list( + "Autoejecting" = "Auto ejecting patient now.", + "Deceased" = "Cryogenics report: Patient is deceased. %AUTOEJECTING", + "Fully Recovered" = "Cryogenics report: Patient fully restored. %AUTOEJECTING", + "Insufficient Gas" = "Cryogenics report: Insufficient cryogenic gas, shutting down. %AUTOEJECTING", + "Wound Treatment" = "Cryogenics report: Patient vitals fully recovered, continuing automated wound treatment." + ) + vars_and_tooltips_map = list( + "AUTOEJECTING" = "will be replaced with Autoejecting line, if system reports it's necessity" + ) + +/datum/aas_config_entry/medical_cryo_announcements/compile_announce(list/variables_map, announcement_line) + variables_map["AUTOEJECTING"] = variables_map["EJECTING"] ? announcement_lines_map["Autoejecting"] : "" + . = ..() + // Why double replacetext_char? Well, to handle cases where variable in the middle of sentence like "also %AUTOEJECTING this", so there will be no double spaces + // Yeah I am bad, at this, sorry (it should be a perfect place for regex usage, but I am weak) + . = trim(replacetext_char(replacetext_char(., "\[NO DATA\] ", ""), "\[NO DATA\]", "")) + #undef MAX_TEMPERATURE #undef CRYO_MULTIPLY_FACTOR #undef CRYO_TX_QTY diff --git a/code/modules/basketball/controller.dm b/code/modules/basketball/controller.dm index 4373c8d784a8d..20b3b0ecdaff2 100644 --- a/code/modules/basketball/controller.dm +++ b/code/modules/basketball/controller.dm @@ -192,6 +192,12 @@ GLOBAL_VAR(basketball_game) var/client/player_client = GLOB.directory[player_key] if(player_client) player_client.prefs.safe_transfer_prefs_to(baller, is_antag = TRUE) + if(player_client.mob.mind) + baller.AddComponent( \ + /datum/component/temporary_body, \ + old_mind = player_client.mob.mind, \ + old_body = player_client.mob.mind.current, \ + ) baller.key = player_key SEND_SOUND(baller, sound('sound/items/whistle/whistle.ogg', volume=30)) diff --git a/code/modules/basketball/hoop.dm b/code/modules/basketball/hoop.dm index edc106c155e63..82eaee9a8ac77 100644 --- a/code/modules/basketball/hoop.dm +++ b/code/modules/basketball/hoop.dm @@ -98,10 +98,12 @@ var/dunk_dir = get_dir(baller, src) - var/dunk_pixel_y = dunk_dir & SOUTH ? -16 : 16 - var/dunk_pixel_x = dunk_dir & EAST && 16 || dunk_dir & WEST && -16 || 0 + var/dunk_pixel_z = (dunk_dir & SOUTH) ? -16 : 16 + var/dunk_pixel_w = ((dunk_dir & EAST) && 16) || ((dunk_dir & WEST) && -16) || 0 + + animate(baller, pixel_w = dunk_pixel_w, pixel_z = dunk_pixel_z, time = 0.5 SECONDS, easing = BOUNCE_EASING|EASE_IN|EASE_OUT, flags = ANIMATION_PARALLEL|ANIMATION_RELATIVE) + animate(pixel_w = -dunk_pixel_w, pixel_z = -dunk_pixel_z, time = 0.5 SECONDS, flags = ANIMATION_PARALLEL) - INVOKE_ASYNC(src, PROC_REF(dunk_animation), baller, dunk_pixel_y, dunk_pixel_x) visible_message(span_warning("[baller] dunks [ball] into \the [src]!")) baller.add_mood_event("basketball", /datum/mood_event/basketball_dunk) score(ball, baller, 2) @@ -109,12 +111,6 @@ if(istype(ball, /obj/item/toy/basketball)) baller.adjustStaminaLoss(STAMINA_COST_DUNKING) -/// This bobs the mob in the hoop direction for the dunk animation -/obj/structure/hoop/proc/dunk_animation(mob/living/baller, dunk_pixel_y, dunk_pixel_x) - animate(baller, pixel_x = dunk_pixel_x, pixel_y = dunk_pixel_y, time = 5, easing = BOUNCE_EASING|EASE_IN|EASE_OUT) - sleep(0.5 SECONDS) - animate(baller, pixel_x = 0, pixel_y = 0, time = 3) - /obj/structure/hoop/attack_hand(mob/living/baller, list/modifiers) . = ..() if(.) diff --git a/code/modules/bitrunning/objects/vendor.dm b/code/modules/bitrunning/objects/vendor.dm index f373a8617b445..96c415b9bfe7f 100644 --- a/code/modules/bitrunning/objects/vendor.dm +++ b/code/modules/bitrunning/objects/vendor.dm @@ -23,6 +23,7 @@ CATEGORY_BEPIS, ) blackbox_key = "bitrunning" + announcement_line = "A bitrunner has ordered equipment which will arrive on the cargo shuttle! Please make sure it gets to them as soon as possible!" /obj/machinery/computer/order_console/bitrunning/subtract_points(final_cost, obj/item/card/id/card) if(final_cost <= card.registered_account.bitrunning_points) @@ -56,7 +57,7 @@ can_be_cancelled = FALSE, ) say("Thank you for your purchase! It will arrive on the next cargo shuttle!") - radio.talk_into(src, "A bitrunner has ordered equipment which will arrive on the cargo shuttle! Please make sure it gets to them as soon as possible!", radio_channel) + aas_config_announce(/datum/aas_config_entry/order_console, list(), src, list(radio_channel), capitalize(blackbox_key)) SSshuttle.shopping_list += new_order /obj/machinery/computer/order_console/bitrunning/retrieve_points(obj/item/card/id/id_card) diff --git a/code/modules/bitrunning/server/_parent.dm b/code/modules/bitrunning/server/_parent.dm index 5e29c1729b490..f166a82c81721 100644 --- a/code/modules/bitrunning/server/_parent.dm +++ b/code/modules/bitrunning/server/_parent.dm @@ -28,8 +28,6 @@ var/list/datum/weakref/spawned_threat_refs = list() /// Scales loot with extra players var/multiplayer_bonus = 1.1 - ///The radio the console can speak into - var/obj/item/radio/radio /// The amount of points in the system, used to purchase maps var/points = 0 /// Keeps track of the number of times someone has built a hololadder @@ -54,11 +52,6 @@ /obj/machinery/quantum_server/post_machine_initialize() . = ..() - radio = new(src) - radio.keyslot = new /obj/item/encryptionkey/headset_cargo() - radio.set_listening(FALSE) - radio.recalculateChannels() - RegisterSignals(src, list(COMSIG_MACHINERY_BROKEN, COMSIG_MACHINERY_POWER_LOST), PROC_REF(on_broken)) RegisterSignal(src, COMSIG_QDELETING, PROC_REF(on_delete)) @@ -70,7 +63,6 @@ spawned_threat_refs.Cut() QDEL_NULL(exit_turfs) QDEL_NULL(generated_domain) - QDEL_NULL(radio) /obj/machinery/quantum_server/examine(mob/user) . = ..() @@ -178,3 +170,10 @@ servo_bonus = servo_rating return ..() + +/datum/aas_config_entry/bitrunning_QS_ready_announcement + name = "Cargo Alert: Bitrunning QS Ready" + general_tooltip = "Announces when the quantum server is ready to be used. No variables provided" + announcement_lines_map = list( + "Message" = "Quantum Server report: Thermal systems within operational parameters. Proceeding to domain configuration." + ) diff --git a/code/modules/bitrunning/server/threats.dm b/code/modules/bitrunning/server/threats.dm index 145cdc9ee2bbf..60bf622083969 100644 --- a/code/modules/bitrunning/server/threats.dm +++ b/code/modules/bitrunning/server/threats.dm @@ -113,7 +113,7 @@ var/datum/mind/ghost_mind = ghost.mind new_mob.key = ghost.key - if(ghost_mind?.current) + if(ghost_mind) new_mob.AddComponent(/datum/component/temporary_body, ghost_mind, ghost_mind.current, TRUE) var/datum/mind/antag_mind = new_mob.mind @@ -132,12 +132,15 @@ /obj/machinery/quantum_server/proc/station_spawn(mob/living/antag, obj/machinery/byteforge/chosen_forge) antag.balloon_alert(antag, "scanning...") chosen_forge.setup_particles(angry = TRUE) - radio.talk_into(src, "SECURITY BREACH: Unauthorized entry sequence detected.", RADIO_CHANNEL_SUPPLY) + var/obj/machinery/announcement_system/aas = get_announcement_system(source = src) + if (aas) + aas.broadcast("QUANTUM SERVER ALERT: Security breach detected. Unauthorized entry sequence in progress...", list(RADIO_CHANNEL_SUPPLY)) SEND_SIGNAL(src, COMSIG_BITRUNNER_STATION_SPAWN) var/timeout = 2 SECONDS if(!ishuman(antag)) - radio.talk_into(src, "Fabrication protocols have crashed unexpectedly. Please evacuate the area.", RADIO_CHANNEL_SUPPLY) + if (aas) + aas.broadcast("QUANTUM SERVER ALERT: Fabrication protocols have crashed unexpectedly. Please evacuate the area.", list(RADIO_CHANNEL_SUPPLY)) timeout = 10 SECONDS if(!do_after(antag, timeout) || QDELETED(chosen_forge) || QDELETED(antag) || QDELETED(src) || !is_ready || !is_operational) @@ -159,8 +162,8 @@ if(ishuman(antag)) reset_equipment(antag) - else - radio.talk_into(src, "CRITICAL ALERT: Unregistered mechanical entity deployed.") + else if (aas) + aas.broadcast("QUANTUM SERVER CRITICAL ALERT: Unregistered mechanical entity deployed.", list()) var/datum/antagonist/antag_datum = antag.mind?.has_antag_datum(/datum/antagonist/bitrunning_glitch) if(istype(antag_datum)) diff --git a/code/modules/bitrunning/server/util.dm b/code/modules/bitrunning/server/util.dm index 912f0c1f874fe..9c40c957203b3 100644 --- a/code/modules/bitrunning/server/util.dm +++ b/code/modules/bitrunning/server/util.dm @@ -5,7 +5,7 @@ /obj/machinery/quantum_server/proc/cool_off() is_ready = TRUE update_appearance() - radio.talk_into(src, "Thermal systems within operational parameters. Proceeding to domain configuration.", RADIO_CHANNEL_SUPPLY) + aas_config_announce(/datum/aas_config_entry/bitrunning_QS_ready_announcement, list(), src, list(RADIO_CHANNEL_SUPPLY)) /// If there are hosted minds, attempts to get a list of their current virtual bodies w/ vitals diff --git a/code/modules/bitrunning/spawners.dm b/code/modules/bitrunning/spawners.dm index 07e97837f522d..3ae116a4d71ce 100644 --- a/code/modules/bitrunning/spawners.dm +++ b/code/modules/bitrunning/spawners.dm @@ -9,7 +9,7 @@ /obj/effect/mob_spawn/ghost_role/human/virtual_domain/special(mob/living/spawned_mob, mob/mob_possessor) var/datum/mind/ghost_mind = mob_possessor.mind - if(ghost_mind?.current) // Preserves any previous bodies before making the switch + if(ghost_mind) // Preserves any previous bodies before making the switch spawned_mob.AddComponent(/datum/component/temporary_body, ghost_mind, ghost_mind.current, TRUE) ..() diff --git a/code/modules/capture_the_flag/ctf_game.dm b/code/modules/capture_the_flag/ctf_game.dm index 968e6e2953e95..17606b10d1504 100644 --- a/code/modules/capture_the_flag/ctf_game.dm +++ b/code/modules/capture_the_flag/ctf_game.dm @@ -153,7 +153,7 @@ player_mob.set_species(/datum/species/human) var/datum/mind/new_member_mind = new_team_member.mob.mind - if(new_member_mind?.current) + if(new_member_mind) player_mob.AddComponent( \ /datum/component/temporary_body, \ old_mind = new_member_mind, \ diff --git a/code/modules/capture_the_flag/ctf_map_loading.dm b/code/modules/capture_the_flag/ctf_map_loading.dm index 4c2f6b319e036..9e23d61747323 100644 --- a/code/modules/capture_the_flag/ctf_map_loading.dm +++ b/code/modules/capture_the_flag/ctf_map_loading.dm @@ -14,16 +14,8 @@ GLOBAL_DATUM(ctf_spawner, /obj/effect/landmark/ctf) /obj/effect/landmark/ctf/Destroy() if(map_bounds) for(var/turf/ctf_turf in block( - locate( - map_bounds[MAP_MINX], - map_bounds[MAP_MINY], - map_bounds[MAP_MINZ], - ), - locate( - map_bounds[MAP_MAXX], - map_bounds[MAP_MAXY], - map_bounds[MAP_MAXZ], - ) + map_bounds[MAP_MINX], map_bounds[MAP_MINY], map_bounds[MAP_MINZ], + map_bounds[MAP_MAXX], map_bounds[MAP_MAXY], map_bounds[MAP_MAXZ] )) ctf_turf.empty() GLOB.ctf_spawner = null diff --git a/code/modules/cargo/centcom_podlauncher.dm b/code/modules/cargo/centcom_podlauncher.dm index bb1c4ea8a8b86..5205e842c78a4 100644 --- a/code/modules/cargo/centcom_podlauncher.dm +++ b/code/modules/cargo/centcom_podlauncher.dm @@ -124,7 +124,7 @@ ADMIN_VERB(centcom_podlauncher, R_ADMIN, "Config/Launch Supplypod", "Configure a /datum/centcom_podlauncher/ui_state(mob/user) if (SSticker.current_state >= GAME_STATE_FINISHED) return GLOB.always_state //Allow the UI to be given to players by admins after roundend - return GLOB.admin_state + return ADMIN_STATE(R_ADMIN) /datum/centcom_podlauncher/ui_assets(mob/user) return list( diff --git a/code/modules/cargo/exports/large_objects.dm b/code/modules/cargo/exports/large_objects.dm index 1871d69eb452e..ed65563b02ca3 100644 --- a/code/modules/cargo/exports/large_objects.dm +++ b/code/modules/cargo/exports/large_objects.dm @@ -40,9 +40,8 @@ cost = CARGO_CRATE_VALUE * 0.5 // +0-400 depending on amount of reagents left var/contents_cost = CARGO_CRATE_VALUE * 0.8 -/datum/export/large/reagent_dispenser/get_cost(obj/O) - var/obj/structure/reagent_dispensers/D = O - var/ratio = D.reagents.total_volume / D.reagents.maximum_volume +/datum/export/large/reagent_dispenser/get_cost(obj/structure/reagent_dispensers/dispenser) + var/ratio = dispenser.reagents.total_volume / dispenser.reagents.maximum_volume return ..() + round(contents_cost * ratio) @@ -60,7 +59,6 @@ contents_cost = CARGO_CRATE_VALUE * 3.5 export_types = list(/obj/structure/reagent_dispensers/beerkeg) - /datum/export/large/pipedispenser cost = CARGO_CRATE_VALUE * 2.5 unit_name = "pipe dispenser" @@ -120,27 +118,26 @@ export_types = list(/obj/machinery/portable_atmospherics/canister) k_elasticity = 0.00033 -/datum/export/large/gas_canister/get_cost(obj/O) - var/obj/machinery/portable_atmospherics/canister/C = O +/datum/export/large/gas_canister/get_cost(obj/machinery/portable_atmospherics/canister/canister) var/worth = cost - var/datum/gas_mixture/canister_mix = C.return_air() + var/datum/gas_mixture/canister_mix = canister.return_air() var/canister_gas = canister_mix.gases var/list/gases_to_check = list( - /datum/gas/bz, - /datum/gas/nitrium, - /datum/gas/hypernoblium, - /datum/gas/miasma, - /datum/gas/tritium, - /datum/gas/pluoxium, - /datum/gas/freon, - /datum/gas/hydrogen, - /datum/gas/healium, - /datum/gas/proto_nitrate, - /datum/gas/zauker, - /datum/gas/helium, - /datum/gas/antinoblium, - /datum/gas/halon, - ) + /datum/gas/bz, + /datum/gas/nitrium, + /datum/gas/hypernoblium, + /datum/gas/miasma, + /datum/gas/tritium, + /datum/gas/pluoxium, + /datum/gas/freon, + /datum/gas/hydrogen, + /datum/gas/healium, + /datum/gas/proto_nitrate, + /datum/gas/zauker, + /datum/gas/helium, + /datum/gas/antinoblium, + /datum/gas/halon, + ) for(var/gasID in gases_to_check) canister_mix.assert_gas(gasID) diff --git a/code/modules/cargo/goodies.dm b/code/modules/cargo/goodies.dm index b4457f5613859..ee48e48e40303 100644 --- a/code/modules/cargo/goodies.dm +++ b/code/modules/cargo/goodies.dm @@ -78,7 +78,10 @@ desc = "For when the enemy absolutely needs to be replaced with lead. Contains one Aussec-designed Combat Shotgun, and one Shotgun Bandolier." cost = PAYCHECK_COMMAND * 15 access_view = ACCESS_ARMORY - contains = list(/obj/item/gun/ballistic/shotgun/automatic/combat, /obj/item/storage/belt/bandolier) + contains = list( + /obj/item/gun/ballistic/shotgun/automatic/combat, + /obj/item/storage/belt/bandolier + ) /datum/supply_pack/goody/disabler_single name = "Disabler Single-Pack" @@ -214,7 +217,10 @@ name = "Medipen Two-Pak" desc = "Contains one standard epinephrine medipen and one standard emergency medkit medipen. For when you want to prepare for the worst." cost = PAYCHECK_CREW * 2 - contains = list(/obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/hypospray/medipen/ekit) + contains = list( + /obj/item/reagent_containers/hypospray/medipen, + /obj/item/reagent_containers/hypospray/medipen/ekit + ) /datum/supply_pack/goody/mothic_rations name = "Surplus Mothic Ration Pack" diff --git a/code/modules/cargo/markets/market_items/weapons.dm b/code/modules/cargo/markets/market_items/weapons.dm index 954dfd63b679f..74dee191ca677 100644 --- a/code/modules/cargo/markets/market_items/weapons.dm +++ b/code/modules/cargo/markets/market_items/weapons.dm @@ -111,3 +111,12 @@ price_max = CARGO_CRATE_VALUE * 5 stock_max = 1 availability_prob = 25 + +/datum/market_item/weapon/liberator + name = "illegal 3D printer designs" + desc = "Designs for a dirt cheap 3D printable gun, well known for exploding in unfortunate assistants' hands." + item = /obj/item/disk/design_disk/liberator + price_min = CARGO_CRATE_VALUE * 2 + price_max = CARGO_CRATE_VALUE * 5 + stock_max = 1 + availability_prob = 35 diff --git a/code/modules/cargo/orderconsole.dm b/code/modules/cargo/orderconsole.dm index 409dc197e43f5..b235b23eeef9c 100644 --- a/code/modules/cargo/orderconsole.dm +++ b/code/modules/cargo/orderconsole.dm @@ -17,8 +17,6 @@ human remains, classified nuclear weaponry, mail, undelivered departmental order crates, syndicate bombs, \ homing beacons, unstable eigenstates, fax machines, or machinery housing any form of artificial intelligence." var/blockade_warning = "Bluespace instability detected. Shuttle movement impossible." - /// radio used by the console to send messages on supply channel - var/obj/item/radio/headset/radio /// var that tracks message cooldown var/message_cooldown var/list/loaded_coupons @@ -46,14 +44,6 @@ can_approve_requests = FALSE requestonly = TRUE -/obj/machinery/computer/cargo/Initialize(mapload) - . = ..() - radio = new /obj/item/radio/headset/headset_cargo(src) - -/obj/machinery/computer/cargo/Destroy() - QDEL_NULL(radio) - return ..() - /obj/machinery/computer/cargo/attacked_by(obj/item/I, mob/living/user) if(istype(I,/obj/item/trade_chip)) var/obj/item/trade_chip/contract = I @@ -206,27 +196,11 @@ "goody" = pack.goody, "access" = pack.access, "contraband" = pack.contraband, - "contains" = get_pack_contains(pack), + "contains" = pack.get_contents_ui_data(), )) return packs -/** - * returns a list of the contents of a supply pack - * * pack - the pack to get the contents of - */ -/obj/machinery/computer/cargo/proc/get_pack_contains(datum/supply_pack/pack) - var/list/contains = list() - for(var/obj/item/item as anything in pack.contains) - contains += list(list( - "name" = item.name, - "icon" = item.greyscale_config ? null : item.icon, - "icon_state" = item.greyscale_config ? null : item.icon_state, - "amount" = pack.contains[item] - )) - - return contains - /** * returns the discount multiplier applied to all supply packs, * the discount is calculated as follows: pack_cost * get_discount() @@ -326,8 +300,7 @@ if(self_paid) say("Order processed. The price will be charged to [account.account_holder]'s bank account on delivery.") if(requestonly && message_cooldown < world.time) - var/message = amount == 1 ? "A new order has been requested." : "[amount] order has been requested." - radio.talk_into(src, message, RADIO_CHANNEL_SUPPLY) + aas_config_announce(/datum/aas_config_entry/cargo_orders_announcement, list("AMOUNT" = amount), src, list(RADIO_CHANNEL_SUPPLY), amount == 1 ? "Single Order" : "Multiple Orders") message_cooldown = world.time + 30 SECONDS . = TRUE @@ -502,3 +475,13 @@ var/datum/signal/status_signal = new(list("command" = command)) frequency.post_signal(src, status_signal) + +/datum/aas_config_entry/cargo_orders_announcement + name = "Cargo Alert: New Orders" + announcement_lines_map = list( + "Single Order" = "A new order has been requested.", + "Multiple Orders" = "%AMOUNT orders have been requested.", + ) + vars_and_tooltips_map = list( + "AMOUNT" = "will be replaced wuth number of orders.", + ) diff --git a/code/modules/cargo/packs/_packs.dm b/code/modules/cargo/packs/_packs.dm index bfa95b2a7ed25..94f71245882e5 100644 --- a/code/modules/cargo/packs/_packs.dm +++ b/code/modules/cargo/packs/_packs.dm @@ -45,6 +45,20 @@ /datum/supply_pack/New() id = type +/// Returns data used for cargo purchasing UI +/datum/supply_pack/proc/get_contents_ui_data() + var/list/data = list() + for(var/obj/item/item as anything in contains) + var/list/item_data = list( + "name" = item.name, + "icon" = item.greyscale_config ? null : item.icon, + "icon_state" = item.greyscale_config ? null : item.icon_state, + "amount" = contains[item] + ) + UNTYPED_LIST_ADD(data, item_data) + + return data + /datum/supply_pack/proc/generate(atom/A, datum/bank_account/paying_account) var/obj/structure/closet/crate/C if(paying_account) diff --git a/code/modules/cargo/packs/imports.dm b/code/modules/cargo/packs/imports.dm index 8735763a6b048..c1aa946319e92 100644 --- a/code/modules/cargo/packs/imports.dm +++ b/code/modules/cargo/packs/imports.dm @@ -218,7 +218,7 @@ /obj/item/ammo_box/strilka310/surplus, /obj/item/storage/toolbox/ammobox/strilka310, /obj/item/storage/toolbox/ammobox/strilka310/surplus, - /obj/item/storage/toolbox/maint_kit, + /obj/item/gun_maintenance_supplies, /obj/item/clothing/suit/armor/vest/russian, /obj/item/clothing/head/helmet/rus_helmet, /obj/item/clothing/shoes/russian, diff --git a/code/modules/cargo/packs/organic.dm b/code/modules/cargo/packs/organic.dm index a47c92fabc449..294179bf10732 100644 --- a/code/modules/cargo/packs/organic.dm +++ b/code/modules/cargo/packs/organic.dm @@ -10,10 +10,8 @@ desc = "Bee business booming? Better be benevolent and boost botany by \ bestowing bi-Beekeeper-suits! Contains two beekeeper suits and matching headwear." cost = CARGO_CRATE_VALUE * 2 - contains = list(/obj/item/clothing/head/utility/beekeeper_head, - /obj/item/clothing/suit/utility/beekeeper_suit, - /obj/item/clothing/head/utility/beekeeper_head, - /obj/item/clothing/suit/utility/beekeeper_suit, + contains = list(/obj/item/clothing/head/utility/beekeeper_head = 2, + /obj/item/clothing/suit/utility/beekeeper_suit = 2, ) crate_name = "beekeeper suits" crate_type = /obj/structure/closet/crate/hydroponics @@ -363,8 +361,7 @@ desc = "A packaged box containing illegal coffee syrups. Possession of these carries a penalty established in the galactic penal code." cost = CARGO_CRATE_VALUE * 6 contains = list( - /obj/item/reagent_containers/cup/bottle/syrup_bottle/laughsyrup, - /obj/item/reagent_containers/cup/bottle/syrup_bottle/laughsyrup, + /obj/item/reagent_containers/cup/bottle/syrup_bottle/laughsyrup = 2, ) crate_name = "illegal syrups box" crate_type = /obj/structure/closet/crate/cardboard diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm index 612e9f5b3f92c..8227305f743a4 100644 --- a/code/modules/cargo/packs/security.dm +++ b/code/modules/cargo/packs/security.dm @@ -113,6 +113,14 @@ ) crate_name = "security supply crate" +/datum/supply_pack/security/maintenance_kits + name = "Gun Maintenance Kits" + desc = "Three gun maintenance kits for the repair and maintenance of a firearm." + access_view = ACCESS_BRIG + contains = list(/obj/item/gun_maintenance_supplies = 3) + cost = CARGO_CRATE_VALUE * 2 + crate_name = "gun maintenance kit crate" + /datum/supply_pack/security/firingpins name = "Standard Firing Pins Crate" desc = "Upgrade your arsenal with 10 standard firing pins." diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 16f0fd1deca5b..fb40674b31f93 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -541,7 +541,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( if(!winexists(src, "asset_cache_browser")) // The client is using a custom skin, tell them. to_chat(src, span_warning("Unable to access asset cache browser, if you are using a custom skin file, please allow DS to download the updated version, if you are not, then make a bug report. This is not a critical issue but can cause issues with resource downloading, as it is impossible to know when extra resources arrived to you.")) - update_ambience_pref(prefs.read_preference(/datum/preference/numeric/sound_ambience_volume)) + update_ambience_pref(prefs.read_preference(/datum/preference/numeric/volume/sound_ambience_volume)) check_ip_intel() //This is down here because of the browse() calls in tooltip/New() diff --git a/code/modules/client/preferences/migrations/legacy_sound_toggles_migration.dm b/code/modules/client/preferences/migrations/legacy_sound_toggles_migration.dm index 01e8657441394..5a098da52094f 100644 --- a/code/modules/client/preferences/migrations/legacy_sound_toggles_migration.dm +++ b/code/modules/client/preferences/migrations/legacy_sound_toggles_migration.dm @@ -3,11 +3,10 @@ /// This migration transfers the player's existing preferences into the new toggles /datum/preferences/proc/migrate_legacy_sound_toggles(savefile/savefile) - write_preference(GLOB.preference_entries[/datum/preference/numeric/sound_ambience_volume], toggles & 1<<2) + write_preference(GLOB.preference_entries[/datum/preference/numeric/volume/sound_ambience_volume], toggles & 1<<2) write_preference(GLOB.preference_entries[/datum/preference/toggle/sound_announcements], toggles & 1<<11) write_preference(GLOB.preference_entries[/datum/preference/toggle/sound_combatmode], toggles & 1<<22) - write_preference(GLOB.preference_entries[/datum/preference/toggle/sound_endofround], toggles & 1<<20) - write_preference(GLOB.preference_entries[/datum/preference/toggle/sound_instruments], toggles & 1<<7) - write_preference(GLOB.preference_entries[/datum/preference/numeric/sound_lobby_volume], toggles & 1<<3) - write_preference(GLOB.preference_entries[/datum/preference/toggle/sound_midi], toggles & 1<<1) - write_preference(GLOB.preference_entries[/datum/preference/numeric/sound_ship_ambience_volume], toggles & 1<<8) + write_preference(GLOB.preference_entries[/datum/preference/numeric/volume/sound_instruments], toggles & 1<<7) + write_preference(GLOB.preference_entries[/datum/preference/numeric/volume/sound_lobby_volume], toggles & 1<<3) + write_preference(GLOB.preference_entries[/datum/preference/numeric/volume/sound_midi], toggles & 1<<1) + write_preference(GLOB.preference_entries[/datum/preference/numeric/volume/sound_ship_ambience_volume], toggles & 1<<8) diff --git a/code/modules/client/preferences/migrations/sound_checkboxes_migration.dm b/code/modules/client/preferences/migrations/sound_checkboxes_migration.dm index 3af7f5a61714e..ca0d583f6502c 100644 --- a/code/modules/client/preferences/migrations/sound_checkboxes_migration.dm +++ b/code/modules/client/preferences/migrations/sound_checkboxes_migration.dm @@ -13,8 +13,27 @@ var/ship_ambience_pref = savefile.get_entry("sound_ship_ambience_volume") var/lobby_music_pref = savefile.get_entry("sound_lobby_volume") var/radio_noise_pref = savefile.get_entry("sound_radio_noise") - write_preference(GLOB.preference_entries[/datum/preference/numeric/sound_ambience_volume], ambience_pref*100) - write_preference(GLOB.preference_entries[/datum/preference/numeric/sound_ship_ambience_volume], ship_ambience_pref*100) - write_preference(GLOB.preference_entries[/datum/preference/numeric/sound_lobby_volume], lobby_music_pref*100) - write_preference(GLOB.preference_entries[/datum/preference/numeric/sound_radio_noise], radio_noise_pref*100) + write_preference(GLOB.preference_entries[/datum/preference/numeric/volume/sound_ambience_volume], ambience_pref*100) + write_preference(GLOB.preference_entries[/datum/preference/numeric/volume/sound_ship_ambience_volume], ship_ambience_pref*100) + write_preference(GLOB.preference_entries[/datum/preference/numeric/volume/sound_lobby_volume], lobby_music_pref*100) + write_preference(GLOB.preference_entries[/datum/preference/numeric/volume/sound_radio_noise], radio_noise_pref*100) + return + + +/datum/preferences/proc/migrate_boolean_sound_prefs_to_default_volume_v2() + var/list/entries = list( + /datum/preference/numeric/volume/sound_ai_vox = savefile.get_entry("sound_ai_vox"), + /datum/preference/numeric/volume/sound_midi = savefile.get_entry("sound_midi"), + /datum/preference/numeric/volume/sound_instruments = savefile.get_entry("sound_instruments"), + /datum/preference/numeric/volume/sound_ambience_volume = savefile.get_entry("sound_ambience_volume"), + /datum/preference/numeric/volume/sound_ship_ambience_volume = savefile.get_entry("sound_ship_ambience_volume"), + /datum/preference/numeric/volume/sound_lobby_volume = savefile.get_entry("sound_lobby_volume"), + /datum/preference/numeric/volume/sound_radio_noise = savefile.get_entry("sound_radio_noise"), + + ) + for(var/entry as anything in entries) + var/pref_data = entries[entry] + if(pref_data <= 1) + pref_data *= 100 + write_preference(GLOB.preference_entries[entry], min(pref_data, 100)) return diff --git a/code/modules/client/preferences/sounds.dm b/code/modules/client/preferences/sounds.dm index c73fc3049f7aa..376e06cad6f79 100644 --- a/code/modules/client/preferences/sounds.dm +++ b/code/modules/client/preferences/sounds.dm @@ -1,17 +1,18 @@ +/datum/preference/numeric/volume + abstract_type = /datum/preference/numeric/volume + minimum = 0 + maximum = 100 + +/datum/preference/numeric/volume/create_default_value() + return maximum + /// Controls ambience volume -/datum/preference/numeric/sound_ambience_volume +/datum/preference/numeric/volume/sound_ambience_volume category = PREFERENCE_CATEGORY_GAME_PREFERENCES savefile_key = "sound_ambience_volume" savefile_identifier = PREFERENCE_PLAYER - minimum = 0 - maximum = 200 - -/// default value is max/2 because 100 1x modifier, while 200 is 2x -/datum/preference/numeric/sound_ambience_volume/create_default_value() - return maximum/2 - -/datum/preference/numeric/sound_ambience_volume/apply_to_client(client/client, value) +/datum/preference/numeric/volume/sound_ambience_volume/apply_to_client(client/client, value) client.update_ambience_pref(value) /datum/preference/toggle/sound_breathing @@ -25,24 +26,22 @@ savefile_key = "sound_announcements" savefile_identifier = PREFERENCE_PLAYER -/// Controls hearing the combat mode toggle sound +/// Controls hearing the combat mode sound /datum/preference/toggle/sound_combatmode category = PREFERENCE_CATEGORY_GAME_PREFERENCES savefile_key = "sound_combatmode" savefile_identifier = PREFERENCE_PLAYER -/// Controls hearing round end sounds -/datum/preference/toggle/sound_endofround - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "sound_endofround" - savefile_identifier = PREFERENCE_PLAYER - /// Controls hearing instruments -/datum/preference/toggle/sound_instruments +/datum/preference/numeric/volume/sound_instruments category = PREFERENCE_CATEGORY_GAME_PREFERENCES savefile_key = "sound_instruments" savefile_identifier = PREFERENCE_PLAYER +/datum/preference/numeric/volume/sound_instruments/apply_to_client_updated(client/client, value) + if (!value) + client.mob.stop_sound_channel(CHANNEL_JUKEBOX) + /datum/preference/choiced/sound_tts category = PREFERENCE_CATEGORY_GAME_PREFERENCES savefile_key = "sound_tts" @@ -54,18 +53,11 @@ /datum/preference/choiced/sound_tts/create_default_value() return TTS_SOUND_ENABLED -/datum/preference/numeric/sound_tts_volume +/datum/preference/numeric/volume/sound_tts_volume category = PREFERENCE_CATEGORY_GAME_PREFERENCES savefile_key = "sound_tts_volume" savefile_identifier = PREFERENCE_PLAYER - minimum = 0 - maximum = 200 - -/// default value is max/2 because 100 1x modifier, while 200 is 2x -/datum/preference/numeric/sound_tts_volume/create_default_value() - return maximum/2 - /datum/preference/choiced/sound_achievement category = PREFERENCE_CATEGORY_GAME_PREFERENCES savefile_key = "sound_achievement" @@ -82,78 +74,41 @@ if(sound_to_send) SEND_SOUND(client.mob, sound_to_send) -/// Controls hearing dance machines -/datum/preference/toggle/sound_jukebox - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "sound_jukebox" - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/sound_jukebox/apply_to_client_updated(client/client, value) - if (!value) - client.mob.stop_sound_channel(CHANNEL_JUKEBOX) - /// Controls hearing lobby music -/datum/preference/numeric/sound_lobby_volume +/datum/preference/numeric/volume/sound_lobby_volume category = PREFERENCE_CATEGORY_GAME_PREFERENCES savefile_key = "sound_lobby_volume" savefile_identifier = PREFERENCE_PLAYER - minimum = 0 - maximum = 200 - -/// default value is max/2 because 100 1x modifier, while 200 is 2x -/datum/preference/numeric/sound_lobby_volume/create_default_value() - return maximum/2 - -/datum/preference/numeric/sound_lobby_volume/apply_to_client_updated(client/client, value) +/datum/preference/numeric/volume/sound_lobby_volume/apply_to_client_updated(client/client, value) if (value && isnewplayer(client.mob)) client.playtitlemusic() else client.mob.stop_sound_channel(CHANNEL_LOBBYMUSIC) /// Controls hearing admin music -/datum/preference/toggle/sound_midi +/datum/preference/numeric/volume/sound_midi category = PREFERENCE_CATEGORY_GAME_PREFERENCES savefile_key = "sound_midi" savefile_identifier = PREFERENCE_PLAYER /// Controls ship ambience volume -/datum/preference/numeric/sound_ship_ambience_volume +/datum/preference/numeric/volume/sound_ship_ambience_volume category = PREFERENCE_CATEGORY_GAME_PREFERENCES savefile_key = "sound_ship_ambience_volume" savefile_identifier = PREFERENCE_PLAYER - minimum = 0 - maximum = 200 - -/// default value is max/2 because 100 1x modifier, while 200 is 2x -/datum/preference/numeric/sound_ship_ambience_volume/create_default_value() - return maximum/2 - -/datum/preference/numeric/sound_ship_ambience_volume/apply_to_client_updated(client/client, value) +/datum/preference/numeric/volume/sound_ship_ambience_volume/apply_to_client_updated(client/client, value) client.mob.refresh_looping_ambience() -/// Controls hearing elevator music -/datum/preference/toggle/sound_elevator - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "sound_elevator" - savefile_identifier = PREFERENCE_PLAYER - /// Controls radio noise volume -/datum/preference/numeric/sound_radio_noise +/datum/preference/numeric/volume/sound_radio_noise category = PREFERENCE_CATEGORY_GAME_PREFERENCES savefile_key = "sound_radio_noise" savefile_identifier = PREFERENCE_PLAYER - minimum = 0 - maximum = 200 - -/// default value is max/2 because 100 1x modifier, while 200 is 2x -/datum/preference/numeric/sound_radio_noise/create_default_value() - return maximum/2 - /// Controls hearing AI VOX announcements -/datum/preference/toggle/sound_ai_vox +/datum/preference/numeric/volume/sound_ai_vox category = PREFERENCE_CATEGORY_GAME_PREFERENCES savefile_key = "sound_ai_vox" savefile_identifier = PREFERENCE_PLAYER diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 16a263cc14f4a..ea76675cd2ab3 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -5,7 +5,7 @@ // You do not need to raise this if you are adding new values that have sane defaults. // Only raise this value when changing the meaning/format/name/layout of an existing value // where you would want the updater procs below to run -#define SAVEFILE_VERSION_MAX 46 +#define SAVEFILE_VERSION_MAX 47 /* SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn @@ -112,6 +112,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car ) if (current_version < 46) migrate_boolean_sound_prefs_to_default_volume() + if (current_version < 47) + migrate_boolean_sound_prefs_to_default_volume_v2() /// checks through keybindings for outdated unbound keys and updates them /datum/preferences/proc/check_keybindings() diff --git a/code/modules/clothing/chameleon/chameleon_action_subtypes.dm b/code/modules/clothing/chameleon/chameleon_action_subtypes.dm index 1c433f0c0d953..956b0892e3353 100644 --- a/code/modules/clothing/chameleon/chameleon_action_subtypes.dm +++ b/code/modules/clothing/chameleon/chameleon_action_subtypes.dm @@ -145,7 +145,7 @@ var/new_trim = initial(copied_card.trim) if(new_trim) - SSid_access.apply_trim_to_chameleon_card(agent_card, new_trim, TRUE) + SSid_access.apply_trim_override(agent_card, new_trim, TRUE) // If the ID card hasn't been forged, we'll check if there has been an assignment set already by any new trim. // If there has not, we set the assignment to the copied card's default as well as copying over the the @@ -182,7 +182,7 @@ var/new_trim = initial(job_outfit.id_trim) ? initial(job_outfit.id_trim) : initial(copied_card.trim) if(new_trim) - SSid_access.apply_trim_to_chameleon_card(agent_card, new_trim, FALSE) + SSid_access.apply_trim_override(agent_card, new_trim, FALSE) else agent_card.assignment = job_datum.title @@ -229,7 +229,7 @@ /datum/action/item_action/chameleon/change/id_trim/update_item(picked_trim_path) var/obj/item/card/id/advanced/chameleon/agent_card = target - SSid_access.apply_trim_to_chameleon_card(agent_card, picked_trim_path, TRUE) + SSid_access.apply_trim_override(agent_card, picked_trim_path, TRUE) agent_card.update_label() agent_card.update_appearance(UPDATE_ICON) diff --git a/code/modules/clothing/head/hat.dm b/code/modules/clothing/head/hat.dm index f4a710156212f..f55d45c457851 100644 --- a/code/modules/clothing/head/hat.dm +++ b/code/modules/clothing/head/hat.dm @@ -60,6 +60,7 @@ flags_inv = NONE clothing_flags = SNUG_FIT flags_cover = NONE + dirt_state = null /datum/armor/bio_hood_plague bio = 100 diff --git a/code/modules/clothing/head/perceptomatrix.dm b/code/modules/clothing/head/perceptomatrix.dm index 665fc6ca61c39..abd1778369234 100644 --- a/code/modules/clothing/head/perceptomatrix.dm +++ b/code/modules/clothing/head/perceptomatrix.dm @@ -19,7 +19,22 @@ max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT strip_delay = 8 SECONDS clothing_flags = PERCEPTOMATRIX_ACTIVE_FLAGS - clothing_traits = list( + flags_cover = HEADCOVERSEYES|EARS_COVERED + flags_inv = HIDEHAIR|HIDEFACE + flash_protect = FLASH_PROTECTION_WELDER_SENSITIVE + resistance_flags = FIRE_PROOF | ACID_PROOF + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' + armor_type = /datum/armor/head_helmet_matrix + actions_types = list(/datum/action/cooldown/spell/pointed/percept_hallucination) + + /// If we have a core or not + var/core_installed = FALSE + /// Active components to add onto the mob, deleted and created on core installation/removal + var/list/active_components = list() + /// List of additonal clothing traits to apply when the core is inserted + var/list/additional_clothing_traits = list( /* eye/ear protection */ TRAIT_NOFLASH, TRAIT_TRUE_NIGHT_VISION, @@ -35,20 +50,6 @@ TRAIT_NO_MINDSWAP, TRAIT_UNCONVERTABLE, ) - flags_cover = HEADCOVERSEYES|EARS_COVERED - flags_inv = HIDEHAIR|HIDEFACE - flash_protect = FLASH_PROTECTION_WELDER_SENSITIVE - resistance_flags = FIRE_PROOF | ACID_PROOF - equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' - pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' - drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' - armor_type = /datum/armor/head_helmet_matrix - actions_types = list(/datum/action/cooldown/spell/pointed/percept_hallucination) - - /// If we have a core or not - var/core_installed = FALSE - /// Active components to add onto the mob, deleted and created on core installation/removal - var/list/active_components = list() // weaker overall but better against energy /datum/armor/head_helmet_matrix @@ -90,13 +91,13 @@ // If the core isn't installed, or it's temporarily deactivated, disable special functions. if(!core_installed) clothing_flags = PERCEPTOMATRIX_INACTIVE_FLAGS - detach_clothing_traits(clothing_traits) + detach_clothing_traits(additional_clothing_traits) QDEL_LIST(active_components) RemoveElement(/datum/element/wearable_client_colour, /datum/client_colour/perceptomatrix, ITEM_SLOT_HEAD, forced = TRUE) return clothing_flags = PERCEPTOMATRIX_ACTIVE_FLAGS - attach_clothing_traits(initial(clothing_traits)) + attach_clothing_traits(additional_clothing_traits) // When someone makes TRAIT_DEAF an element, or status effect, or whatever, give this item a way to bypass said deafness. // just blocking future instances of deafness isn't what the item is meant to do but there's no proper way to do it otherwise at the moment. diff --git a/code/modules/clothing/head/wig.dm b/code/modules/clothing/head/wig.dm index 8dc4ae6eb43b6..b324073a0e2a0 100644 --- a/code/modules/clothing/head/wig.dm +++ b/code/modules/clothing/head/wig.dm @@ -19,11 +19,11 @@ /obj/item/clothing/head/wig/equipped(mob/user, slot) . = ..() if(ishuman(user) && (slot & ITEM_SLOT_HEAD)) - item_flags |= EXAMINE_SKIP + ADD_TRAIT(src, TRAIT_EXAMINE_SKIP, CLOTHING_TRAIT) /obj/item/clothing/head/wig/dropped(mob/user) . = ..() - item_flags &= ~EXAMINE_SKIP + REMOVE_TRAIT(src, TRAIT_EXAMINE_SKIP, CLOTHING_TRAIT) /obj/item/clothing/head/wig/update_icon_state() var/datum/sprite_accessory/hair/hair_style = SSaccessories.hairstyles_list[hairstyle] diff --git a/code/modules/clothing/masks/_masks.dm b/code/modules/clothing/masks/_masks.dm index 5255b758b6faf..cb6112bffd2a1 100644 --- a/code/modules/clothing/masks/_masks.dm +++ b/code/modules/clothing/masks/_masks.dm @@ -8,6 +8,8 @@ strip_delay = 40 equip_delay_other = 40 visor_vars_to_toggle = NONE + unique_reskin_changes_base_icon_state = TRUE + var/adjusted_flags = null ///Did we install a filtering cloth? var/has_filter = FALSE @@ -52,7 +54,7 @@ /obj/item/clothing/mask/update_icon_state() . = ..() - icon_state = "[initial(icon_state)][up ? "_up" : ""]" + icon_state = "[base_icon_state || initial(icon_state)][up ? "_up" : ""]" /** * Proc called in lungs.dm to act if wearing a mask with filters, used to reduce the filters durability, return a changed gas mixture depending on the filter status diff --git a/code/modules/clothing/masks/costume.dm b/code/modules/clothing/masks/costume.dm index 37a3fc7ccb5e8..a275fbdaf50ec 100644 --- a/code/modules/clothing/masks/costume.dm +++ b/code/modules/clothing/masks/costume.dm @@ -2,6 +2,7 @@ name = "emotion mask" desc = "Express your happiness or hide your sorrows with this cultured cutout." icon_state = "joy" + base_icon_state = "joy" clothing_flags = MASKINTERNALS flags_inv = HIDESNOUT obj_flags = parent_type::obj_flags | INFINITE_RESKIN diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index bae0225c021a4..2cb2ca66bb920 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -32,6 +32,8 @@ GLOBAL_LIST_INIT(clown_mask_options, list( var/fishing_modifier = 2 ///Applies clothing_dirt component to the pepperproof mask if true var/pepper_tint = TRUE + ///icon_state used by clothing_dirt + var/dirt_state = "gas_dirt" /datum/armor/mask_gas bio = 100 @@ -40,7 +42,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list( . = ..() if((flags_cover & PEPPERPROOF) && pepper_tint) - AddComponent(/datum/component/clothing_dirt) + AddComponent(/datum/component/clothing_dirt, dirt_state) if(fishing_modifier) AddComponent(/datum/component/adjust_fishing_difficulty, fishing_modifier) @@ -217,13 +219,14 @@ GLOBAL_LIST_INIT(clown_mask_options, list( armor_type = /datum/armor/gas_welding actions_types = list(/datum/action/item_action/toggle) flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDESNOUT - flags_cover = MASKCOVERSEYES + flags_cover = MASKCOVERSEYES|MASKCOVERSMOUTH|PEPPERPROOF visor_flags_inv = HIDEEYES - visor_flags_cover = MASKCOVERSEYES + visor_flags_cover = MASKCOVERSEYES|MASKCOVERSMOUTH|PEPPERPROOF visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT resistance_flags = FIRE_PROOF clothing_flags = parent_type::clothing_flags | INTERNALS_ADJUST_EXEMPT fishing_modifier = 8 + dirt_state = "welding_dirt" /datum/armor/gas_welding melee = 10 @@ -263,6 +266,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list( flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDESNOUT|HIDEHAIR inhand_icon_state = "gas_mask" clothing_flags = BLOCK_GAS_SMOKE_EFFECT|MASKINTERNALS + dirt_state = "plague_dirt" /obj/item/clothing/mask/gas/syndicate name = "syndicate mask" @@ -494,6 +498,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list( resistance_flags = FIRE_PROOF | ACID_PROOF flags_inv = HIDEFACIALHAIR|HIDEFACE|HIDEEYES|HIDEEARS|HIDEHAIR|HIDESNOUT fishing_modifier = -4 + dirt_state = null /obj/item/clothing/mask/gas/prop name = "prop gas mask" @@ -521,6 +526,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list( desc = "Great for train hijackings. Works like a normal full face gas mask, but won't conceal your identity." icon_state = "driscoll_mask" flags_inv = HIDEFACIALHAIR + flags_cover = MASKCOVERSMOUTH w_class = WEIGHT_CLASS_NORMAL inhand_icon_state = null fishing_modifier = 0 diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm index 81a9a4809f521..978f6f2aca878 100644 --- a/code/modules/clothing/spacesuits/_spacesuits.dm +++ b/code/modules/clothing/spacesuits/_spacesuits.dm @@ -31,9 +31,13 @@ drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' ///How much this helmet affects fishing difficulty var/fishing_modifier = 3 + ///Icon state applied when we get spraypainted/peppersprayed. If null, does not add the dirt component + var/visor_dirt = "helm_dirt" /obj/item/clothing/head/helmet/space/Initialize(mapload) . = ..() + if(visor_dirt) + AddComponent(/datum/component/clothing_dirt, visor_dirt) if(fishing_modifier) AddComponent(/datum/component/adjust_fishing_difficulty, fishing_modifier) add_stabilizer() diff --git a/code/modules/clothing/spacesuits/freedom.dm b/code/modules/clothing/spacesuits/freedom.dm index 085b9c8deb7c2..dfc54db118a39 100644 --- a/code/modules/clothing/spacesuits/freedom.dm +++ b/code/modules/clothing/spacesuits/freedom.dm @@ -10,6 +10,7 @@ max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = ACID_PROOF | FIRE_PROOF fishing_modifier = 0 + visor_dirt = null /datum/armor/space_freedom melee = 20 diff --git a/code/modules/clothing/spacesuits/pirate.dm b/code/modules/clothing/spacesuits/pirate.dm index f9625467ccd19..b7f4640c63bb7 100644 --- a/code/modules/clothing/spacesuits/pirate.dm +++ b/code/modules/clothing/spacesuits/pirate.dm @@ -3,11 +3,11 @@ desc = "A modified helmet to allow space pirates to intimidate their customers whilst staying safe from the void. Comes with some additional protection." icon_state = "spacepirate" inhand_icon_state = "space_pirate_helmet" - slowdown = 0 armor_type = /datum/armor/space_pirate strip_delay = 40 equip_delay_other = 20 fishing_modifier = -2 + visor_dirt = null /datum/armor/space_pirate melee = 30 diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index d2c31498d184b..59af4d1c5f60c 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -95,6 +95,7 @@ flags_cover = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF visor_flags_inv = HIDEEYES|HIDEFACE slowdown = 0 + visor_dirt = null var/helmet_on = FALSE var/smile = FALSE var/smile_color = COLOR_RED diff --git a/code/modules/clothing/spacesuits/santa.dm b/code/modules/clothing/spacesuits/santa.dm index 08f01cc1869bb..7a018d2c36ae6 100644 --- a/code/modules/clothing/spacesuits/santa.dm +++ b/code/modules/clothing/spacesuits/santa.dm @@ -7,8 +7,8 @@ inhand_icon_state = "santahat" flags_cover = HEADCOVERSEYES dog_fashion = /datum/dog_fashion/head/santa - slowdown = 0 fishing_modifier = 0 + visor_dirt = null /obj/item/clothing/head/helmet/space/santahat/beardless icon = 'icons/obj/clothing/head/costume.dmi' @@ -16,7 +16,6 @@ icon_state = "santahatnorm" inhand_icon_state = "that" flags_inv = NONE - slowdown = 0 /obj/item/clothing/suit/space/santa name = "Santa's suit" diff --git a/code/modules/clothing/spacesuits/softsuit.dm b/code/modules/clothing/spacesuits/softsuit.dm index 691318736e9c5..50365a0256136 100644 --- a/code/modules/clothing/spacesuits/softsuit.dm +++ b/code/modules/clothing/spacesuits/softsuit.dm @@ -16,14 +16,14 @@ name = "Engineering Void Helmet" desc = "A CentCom engineering dark red space suit helmet. While old and dusty, it still gets the job done." icon_state = "void" - slowdown = 2 + visor_dirt = "void_dirt" /obj/item/clothing/suit/space/nasavoid/old name = "Engineering Voidsuit" icon_state = "void" inhand_icon_state = "void_suit" desc = "A CentCom engineering dark red space suit. Age has degraded the suit making it difficult to move around in." - slowdown = 2 + slowdown = 4 allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/multitool) //EVA suit @@ -41,6 +41,7 @@ desc = "A lightweight space helmet with the basic ability to protect the wearer from the vacuum of space during emergencies." flash_protect = FLASH_PROTECTION_NONE armor_type = /datum/armor/space_eva + visor_dirt = "space_dirt" /datum/armor/space_eva bio = 100 @@ -73,7 +74,6 @@ inhand_icon_state = "syndicate-helm-orange" //resprite? armor_type = /datum/armor/space_fragile strip_delay = 65 - slowdown = 1 /obj/item/clothing/suit/space/fragile name = "emergency space suit" @@ -81,7 +81,7 @@ var/torn = FALSE icon_state = "syndicate-orange" inhand_icon_state = "syndicate-orange" - slowdown = 1 + slowdown = 2 armor_type = /datum/armor/space_fragile strip_delay = 65 diff --git a/code/modules/clothing/spacesuits/specialops.dm b/code/modules/clothing/spacesuits/specialops.dm index 1db1448bab92d..a87a272d037f9 100644 --- a/code/modules/clothing/spacesuits/specialops.dm +++ b/code/modules/clothing/spacesuits/specialops.dm @@ -15,6 +15,7 @@ resistance_flags = FIRE_PROOF | ACID_PROOF fishing_modifier = 0 hair_mask = HAIR_MASK_HIDE_ABOVE_45_DEG_MEDIUM + visor_dirt = null /datum/armor/space_beret melee = 80 diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm index 55a95c3a29795..fb5bc428a5c8d 100644 --- a/code/modules/clothing/spacesuits/syndi.dm +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -186,6 +186,7 @@ GLOBAL_LIST_INIT(syndicate_space_suits_to_helmets,list( w_class = WEIGHT_CLASS_SMALL icon_state = "syndicate-contract-helm" inhand_icon_state = "contractor_helmet" + visor_dirt = null /obj/item/clothing/suit/space/syndicate/contract name = "contractor space suit" diff --git a/code/modules/clothing/suits/_suits.dm b/code/modules/clothing/suits/_suits.dm index 78ea1d2f3b7a1..b8d77df4ad197 100644 --- a/code/modules/clothing/suits/_suits.dm +++ b/code/modules/clothing/suits/_suits.dm @@ -11,8 +11,8 @@ /obj/item/storage/belt/holster, ) armor_type = /datum/armor/none - drop_sound = 'sound/items/handling/cloth_drop.ogg' - pickup_sound = 'sound/items/handling/cloth_pickup.ogg' + drop_sound = 'sound/items/handling/cloth/cloth_drop1.ogg' + pickup_sound = 'sound/items/handling/cloth/cloth_pickup1.ogg' slot_flags = ITEM_SLOT_OCLOTHING var/blood_overlay_type = "suit" limb_integrity = 0 // disabled for most exo-suits diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index 919d1da261ecb..a14b3fcd77bd3 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -11,11 +11,13 @@ flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE|HIDESNOUT resistance_flags = ACID_PROOF flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF + // Icon_state passed into clothing dirt component + var/dirt_state = "bio_dirt" /obj/item/clothing/head/bio_hood/Initialize(mapload) . = ..() - if(flags_inv & HIDEFACE) - AddComponent(/datum/component/clothing_fov_visor, FOV_90_DEGREES) + if (dirt_state) + AddComponent(/datum/component/clothing_dirt, dirt_state) AddComponent(/datum/component/adjust_fishing_difficulty, 6) AddComponent(/datum/component/hat_stabilizer, loose_hat = TRUE) diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 2608c41eb4ad5..3b1d4e48ed1ad 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -106,8 +106,7 @@ /obj/item/clothing/head/utility/bomb_hood/Initialize(mapload) . = ..() - if(flags_inv & HIDEFACE) - AddComponent(/datum/component/clothing_fov_visor, FOV_90_DEGREES) + AddComponent(/datum/component/clothing_dirt, "bomb_dirt") AddComponent(/datum/component/adjust_fishing_difficulty, 8) AddComponent(/datum/component/hat_stabilizer, loose_hat = TRUE) @@ -187,20 +186,16 @@ /obj/item/clothing/head/utility/radiation/Initialize(mapload) . = ..() - if(flags_inv & HIDEFACE) - AddComponent(/datum/component/clothing_fov_visor, FOV_90_DEGREES) AddComponent(/datum/component/adjust_fishing_difficulty, 7) AddComponent(/datum/component/hat_stabilizer, loose_hat = TRUE) + AddElement(/datum/element/radiation_protected_clothing) + AddComponent(/datum/component/clothing_dirt, "rad_dirt") /datum/armor/utility_radiation bio = 60 fire = 30 acid = 30 -/obj/item/clothing/head/utility/radiation/Initialize(mapload) - . = ..() - AddElement(/datum/element/radiation_protected_clothing) - /obj/item/clothing/suit/utility/radiation name = "radiation suit" desc = "A suit that protects against radiation. The label reads, 'Made with lead. Please do not consume insulation.'" diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index 3fa11d2882c8b..7423b844d5179 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -10,8 +10,8 @@ armor_type = /datum/armor/clothing_under supports_variations_flags = CLOTHING_DIGITIGRADE_MASK equip_sound = 'sound/items/equip/jumpsuit_equip.ogg' - drop_sound = 'sound/items/handling/cloth_drop.ogg' - pickup_sound = 'sound/items/handling/cloth_pickup.ogg' + drop_sound = 'sound/items/handling/cloth/cloth_drop1.ogg' + pickup_sound = 'sound/items/handling/cloth/cloth_pickup1.ogg' limb_integrity = 30 interaction_flags_click = ALLOW_RESTING @@ -69,7 +69,7 @@ var/changed = FALSE - if(isnull(held_item) && has_sensor == HAS_SENSORS) + if((isnull(held_item) || held_item == src) && has_sensor == HAS_SENSORS) context[SCREENTIP_CONTEXT_RMB] = "Toggle suit sensors" context[SCREENTIP_CONTEXT_CTRL_LMB] = "Set suit sensors to tracking" changed = TRUE @@ -122,6 +122,14 @@ toggle() return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN +/obj/item/clothing/under/attack_self_secondary(mob/user, modifiers) + . = ..() + if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) + return + + toggle() + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + /obj/item/clothing/under/update_clothes_damaged_state(damaged_state = CLOTHING_DAMAGED) . = ..() if(damaged_state == CLOTHING_SHREDDED && has_sensor > NO_SENSORS) diff --git a/code/modules/clothing/under/skirt_dress.dm b/code/modules/clothing/under/skirt_dress.dm index 30f74920ef9d6..0ea09301dba26 100644 --- a/code/modules/clothing/under/skirt_dress.dm +++ b/code/modules/clothing/under/skirt_dress.dm @@ -26,6 +26,7 @@ name = "sailor dress" desc = "Formal wear for a leading lady." icon_state = "sailor_dress" + alternate_worn_layer = UNDER_SUIT_LAYER greyscale_config = /datum/greyscale_config/sailor_dress greyscale_config_worn = /datum/greyscale_config/sailor_dress/worn greyscale_colors = "#0000ff#cc0000#eaeaea" @@ -36,6 +37,7 @@ name = "wedding dress" desc = "A luxurious gown for once-in-a-lifetime occasions." icon_state = "wedding_dress" + alternate_worn_layer = UNDER_SUIT_LAYER inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS flags_inv = HIDESHOES @@ -48,6 +50,7 @@ name = "evening gown" desc = "Fancy dress for space bar singers." icon_state = "evening_gown" + alternate_worn_layer = UNDER_SUIT_LAYER inhand_icon_state = null greyscale_config = /datum/greyscale_config/evening_dress greyscale_config_worn = /datum/greyscale_config/evening_dress/worn @@ -94,6 +97,7 @@ name = "tango dress" desc = "Filled with Latin fire." icon_state = "tango" + alternate_worn_layer = UNDER_SUIT_LAYER custom_price = PAYCHECK_CREW greyscale_colors = "#ff0000#1c1c1c" greyscale_config = /datum/greyscale_config/tango diff --git a/code/modules/deathmatch/deathmatch_loadouts.dm b/code/modules/deathmatch/deathmatch_loadouts.dm index f4d3d9b5ede27..e8ef8afa35536 100644 --- a/code/modules/deathmatch/deathmatch_loadouts.dm +++ b/code/modules/deathmatch/deathmatch_loadouts.dm @@ -1041,7 +1041,6 @@ // I mean is it really that bad if they don't even know half this stuff is added to them. // It's like, forbidden knowledge. It fits with the mansus theme - great excuse for poor design! knowledge_to_grant = list( - /datum/heretic_knowledge/duel_stance, /datum/heretic_knowledge/blade_grasp, /datum/heretic_knowledge/blade_dance, /datum/heretic_knowledge/blade_upgrade/blade, diff --git a/code/modules/deathmatch/deathmatch_lobby.dm b/code/modules/deathmatch/deathmatch_lobby.dm index 9a6773edec565..a99f4fabfe101 100644 --- a/code/modules/deathmatch/deathmatch_lobby.dm +++ b/code/modules/deathmatch/deathmatch_lobby.dm @@ -141,7 +141,7 @@ new_player.dna.update_dna_identity() new_player.updateappearance(icon_update = TRUE, mutcolor_update = TRUE, mutations_overlay_update = TRUE) new_player.add_traits(list(TRAIT_CANNOT_CRYSTALIZE, TRAIT_PERMANENTLY_MORTAL, TRAIT_TEMPORARY_BODY), INNATE_TRAIT) - if(!isnull(observer.mind) && observer.mind?.current) + if(observer.mind) new_player.AddComponent( \ /datum/component/temporary_body, \ old_mind = observer.mind, \ diff --git a/code/modules/discord/tgs_commands.dm b/code/modules/discord/tgs_commands.dm index 8c6796bc1ea16..6903bf7dcc653 100644 --- a/code/modules/discord/tgs_commands.dm +++ b/code/modules/discord/tgs_commands.dm @@ -3,7 +3,7 @@ help_text = "Gets the playercount, gamemode, and address of the server" /datum/tgs_chat_command/tgscheck/Run(datum/tgs_chat_user/sender, params) - var/server = CONFIG_GET(string/server) + var/server = CONFIG_GET(string/public_address) || CONFIG_GET(string/server) return new /datum/tgs_message_content("[GLOB.round_id ? "Round #[GLOB.round_id]: " : ""][GLOB.clients.len] players on [SSmapping.current_map.map_name]; Round [SSticker.HasRoundStarted() ? (SSticker.IsRoundInProgress() ? "Active" : "Finishing") : "Starting"] -- [server ? server : "[world.internet_address]:[world.port]"]") /datum/tgs_chat_command/gameversion @@ -38,7 +38,7 @@ help_text = "Pings the invoker when the round ends" /datum/tgs_chat_command/notify/Run(datum/tgs_chat_user/sender, params) - if(!CONFIG_GET(string/channel_announce_new_game)) + if(!CONFIG_GET(str_list/channel_announce_new_game)) return new /datum/tgs_message_content("Notifcations are currently disabled") for(var/member in SSdiscord.notify_members) // If they are in the list, take them out diff --git a/code/modules/error_handler/error_handler.dm b/code/modules/error_handler/error_handler.dm index 6585f92f9b61c..7cdc43317e73f 100644 --- a/code/modules/error_handler/error_handler.dm +++ b/code/modules/error_handler/error_handler.dm @@ -103,12 +103,14 @@ GLOBAL_VAR_INIT(total_runtimes_skipped, 0) // The proceeding mess will almost definitely break if error messages are ever changed var/list/splitlines = splittext(E.desc, "\n") var/list/desclines = list() +#ifndef DISABLE_DREAMLUAU var/list/state_stack = GLOB.lua_state_stack var/is_lua_call = length(state_stack) var/list/lua_stacks = list() if(is_lua_call) for(var/level in 1 to state_stack.len) lua_stacks += list(splittext(DREAMLUAU_GET_TRACEBACK(level), "\n")) +#endif if(LAZYLEN(splitlines) > ERROR_USEFUL_LEN) // If there aren't at least three lines, there's no info for(var/line in splitlines) if(LAZYLEN(line) < 3 || findtext(line, "source file:") || findtext(line, "usr.loc:")) @@ -124,8 +126,10 @@ GLOBAL_VAR_INIT(total_runtimes_skipped, 0) desclines += line if(usrinfo) //If this info isn't null, it hasn't been added yet desclines.Add(usrinfo) +#ifndef DISABLE_DREAMLUAU if(is_lua_call) SSlua.log_involved_runtime(E, desclines, lua_stacks) +#endif if(silencing) desclines += " (This error will now be silenced for [DisplayTimeText(configured_error_silence_time)])" if(GLOB.error_cache) diff --git a/code/modules/events/aurora_caelus.dm b/code/modules/events/aurora_caelus.dm index 2fdd161514903..fe71b762984e2 100644 --- a/code/modules/events/aurora_caelus.dm +++ b/code/modules/events/aurora_caelus.dm @@ -25,8 +25,9 @@ return for(var/V in GLOB.player_list) var/mob/M = V - if((M.client.prefs.read_preference(/datum/preference/toggle/sound_midi)) && is_station_level(M.z)) - M.playsound_local(M, 'sound/ambience/aurora_caelus/aurora_caelus.ogg', 20, FALSE, pressure_affected = FALSE) + var/pref_volume = M.client.prefs.read_preference(/datum/preference/numeric/volume/sound_midi) + if(pref_volume > 0 && is_station_level(M.z)) + M.playsound_local(M, 'sound/ambience/aurora_caelus/aurora_caelus.ogg', 20 * (pref_volume/100), FALSE, pressure_affected = FALSE) fade_space(fade_in = TRUE) fade_kitchen(fade_in = TRUE) diff --git a/code/modules/events/stray_cargo.dm b/code/modules/events/stray_cargo.dm index 0514af5764e3d..6f752a4882586 100644 --- a/code/modules/events/stray_cargo.dm +++ b/code/modules/events/stray_cargo.dm @@ -166,7 +166,6 @@ "Nuke Op" = UPLINK_NUKE_OPS, "Clown Op" = UPLINK_CLOWN_OPS, "Lone Op" = UPLINK_LONE_OP, - "Infiltrator" = UPLINK_INFILTRATORS, "Spy" = UPLINK_SPY ) var/uplink_type = tgui_input_list(usr, "Choose uplink to draw items from.", "Choose uplink type.", possible_uplinks) diff --git a/code/modules/explorer_drone/manager.dm b/code/modules/explorer_drone/manager.dm index ee51a2d5db398..cfad2aa116e30 100644 --- a/code/modules/explorer_drone/manager.dm +++ b/code/modules/explorer_drone/manager.dm @@ -11,7 +11,7 @@ ui.open() /datum/adventure_browser/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_DEBUG) /// Handles finishing adventure /datum/adventure_browser/proc/resolve_adventure(datum/source,result) diff --git a/code/modules/fishing/admin.dm b/code/modules/fishing/admin.dm index 53aefaf333899..9e54aad28c7d1 100644 --- a/code/modules/fishing/admin.dm +++ b/code/modules/fishing/admin.dm @@ -12,7 +12,7 @@ ADMIN_VERB(fishing_calculator, R_DEBUG, "Fishing Calculator", "A calculator... f ui.open() /datum/fishing_calculator/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_DEBUG) /datum/fishing_calculator/ui_close(mob/user) qdel(src) diff --git a/code/modules/fishing/aquarium/aquarium_kit.dm b/code/modules/fishing/aquarium/aquarium_kit.dm index f18f67b931370..751dff2609c76 100644 --- a/code/modules/fishing/aquarium/aquarium_kit.dm +++ b/code/modules/fishing/aquarium/aquarium_kit.dm @@ -39,6 +39,7 @@ if(fish_type) var/obj/item/fish/spawned_fish = new fish_type(null) ADD_TRAIT(spawned_fish, TRAIT_FISH_FROM_CASE, TRAIT_GENERIC) + ADD_TRAIT(spawned_fish, TRAIT_NO_FISHING_ACHIEVEMENT, TRAIT_GENERIC) spawned_fish.forceMove(src) // trigger storage.handle_entered /obj/item/storage/fish_case/proc/get_fish_type() diff --git a/code/modules/fishing/fish/_fish.dm b/code/modules/fishing/fish/_fish.dm index 17e11c3dcf21b..d98014903d6c4 100644 --- a/code/modules/fishing/fish/_fish.dm +++ b/code/modules/fishing/fish/_fish.dm @@ -338,7 +338,7 @@ adjust_reagents_capacity((protein_volume - old_blood_volume) * volume_mult) ///Add the extra nutriment if(protein) - reagents.multiply_single_reagent(/datum/reagent/consumable/nutriment/protein, 2) + reagents.multiply(2, /datum/reagent/consumable/nutriment/protein) var/datum/component/edible/edible = GetComponent(/datum/component/edible) edible.foodtypes &= ~(RAW|GORE) @@ -457,8 +457,7 @@ if(!result_reagent) created.reagents.add_reagent(reagent.type, transfer_vol, reagents.copy_data(reagent), reagents.chem_temp, reagent.purity, reagent.ph, no_react = TRUE) continue - var/multiplier = transfer_vol / result_reagent.volume - created.reagents.multiply_single_reagent(reagent.type, multiplier) + created.reagents.multiply(transfer_vol / result_reagent.volume, reagent.type) return ..() /obj/item/fish/update_icon_state() @@ -609,7 +608,7 @@ var/amount_to_gen = bites_left / initial_bites_left * multiplier generate_fish_reagents(amount_to_gen) else - reagents.multiply_reagents(new_weight_ratio) + reagents.multiply(new_weight_ratio) adjust_reagents_capacity(volume_diff) weight = new_weight diff --git a/code/modules/fishing/fish/fish_traits.dm b/code/modules/fishing/fish/fish_traits.dm index f6ca105f1e2e8..d3a978344b8e5 100644 --- a/code/modules/fishing/fish/fish_traits.dm +++ b/code/modules/fishing/fish/fish_traits.dm @@ -669,7 +669,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) if(cooked_time >= FISH_SAFE_COOKING_DURATION) fish.reagents.del_reagent(/datum/reagent/consumable/liquidelectricity) else - fish.reagents.multiply_single_reagent(/datum/reagent/consumable/liquidelectricity, 0.66) + fish.reagents.multiply(0.66, /datum/reagent/consumable/liquidelectricity) /datum/fish_trait/electrogenesis/add_reagents(obj/item/fish/fish, list/reagents) . = ..() diff --git a/code/modules/fishing/fish/types/station.dm b/code/modules/fishing/fish/types/station.dm index 75c3d8fb47901..cf843d567e264 100644 --- a/code/modules/fishing/fish/types/station.dm +++ b/code/modules/fishing/fish/types/station.dm @@ -215,8 +215,10 @@ if(FISH_BERNARD) sprite_width = 4 sprite_height = 6 + base_icon_state = "bernardfish" if(FISH_MATTHEW) sprite_width = 6 + base_icon_state = "matthewfish" update_appearance() #define PERSISTENCE_FISH_FRITTERISH_VARIANT "fritterish_variant" diff --git a/code/modules/fishing/fishing_minigame.dm b/code/modules/fishing/fishing_minigame.dm index 41a967fafb723..5ecd960db578d 100644 --- a/code/modules/fishing/fishing_minigame.dm +++ b/code/modules/fishing/fishing_minigame.dm @@ -292,6 +292,8 @@ GLOBAL_LIST_EMPTY(fishing_challenges_by_user) /datum/fishing_challenge/proc/no_longer_fishing(datum/source) SIGNAL_HANDLER + if(completed) //we already won/lost + return user.balloon_alert(user, "interrupted!") interrupt() @@ -350,6 +352,7 @@ GLOBAL_LIST_EMPTY(fishing_challenges_by_user) completed = TRUE if(phase == MINIGAME_PHASE) remove_minigame_hud() + if(!QDELETED(user) && user.mind && start_time && !(special_effects & FISHING_MINIGAME_RULE_NO_EXP)) var/seconds_spent = (world.time - start_time) * 0.1 var/extra_exp_malus = user.mind.get_skill_level(/datum/skill/fishing) - difficulty * 0.1 @@ -359,16 +362,32 @@ GLOBAL_LIST_EMPTY(fishing_challenges_by_user) user.mind.adjust_experience(/datum/skill/fishing, round(seconds_spent * FISHING_SKILL_EXP_PER_SECOND * experience_multiplier)) if(user.mind.get_skill_level(/datum/skill/fishing) >= SKILL_LEVEL_LEGENDARY) user.client?.give_award(/datum/award/achievement/skill/legendary_fisher, user) - if(win) - if(reward_path != FISHING_DUD) - playsound(location, 'sound/effects/bigsplash.ogg', 100) - if(ispath(reward_path, /obj/item/fish) || isfish(reward_path)) - var/obj/item/fish/fish_reward = reward_path - var/obj/item/fish/redirect_path = initial(fish_reward.fish_id_redirect_path) - var/fish_id = ispath(redirect_path, /obj/item/fish) ? initial(redirect_path.fish_id) : initial(fish_reward.fish_id) - if(fish_id) - user.client?.give_award(/datum/award/score/progress/fish, user, fish_id) - SEND_SIGNAL(user, COMSIG_MOB_COMPLETE_FISHING, src, win) + + if(!win) + SEND_SIGNAL(user, COMSIG_MOB_COMPLETE_FISHING, src, FALSE) + if(!QDELETED(src)) + qdel(src) + return + + if(reward_path != FISHING_DUD) + playsound(location, 'sound/effects/bigsplash.ogg', 100) + + var/valid_achievement_catch = FALSE + if (ispath(reward_path, /obj/item/fish)) + valid_achievement_catch = TRUE + else if (isfish(reward_path)) + var/obj/item/fish/fishy_individual = reward_path + if (!HAS_TRAIT(fishy_individual, TRAIT_NO_FISHING_ACHIEVEMENT) && fishy_individual.status == FISH_ALIVE) + valid_achievement_catch = TRUE + + if(valid_achievement_catch) + var/obj/item/fish/fish_reward = reward_path + var/obj/item/fish/redirect_path = initial(fish_reward.fish_id_redirect_path) + var/fish_id = ispath(redirect_path, /obj/item/fish) ? initial(redirect_path.fish_id) : initial(fish_reward.fish_id) + if(fish_id) + user.client?.give_award(/datum/award/score/progress/fish, user, fish_id) + + SEND_SIGNAL(user, COMSIG_MOB_COMPLETE_FISHING, src, TRUE) if(!QDELETED(src)) qdel(src) @@ -876,6 +895,14 @@ GLOBAL_LIST_EMPTY(fishing_challenges_by_user) RegisterSignal(spot, COMSIG_MOVABLE_MOVED, PROC_REF(follow_movable)) SET_BASE_PIXEL(spot.pixel_x, spot.pixel_y) SET_BASE_VISUAL_PIXEL(spot.pixel_w, spot.pixel_z) + // early return for spots with a plane lower than this. the floor plane is topdown and we don't want to inherit their layers. + if(spot.plane < plane) + return + if(spot.plane > plane) //We want this to render above the fishing spot. + var/turf/turf = get_turf(spot) + SET_PLANE_EXPLICIT(src, PLANE_TO_TRUE(spot.plane), turf) + if(spot.layer > layer) //Ditto. New stuff renders above old stuff if the layer is the same iirc (with some caveats). + layer = spot.layer /obj/effect/fishing_float/proc/follow_movable(atom/movable/source) SIGNAL_HANDLER diff --git a/code/modules/fishing/fishing_rod.dm b/code/modules/fishing/fishing_rod.dm index d78e4298599c6..b406d82f0eab3 100644 --- a/code/modules/fishing/fishing_rod.dm +++ b/code/modules/fishing/fishing_rod.dm @@ -410,7 +410,6 @@ reel(user) return ITEM_INTERACT_BLOCKING - SEND_SIGNAL(interacting_with, COMSIG_PRE_FISHING) cast_line(interacting_with, user) return ITEM_INTERACT_SUCCESS @@ -433,6 +432,14 @@ return if(!COOLDOWN_FINISHED(src, casting_cd)) return + COOLDOWN_START(src, casting_cd, 1 SECONDS) + // skip firing a projectile if the target is adjacent and can be reached (no order windows in the way), + // otherwise it may end up hitting other things on its turf, which is problematic + // especially for entities with the profound fisher component, which should only work on + // proper fishing spots. + if(user.CanReach(target, src)) + hook_hit(target, user) + return casting = TRUE var/obj/projectile/fishing_cast/cast_projectile = new(get_turf(src)) cast_projectile.range = get_cast_range(user) @@ -444,7 +451,6 @@ cast_projectile.impacted = list(WEAKREF(user) = TRUE) cast_projectile.aim_projectile(target, user) cast_projectile.fire() - COOLDOWN_START(src, casting_cd, 1 SECONDS) /// Called by hook projectile when hitting things /obj/item/fishing_rod/proc/hook_hit(atom/atom_hit_by_hook_projectile, mob/user) diff --git a/code/modules/fishing/sources/_fish_source.dm b/code/modules/fishing/sources/_fish_source.dm index c747450986389..58c9e1aea6583 100644 --- a/code/modules/fishing/sources/_fish_source.dm +++ b/code/modules/fishing/sources/_fish_source.dm @@ -273,6 +273,8 @@ GLOBAL_LIST_INIT(specific_fish_icons, generate_specific_fish_icons()) fisherman.balloon_alert(fisherman, "caught something!") return fisherman.balloon_alert(fisherman, "caught [reward]!") + if (isfish(reward)) + ADD_TRAIT(reward, TRAIT_NO_FISHING_ACHIEVEMENT, TRAIT_GENERIC) return reward diff --git a/code/modules/hallucination/fake_chat.dm b/code/modules/hallucination/fake_chat.dm index 963e718eed865..1043172449675 100644 --- a/code/modules/hallucination/fake_chat.dm +++ b/code/modules/hallucination/fake_chat.dm @@ -48,7 +48,9 @@ if(!chosen) if(is_radio) chosen = pick(list("Help!", + "Help [pick_list_replacements(HALLUCINATION_FILE, "location")][prob(50)?"!":"!!"]", "[pick_list_replacements(HALLUCINATION_FILE, "people")] is [pick_list_replacements(HALLUCINATION_FILE, "accusations")]!", + "[pick_list_replacements(HALLUCINATION_FILE, "people")] has [pick_list_replacements(HALLUCINATION_FILE, "contraband")]!", "[pick_list_replacements(HALLUCINATION_FILE, "threat")] in [pick_list_replacements(HALLUCINATION_FILE, "location")][prob(50)?"!":"!!"]", "[pick("Where's [first_name(hallucinator.name)]?", "Set [first_name(hallucinator.name)] to arrest!")]", "[pick("C","Ai, c","Someone c","Rec")]all the shuttle!", diff --git a/code/modules/hallucination/inhand_fake_item.dm b/code/modules/hallucination/inhand_fake_item.dm index de3b6b99411e9..665c88113394c 100644 --- a/code/modules/hallucination/inhand_fake_item.dm +++ b/code/modules/hallucination/inhand_fake_item.dm @@ -118,7 +118,7 @@ name = "mirage" plane = ABOVE_HUD_PLANE interaction_flags_item = NONE - item_flags = ABSTRACT | DROPDEL | EXAMINE_SKIP | HAND_ITEM | NOBLUDGEON // Most of these flags don't matter, but better safe than sorry + item_flags = ABSTRACT | DROPDEL | HAND_ITEM | NOBLUDGEON // Most of these flags don't matter, but better safe than sorry resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF /// The hallucination that created us. var/datum/hallucination/parent @@ -132,7 +132,7 @@ RegisterSignal(parent, COMSIG_QDELETING, PROC_REF(parent_deleting)) src.parent = parent - ADD_TRAIT(src, TRAIT_NODROP, INNATE_TRAIT) + add_traits(list(TRAIT_NODROP, TRAIT_EXAMINE_SKIP), INNATE_TRAIT) /obj/item/hallucinated/Destroy(force) UnregisterSignal(parent, COMSIG_QDELETING) diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index d4407bb09a8dd..5ac1c35e277a0 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -230,11 +230,12 @@ hitsound = 'sound/items/weapons/bladeslice.ogg' ///Catch right clicks so we can stylize! -/obj/item/secateurs/pre_attack_secondary(atom/target, mob/living/user, params) +/obj/item/secateurs/interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers) if(user.combat_mode) - return ..() - restyle(target, user) - return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + return NONE + + restyle(interacting_with, user) + return ITEM_INTERACT_SUCCESS ///Send a signal to whatever we clicked and ask them if they wanna be PLANT RESTYLED YEAAAAAAAH /obj/item/secateurs/proc/restyle(atom/target, mob/living/user) diff --git a/code/modules/instruments/songs/play_legacy.dm b/code/modules/instruments/songs/play_legacy.dm index c49122d464196..bb60d63c3b540 100644 --- a/code/modules/instruments/songs/play_legacy.dm +++ b/code/modules/instruments/songs/play_legacy.dm @@ -85,7 +85,8 @@ if(player && HAS_TRAIT(player, TRAIT_MUSICIAN) && isliving(M)) var/mob/living/L = M L.apply_status_effect(/datum/status_effect/good_music) - if(!(M?.client?.prefs.read_preference(/datum/preference/toggle/sound_instruments))) + var/pref_volume = M?.client?.prefs.read_preference(/datum/preference/numeric/volume/sound_instruments) + if(!pref_volume) continue - M.playsound_local(source, null, volume * using_instrument.volume_multiplier, sound_to_use = music_played) + M.playsound_local(source, null, volume * using_instrument.volume_multiplier * (pref_volume/100), sound_to_use = music_played) // Could do environment and echo later but not for now diff --git a/code/modules/instruments/songs/play_synthesized.dm b/code/modules/instruments/songs/play_synthesized.dm index 05e23a8c97aac..6f9cf2280b282 100644 --- a/code/modules/instruments/songs/play_synthesized.dm +++ b/code/modules/instruments/songs/play_synthesized.dm @@ -64,9 +64,10 @@ if(player && HAS_TRAIT(player, TRAIT_MUSICIAN) && isliving(M)) var/mob/living/L = M L.apply_status_effect(/datum/status_effect/good_music) - if(!(M?.client?.prefs.read_preference(/datum/preference/toggle/sound_instruments))) + var/pref_volume = M?.client?.prefs.read_preference(/datum/preference/numeric/volume/sound_instruments) + if(!pref_volume) continue - M.playsound_local(get_turf(parent), null, volume, FALSE, K.frequency, null, channel, null, copy) + M.playsound_local(get_turf(parent), null, volume * (pref_volume/100), FALSE, K.frequency, null, channel, null, copy) // Could do environment and echo later but not for now /** diff --git a/code/modules/interview/interview_manager.dm b/code/modules/interview/interview_manager.dm index b5d39961b586d..07104c15c0be4 100644 --- a/code/modules/interview/interview_manager.dm +++ b/code/modules/interview/interview_manager.dm @@ -181,7 +181,7 @@ GLOBAL_DATUM_INIT(interviews, /datum/interview_manager, new) ui.open() /datum/interview_manager/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_ADMIN) /datum/interview_manager/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) if (..()) diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index 7f4df767d5d26..da76484ed2fba 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -228,19 +228,9 @@ equip_outfit_and_loadout(equipping.get_outfit(consistent), player_client?.prefs, visual_only) /datum/job/proc/announce_head(mob/living/carbon/human/human, channels) //tells the given channel that the given mob is the new department head. See communications.dm for valid channels. - if(!human) - return - var/obj/machinery/announcement_system/system - var/list/available_machines = list() - for(var/obj/machinery/announcement_system/announce as anything in GLOB.announcement_systems) - if(announce.newhead_toggle) - available_machines += announce - break - if(!length(available_machines)) - return - system = pick(available_machines) - //timer because these should come after the captain announcement - SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_addtimer), CALLBACK(system, TYPE_PROC_REF(/obj/machinery/announcement_system, announce), AUTO_ANNOUNCE_NEWHEAD, human.real_name, human.job, channels), 1)) + if(human) + //timer because these should come after the captain announcement + SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_addtimer), CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(aas_config_announce), /datum/aas_config_entry/newhead, list("PERSON" = human.real_name, "RANK" = human.job), null, channels, null, TRUE), 1)) //If the configuration option is set to require players to be logged as old enough to play certain jobs, then this proc checks that they are, otherwise it just returns 1 /datum/job/proc/player_old_enough(client/player) diff --git a/code/modules/jobs/job_types/prisoner.dm b/code/modules/jobs/job_types/prisoner.dm index 59f15b3b3836a..f663dc06f57f5 100644 --- a/code/modules/jobs/job_types/prisoner.dm +++ b/code/modules/jobs/job_types/prisoner.dm @@ -59,6 +59,7 @@ belt = null ears = null shoes = /obj/item/clothing/shoes/sneakers/orange + box = /obj/item/storage/box/survival/prisoner /datum/outfit/job/prisoner/pre_equip(mob/living/carbon/human/H) ..() diff --git a/code/modules/jobs/job_types/security_officer.dm b/code/modules/jobs/job_types/security_officer.dm index a84d4e0e73765..d81d4787ac518 100644 --- a/code/modules/jobs/job_types/security_officer.dm +++ b/code/modules/jobs/job_types/security_officer.dm @@ -157,11 +157,14 @@ GLOBAL_LIST_EMPTY(security_officer_distribution) department, distribution, ) - var/obj/machinery/announcement_system/announcement_system = pick(GLOB.announcement_systems) + var/obj/machinery/announcement_system/announcement_system = get_announcement_system(/datum/aas_config_entry/announce_officer) if (isnull(announcement_system)) return - announcement_system.announce_officer(officer, department) + announcement_system.announce(/datum/aas_config_entry/announce_officer, list( + "OFFICER" = officer.real_name, + "DEPARTMENT" = department, + ), list(RADIO_CHANNEL_SECURITY)) var/list/targets = list() @@ -182,10 +185,14 @@ GLOBAL_LIST_EMPTY(security_officer_distribution) if (!targets.len) return + // I thought it would be great, if AAS also modifies PDA messages. Especially because it's AASs message. var/datum/signal/subspace/messaging/tablet_message/signal = new(announcement_system, list( "fakename" = "Security Department Update", "fakejob" = "Automated Announcement System", - "message" = "Officer [officer.real_name] has been assigned to your department, [department].", + "message" = announcement_system.compile_config_message(/datum/aas_config_entry/announce_officer, list( + "OFFICER" = officer.real_name, + "DEPARTMENT" = department, + )), "targets" = targets, "automated" = TRUE, )) diff --git a/code/modules/logging/log_holder.dm b/code/modules/logging/log_holder.dm index 85a436076c84e..2fb94500ce97c 100644 --- a/code/modules/logging/log_holder.dm +++ b/code/modules/logging/log_holder.dm @@ -46,7 +46,7 @@ ADMIN_VERB(log_viewer_new, R_ADMIN|R_DEBUG, "View Round Logs", "View the rounds ui.open() /datum/log_holder/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_ADMIN | R_DEBUG) /datum/log_holder/ui_static_data(mob/user) var/list/data = list( diff --git a/code/modules/lost_crew/lost_crew_manager.dm b/code/modules/lost_crew/lost_crew_manager.dm index e8a85ff13cf4a..ed222e063b666 100644 --- a/code/modules/lost_crew/lost_crew_manager.dm +++ b/code/modules/lost_crew/lost_crew_manager.dm @@ -104,21 +104,16 @@ GLOBAL_DATUM_INIT(lost_crew_manager, /datum/lost_crew_manager, new) /// Give medbay a happy announcement and put some money into their budget /datum/lost_crew_manager/proc/award_succes(datum/mind/revived_mind, list/death_lore) - var/obj/item/radio/headset/radio = new /obj/item/radio/headset/silicon/ai(revived_mind.current) //radio cant be in nullspace or brit shakes - radio.set_frequency(FREQ_MEDICAL) - radio.name = "Medical Announcer" - - // i am incredibly disappointed in you + // I am incredibly disappointed in you if(revived_mind.current.stat == DEAD) - radio.talk_into(radio, "Sensors indicate lifesigns of [revived_mind.name] have seized. Please inform their family of your failure.", RADIO_CHANNEL_MEDICAL) + aas_config_announce(/datum/aas_config_entry/medical_lost_crew_reward, list("PERSON" = revived_mind.name, "AWARD" = 0), null, list(RADIO_CHANNEL_MEDICAL), "Deceased") return // You are a credit to society - radio.talk_into(radio, "Sensors indicate continued survival of [revived_mind.name]. Well done, [credits_on_succes]cr has been transferred to the medical budget.", RADIO_CHANNEL_MEDICAL) + aas_config_announce(/datum/aas_config_entry/medical_lost_crew_reward, list("PERSON" = revived_mind.name, "AWARD" = credits_on_succes), null, list(RADIO_CHANNEL_MEDICAL), "Revived") var/datum/bank_account/medical_budget = SSeconomy.get_dep_account(ACCOUNT_MED) medical_budget.adjust_money(credits_on_succes) - qdel(radio) /// A box for recovered items that can only be opened by the new crewmember /obj/item/storage/lockbox/mind @@ -162,3 +157,15 @@ GLOBAL_DATUM_INIT(lost_crew_manager, /datum/lost_crew_manager, new) return NONE context[SCREENTIP_CONTEXT_LMB] = "Use in-hand to unlock" return CONTEXTUAL_SCREENTIP_SET + +/datum/aas_config_entry/medical_lost_crew_reward + name = "Medical Alert: Lost Crew Revival Program" + announcement_lines_map = list( + "Deceased" = "Sensors indicate lifesigns of %PERSON have seized. Please inform their family of your failure.", + "Revived" = "Sensors indicate continued survival of %PERSON. Well done, %AWARDcr has been transferred to the medical budget." + ) + vars_and_tooltips_map = list( + "PERSON" = "will be replaced with body's name", + "AWARD" = "with money that medical department receive, if any" + ) + modifiable = FALSE diff --git a/code/modules/mafia/roles/roles.dm b/code/modules/mafia/roles/roles.dm index b035b618ec4e7..77f46cddac74a 100644 --- a/code/modules/mafia/roles/roles.dm +++ b/code/modules/mafia/roles/roles.dm @@ -116,7 +116,7 @@ * Adds the playing_mafia trait so people examining them will know why they're currently lacking a soul. */ /datum/mafia_role/proc/put_player_in_body(client/player) - if(player.mob.mind && player.mob.mind.current) + if(player.mob.mind) body.AddComponent( \ /datum/component/temporary_body, \ old_mind = player.mob.mind, \ diff --git a/code/modules/mapfluff/ruins/spaceruin_code/garbagetruck.dm b/code/modules/mapfluff/ruins/spaceruin_code/garbagetruck.dm new file mode 100644 index 0000000000000..e48bcfd0cebfa --- /dev/null +++ b/code/modules/mapfluff/ruins/spaceruin_code/garbagetruck.dm @@ -0,0 +1,103 @@ +/obj/item/eyesnatcher + name = "portable eyeball extractor" + desc = "An overly complicated device that can pierce target's skull and extract their eyeballs if enough brute force is applied." + icon = 'icons/obj/medical/surgery_tools.dmi' + icon_state = "eyesnatcher" + base_icon_state = "eyesnatcher" + inhand_icon_state = "hypo" + lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' + throwforce = 0 + w_class = WEIGHT_CLASS_SMALL + throw_speed = 3 + throw_range = 5 + ///Whether it's been used to steal a pair of eyes already. + var/used = FALSE + +/obj/item/eyesnatcher/update_icon_state() + . = ..() + icon_state = "[base_icon_state][used ? "-used" : ""]" + +/obj/item/eyesnatcher/attack(mob/living/carbon/human/target, mob/living/user, params) + if(used || !istype(target) || !target.Adjacent(user)) //Works only once, no TK use + return ..() + + var/obj/item/organ/eyes/eyeballies = target.get_organ_slot(ORGAN_SLOT_EYES) + var/obj/item/bodypart/head/head = target.get_bodypart(BODY_ZONE_HEAD) + + if(!head || !eyeballies || target.is_eyes_covered()) + return ..() + var/eye_snatch_enthusiasm = 5 SECONDS + if(HAS_MIND_TRAIT(user, TRAIT_MORBID)) + eye_snatch_enthusiasm *= 0.7 + user.do_attack_animation(target, used_item = src) + target.visible_message( + span_warning("[user] presses [src] against [target]'s skull!"), + span_userdanger("[user] presses [src] against your skull!")) + if(!do_after(user, eye_snatch_enthusiasm, target = target, extra_checks = CALLBACK(src, PROC_REF(eyeballs_exist), eyeballies, head, target))) + return + + to_chat(target, span_userdanger("You feel something forcing its way into your skull!")) + balloon_alert(user, "applying pressure...") + if(!do_after(user, eye_snatch_enthusiasm, target = target, extra_checks = CALLBACK(src, PROC_REF(eyeballs_exist), eyeballies, head, target))) + return + + var/min_wound = head.get_wound_threshold_of_wound_type(WOUND_BLUNT, WOUND_SEVERITY_SEVERE, return_value_if_no_wound = 30, wound_source = src) + var/max_wound = head.get_wound_threshold_of_wound_type(WOUND_BLUNT, WOUND_SEVERITY_CRITICAL, return_value_if_no_wound = 50, wound_source = src) + + target.apply_damage(20, BRUTE, BODY_ZONE_HEAD, wound_bonus = rand(min_wound, max_wound + 10), attacking_item = src) + target.visible_message( + span_danger("[src] pierces through [target]'s skull, horribly mutilating their eyes!"), + span_userdanger("Something penetrates your skull, horribly mutilating your eyes! Holy fuck!"), + span_hear("You hear a sickening sound of metal piercing flesh!") + ) + eyeballies.apply_organ_damage(eyeballies.maxHealth) + target.emote("scream") + playsound(target, 'sound/effects/wounds/crackandbleed.ogg', 100) + log_combat(user, target, "cracked the skull of (eye snatching)", src) + + if(!do_after(user, eye_snatch_enthusiasm, target = target, extra_checks = CALLBACK(src, PROC_REF(eyeballs_exist), eyeballies, head, target))) + return + + if(!target.is_blind()) + to_chat(target, span_userdanger("You suddenly go blind!")) + if(prob(1)) + to_chat(target, span_notice("At least you got a new pirate-y look out of it...")) + var/obj/item/clothing/glasses/eyepatch/new_patch = new(target.loc) + target.equip_to_slot_if_possible(new_patch, ITEM_SLOT_EYES, disable_warning = TRUE) + + to_chat(user, span_notice("You successfully extract [target]'s eyeballs.")) + playsound(target, 'sound/items/handling/surgery/retractor2.ogg', 100, TRUE) + playsound(target, 'sound/effects/pop.ogg', 100, TRAIT_MUTE) + eyeballies.Remove(target) + eyeballies.forceMove(get_turf(target)) + notify_ghosts( + "[target] has just had their eyes snatched!", + source = target, + header = "Ouch!", + ) + target.emote("scream") + if(prob(20)) + target.emote("cry") + used = TRUE + update_appearance(UPDATE_ICON) + +/obj/item/eyesnatcher/examine(mob/user) + . = ..() + if(used) + . += span_notice("It has been used up.") + +/obj/item/eyesnatcher/proc/eyeballs_exist(obj/item/organ/eyes/eyeballies, obj/item/bodypart/head/head, mob/living/carbon/human/target) + if(!eyeballies || QDELETED(eyeballies)) + return FALSE + if(!head || QDELETED(head)) + return FALSE + + if(eyeballies.owner != target) + return FALSE + var/obj/item/organ/eyes/eyes = target.get_organ_slot(ORGAN_SLOT_EYES) + //got different eyes or doesn't own the head... somehow + if(head.owner != target || eyes != eyeballies) + return FALSE + + return TRUE diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm index 950f3e2809ef2..0f6ff85eed92f 100644 --- a/code/modules/mapping/map_template.dm +++ b/code/modules/mapping/map_template.dm @@ -61,17 +61,9 @@ 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] - ) - ) + bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ], + bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ] + ) for(var/turf/current_turf as anything in turfs) var/area/current_turfs_area = current_turf.loc areas |= current_turfs_area @@ -114,17 +106,9 @@ //calculate all turfs inside the border var/list/template_and_bordering_turfs = block( - locate( - max(bounds[MAP_MINX]-1, 1), - max(bounds[MAP_MINY]-1, 1), - bounds[MAP_MINZ] - ), - locate( - min(bounds[MAP_MAXX]+1, world.maxx), - min(bounds[MAP_MAXY]+1, world.maxy), - bounds[MAP_MAXZ] - ) - ) + bounds[MAP_MINX]-1, bounds[MAP_MINY]-1, bounds[MAP_MINZ], + bounds[MAP_MAXX]+1, bounds[MAP_MAXY]+1, bounds[MAP_MAXZ] + ) for(var/turf/affected_turf as anything in template_and_bordering_turfs) affected_turf.air_update_turf(TRUE, TRUE) affected_turf.levelupdate() @@ -230,7 +214,7 @@ var/turf/corner = locate(placement.x - round(width/2), placement.y - round(height/2), placement.z) if(corner) placement = corner - return block(placement, locate(placement.x+width-1, placement.y+height-1, placement.z)) + return block(placement.x, placement.y, placement.z, placement.x+width-1, placement.y+height-1, placement.z) /// Takes in a type path, locates an instance of that type in the cached map, and calculates its offset from the origin of the map, returns this offset in the form list(x, y). /datum/map_template/proc/discover_offset(obj/marker) diff --git a/code/modules/mapping/mapping_helpers.dm b/code/modules/mapping/mapping_helpers.dm index da7d288d161fe..d6ed4ebf8e4f0 100644 --- a/code/modules/mapping/mapping_helpers.dm +++ b/code/modules/mapping/mapping_helpers.dm @@ -308,9 +308,11 @@ if(target.tlv_cold_room) target.set_tlv_cold_room() + if(target.tlv_kitchen) + target.set_tlv_kitchen() if(target.tlv_no_checks) target.set_tlv_no_checks() - if(target.tlv_no_checks && target.tlv_cold_room) + if(target.tlv_no_checks + target.tlv_cold_room + target.tlv_kitchen > 1) CRASH("Tried to apply incompatible air alarm threshold helpers!") if(target.syndicate_access) @@ -402,6 +404,16 @@ log_mapping("[src] at [AREACOORD(src)] [(area.type)] tried to adjust [target]'s tlv to cold_room but it's already changed!") target.tlv_cold_room = TRUE +/obj/effect/mapping_helpers/airalarm/tlv_kitchen + name = "airalarm kitchen tlv helper" + icon_state = "airalarm_tlv_kitchen_helper" + +/obj/effect/mapping_helpers/airalarm/tlv_kitchen/payload(obj/machinery/airalarm/target) + if(target.tlv_kitchen) + var/area/area = get_area(target) + log_mapping("[src] at [AREACOORD(src)] [(area.type)] tried to adjust [target]'s tlv to kitchen but it's already changed!") + target.tlv_kitchen = TRUE + /obj/effect/mapping_helpers/airalarm/tlv_no_checks name = "airalarm no checks tlv helper" icon_state = "airalarm_tlv_no_checks_helper" diff --git a/code/modules/mapping/reader.dm b/code/modules/mapping/reader.dm index 10d506f8c48e5..1efcf71676e6c 100644 --- a/code/modules/mapping/reader.dm +++ b/code/modules/mapping/reader.dm @@ -350,8 +350,9 @@ 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])) + bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ], + 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) diff --git a/code/modules/mapping/space_management/space_transition.dm b/code/modules/mapping/space_management/space_transition.dm index b61897dd7b6b4..e5db045e92d20 100644 --- a/code/modules/mapping/space_management/space_transition.dm +++ b/code/modules/mapping/space_management/space_transition.dm @@ -131,9 +131,10 @@ continue var/zlevelnumber = level.z_value for(var/side in 1 to 4) - var/turf/beginning = locate(x_pos_beginning[side], y_pos_beginning[side], zlevelnumber) - var/turf/ending = locate(x_pos_ending[side], y_pos_ending[side], zlevelnumber) - var/list/turfblock = block(beginning, ending) + var/list/turfblock = block( + x_pos_beginning[side], y_pos_beginning[side], zlevelnumber, + x_pos_ending[side], y_pos_ending[side], zlevelnumber + ) var/dirside = 2**(side-1) var/x_target = x_pos_transition[side] == 1 ? 0 : x_pos_transition[side] var/y_target = y_pos_transition[side] == 1 ? 0 : y_pos_transition[side] diff --git a/code/modules/meteors/meteor_types.dm b/code/modules/meteors/meteor_types.dm index 0dab142f03ad0..8fec28c94f044 100644 --- a/code/modules/meteors/meteor_types.dm +++ b/code/modules/meteors/meteor_types.dm @@ -356,7 +356,7 @@ /obj/effect/meteor/banana/ram_turf(turf/bumped) for(var/mob/living/slipped in get_turf(bumped)) - slipped.slip(100, slipped.loc,- GALOSHES_DONT_HELP|SLIDE, 0, FALSE) + slipped.slip(100, slipped.loc,- GALOSHES_DONT_HELP|SLIDE) slipped.visible_message(span_warning("[src] honks [slipped] to the floor!"), span_userdanger("[src] harmlessly passes through you, knocking you over.")) get_hit() diff --git a/code/modules/mining/laborcamp/laborstacker.dm b/code/modules/mining/laborcamp/laborstacker.dm index 75d532249f492..a347232b83bd8 100644 --- a/code/modules/mining/laborcamp/laborstacker.dm +++ b/code/modules/mining/laborcamp/laborstacker.dm @@ -10,8 +10,6 @@ density = FALSE /// Connected stacking machine var/obj/machinery/mineral/stacking_machine/laborstacker/stacking_machine - /// Needed to send messages to sec radio - var/obj/item/radio/security_radio /// Whether the claim console initiated the launch. var/initiated_launch = FALSE /// Cooldown for console says. @@ -19,8 +17,6 @@ /obj/machinery/mineral/labor_claim_console/Initialize(mapload) . = ..() - security_radio = new /obj/item/radio(src) - security_radio.set_listening(FALSE) locate_stacking_machine() if(!SSshuttle.initialized) RegisterSignal(SSshuttle, COMSIG_SUBSYSTEM_POST_INITIALIZE, PROC_REF(register_shuttle_signal)) @@ -37,7 +33,6 @@ UnregisterSignal(SSshuttle, COMSIG_SUBSYSTEM_POST_INITIALIZE) /obj/machinery/mineral/labor_claim_console/Destroy() - QDEL_NULL(security_radio) if(stacking_machine) stacking_machine.labor_console = null stacking_machine = null @@ -130,11 +125,10 @@ COOLDOWN_START(src, say_cooldown, 2 SECONDS) else if(!(obj_flags & EMAGGED)) - security_radio.set_frequency(FREQ_SECURITY) var/datum/record/crew/target = find_record(user_mob.real_name) target?.wanted_status = WANTED_PAROLE - security_radio.talk_into(src, "[user_mob.name] returned to the station. Minerals and Prisoner ID card ready for retrieval.", FREQ_SECURITY) + aas_config_announce(/datum/aas_config_entry/security_labor_stacker, list("PERSON" = user_mob.real_name), src, list(RADIO_CHANNEL_SECURITY)) user_mob.log_message("has completed their labor points goal and is now sending the gulag shuttle back to the station.", LOG_GAME) say("Labor sentence finished, shuttle returning.") initiated_launch = TRUE @@ -227,4 +221,13 @@ say("Points Collected: [prisoner_id.points] / [prisoner_id.goal].") say("Collect points by bringing smelted minerals to the Labor Shuttle stacking machine. Reach your quota to earn your release.") +/datum/aas_config_entry/security_labor_stacker + name = "Security Alert: Labor Camp Release" + announcement_lines_map = list( + "Message" = "%PERSON returned to the station. Minerals and Prisoner ID card ready for retrieval." + ) + vars_and_tooltips_map = list( + "PERSON" = "will be replaced with the name of the prisoner." + ) + #undef SHEET_POINT_VALUE diff --git a/code/modules/mining/lavaland/megafauna_loot.dm b/code/modules/mining/lavaland/megafauna_loot.dm index 5ed8404459fbf..9728dd6d46dd6 100644 --- a/code/modules/mining/lavaland/megafauna_loot.dm +++ b/code/modules/mining/lavaland/megafauna_loot.dm @@ -249,6 +249,10 @@ icon_state = "vial" /obj/item/mayhem/attack_self(mob/user) + if(tgui_alert(user, "Breaking the bottle will cause nearby crewmembers to go into a murderous frenzy. Be sure you know what you are doing...","Break the bottle?",list("Break it!","DON'T")) != "Break it!") + return + if(QDELETED(src) || !user.is_holding(src) || user.incapacitated) + return for(var/mob/living/carbon/human/target in range(7,user)) target.apply_status_effect(/datum/status_effect/mayhem) to_chat(user, span_notice("You shatter the bottle!")) diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 956c2a779e561..ea0345f78d02b 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -135,6 +135,10 @@ roundstart_template = /datum/map_template/shuttle/mining/kilo height = 10 +/obj/docking_port/stationary/mining_home/northstar + roundstart_template = /datum/map_template/shuttle/mining/northstar + height = 6 + /obj/docking_port/stationary/mining_home/nebula roundstart_template = /datum/map_template/shuttle/mining/nebula height = 10 @@ -147,6 +151,9 @@ /obj/docking_port/stationary/mining_home/common/kilo roundstart_template = /datum/map_template/shuttle/mining_common/kilo +/obj/docking_port/stationary/mining_home/common/northstar + roundstart_template = /datum/map_template/shuttle/mining_common/northstar + /obj/structure/closet/crate/miningcar name = "mine cart" desc = "A cart for use on rails. Or off rails, if you're so inclined." diff --git a/code/modules/mob/living/basic/bots/medbot/medbot.dm b/code/modules/mob/living/basic/bots/medbot/medbot.dm index 780fd1a07d7fc..bac615ecfb5fc 100644 --- a/code/modules/mob/living/basic/bots/medbot/medbot.dm +++ b/code/modules/mob/living/basic/bots/medbot/medbot.dm @@ -369,12 +369,14 @@ /mob/living/basic/bot/medbot/mysterious name = "\improper Mysterious Medibot" desc = "International Medibot of mystery." + skin = "bezerk" damage_type_healer = HEAL_ALL_DAMAGE heal_amount = 10 /mob/living/basic/bot/medbot/derelict name = "\improper Old Medibot" desc = "Looks like it hasn't been modified since the late 2080s." + skin = "bezerk" damage_type_healer = HEAL_ALL_DAMAGE medical_mode_flags = MEDBOT_SPEAK_MODE heal_threshold = 0 @@ -385,6 +387,7 @@ desc = "A medibot stolen from a Nanotrasen station and upgraded by the Syndicate. Despite their best efforts at reprogramming, it still appears visibly upset near nuclear explosives." health = 40 maxHealth = 40 + skin = "bezerk" req_one_access = list(ACCESS_SYNDICATE) bot_mode_flags = parent_type::bot_mode_flags & ~BOT_MODE_REMOTE_ENABLED radio_key = /obj/item/encryptionkey/syndicate diff --git a/code/modules/mob/living/basic/clown/clown.dm b/code/modules/mob/living/basic/clown/clown.dm index a8fb645af73b7..58c32a53caaeb 100644 --- a/code/modules/mob/living/basic/clown/clown.dm +++ b/code/modules/mob/living/basic/clown/clown.dm @@ -588,9 +588,9 @@ for(var/i in 1 to peels_to_spawn) new banana_type(pick_n_take(reachable_turfs)) playsound(owner, 'sound/mobs/non-humanoids/clown/clownana_rustle.ogg', 60) - animate(owner, time = 1, pixel_x = 6, easing = CUBIC_EASING | EASE_OUT) - animate(time = 2, pixel_x = -8, easing = CUBIC_EASING) - animate(time = 1, pixel_x = 0, easing = CUBIC_EASING | EASE_IN) + animate(owner, time = 0.1 SECONDS, pixel_w = 6, easing = CUBIC_EASING | EASE_OUT, flags = ANIMATION_PARALLEL|ANIMATION_RELATIVE) + animate(time = 0.2 SECONDS, pixel_w = -8, easing = CUBIC_EASING, flags = ANIMATION_RELATIVE) + animate(time = 0.1 SECONDS, pixel_w = 2, easing = CUBIC_EASING | EASE_IN, flags = ANIMATION_RELATIVE) StartCooldown() ///spawns a plumb bunch of bananas imbued with mystical power. diff --git a/code/modules/mob/living/basic/drone/_drone.dm b/code/modules/mob/living/basic/drone/_drone.dm index ba315dade6418..7490a463977e9 100644 --- a/code/modules/mob/living/basic/drone/_drone.dm +++ b/code/modules/mob/living/basic/drone/_drone.dm @@ -277,7 +277,7 @@ //Hands for(var/obj/item/held_thing in held_items) - if(held_thing.item_flags & (ABSTRACT|EXAMINE_SKIP|HAND_ITEM)) + if((held_thing.item_flags & (ABSTRACT|HAND_ITEM)) || HAS_TRAIT(held_thing, TRAIT_EXAMINE_SKIP)) continue . += "It has [held_thing.examine_title(user)] in its [get_held_index_name(get_held_index_of_item(held_thing))]." diff --git a/code/modules/mob/living/basic/heretic/fire_shark.dm b/code/modules/mob/living/basic/heretic/fire_shark.dm index e7375f4b33f5d..41c4897267323 100644 --- a/code/modules/mob/living/basic/heretic/fire_shark.dm +++ b/code/modules/mob/living/basic/heretic/fire_shark.dm @@ -21,7 +21,7 @@ mob_size = MOB_SIZE_TINY speak_emote = list("screams") basic_mob_flags = DEL_ON_DEATH - ai_controller = /datum/ai_controller/basic_controller/simple_hostile_obstacles + ai_controller = /datum/ai_controller/basic_controller/simple/simple_hostile_obstacles initial_language_holder = /datum/language_holder/carp/hear_common /mob/living/basic/heretic_summon/fire_shark/Initialize(mapload) diff --git a/code/modules/mob/living/basic/icemoon/ice_demon/ice_demon_ai.dm b/code/modules/mob/living/basic/icemoon/ice_demon/ice_demon_ai.dm index 8a900b0308a9d..ccccc7952247f 100644 --- a/code/modules/mob/living/basic/icemoon/ice_demon/ice_demon_ai.dm +++ b/code/modules/mob/living/basic/icemoon/ice_demon/ice_demon_ai.dm @@ -1,6 +1,7 @@ /datum/ai_controller/basic_controller/ice_demon blackboard = list( BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, + BB_RANGED_SKIRMISH_MAX_DISTANCE = 7, BB_LIST_SCARY_ITEMS = list( /obj/item/weldingtool, /obj/item/flashlight/flare, @@ -13,16 +14,12 @@ /datum/ai_planning_subtree/simple_find_target, /datum/ai_planning_subtree/flee_target/ice_demon, /datum/ai_planning_subtree/ranged_skirmish/ice_demon, - /datum/ai_planning_subtree/maintain_distance/cover_minimum_distance/ice_demon, + /datum/ai_planning_subtree/maintain_distance/cover_minimum_distance, /datum/ai_planning_subtree/teleport_away_from_target, /datum/ai_planning_subtree/find_and_hunt_target/teleport_destination, /datum/ai_planning_subtree/targeted_mob_ability/summon_afterimages, ) - -/datum/ai_planning_subtree/maintain_distance/cover_minimum_distance/ice_demon - maximum_distance = 7 - /datum/ai_planning_subtree/teleport_away_from_target ability_key = BB_DEMON_TELEPORT_ABILITY diff --git a/code/modules/mob/living/basic/icemoon/wolf/wolf_extras.dm b/code/modules/mob/living/basic/icemoon/wolf/wolf_extras.dm index 7765ec896a1ee..c7b2c79ac6795 100644 --- a/code/modules/mob/living/basic/icemoon/wolf/wolf_extras.dm +++ b/code/modules/mob/living/basic/icemoon/wolf/wolf_extras.dm @@ -9,10 +9,10 @@ // Contains pixel offset data for sprites riding wolves /datum/component/riding/creature/wolf -/datum/component/riding/creature/wolf/handle_specials() - . = ..() - set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(1, 9), TEXT_SOUTH = list(1, 9), TEXT_EAST = list(0, 9), TEXT_WEST = list(2, 9))) - set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER) - set_vehicle_dir_layer(NORTH, OBJ_LAYER) - set_vehicle_dir_layer(EAST, OBJ_LAYER) - set_vehicle_dir_layer(WEST, OBJ_LAYER) +/datum/component/riding/creature/wolf/get_rider_offsets_and_layers(pass_index, mob/offsetter) + return list( + TEXT_NORTH = list(1, 9, OBJ_LAYER), + TEXT_SOUTH = list(1, 9, ABOVE_MOB_LAYER), + TEXT_EAST = list(0, 9, OBJ_LAYER), + TEXT_WEST = list(2, 9, OBJ_LAYER), + ) diff --git a/code/modules/mob/living/basic/lavaland/brimdemon/brimbeam.dm b/code/modules/mob/living/basic/lavaland/brimdemon/brimbeam.dm index 5900289cae569..2daef4e1ae9aa 100644 --- a/code/modules/mob/living/basic/lavaland/brimdemon/brimbeam.dm +++ b/code/modules/mob/living/basic/lavaland/brimdemon/brimbeam.dm @@ -86,7 +86,8 @@ /datum/action/cooldown/mob_cooldown/brimbeam/proc/extinguish_laser() if(!length(beam_parts)) return FALSE - owner.move_resist = initial(owner.move_resist) + if (owner) + owner.move_resist = initial(owner.move_resist) for(var/obj/effect/brimbeam/beam in beam_parts) beam.disperse() beam_parts = list() diff --git a/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm b/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm index 286e7539624fb..957eadf5a3bc3 100644 --- a/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm +++ b/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm @@ -98,7 +98,7 @@ attack_vis_effect = ATTACK_EFFECT_BITE obj_damage = 0 density = FALSE - ai_controller = /datum/ai_controller/basic_controller/simple_hostile + ai_controller = /datum/ai_controller/basic_controller/simple/simple_hostile /mob/living/basic/hivelord_brood/Initialize(mapload) . = ..() diff --git a/code/modules/mob/living/basic/lavaland/mook/mook_abilities.dm b/code/modules/mob/living/basic/lavaland/mook/mook_abilities.dm index 69aa5026a934e..6149f552d81fd 100644 --- a/code/modules/mob/living/basic/lavaland/mook/mook_abilities.dm +++ b/code/modules/mob/living/basic/lavaland/mook/mook_abilities.dm @@ -115,13 +115,13 @@ var/mob/living/basic/mining/mook/mook_owner = owner mook_owner.change_combatant_state(state = MOOK_ATTACK_ACTIVE) new /obj/effect/temp_visual/mook_dust(get_turf(owner)) - playsound(get_turf(owner), 'sound/items/weapons/thudswoosh.ogg', 50, TRUE) - animate(owner, pixel_y = owner.base_pixel_y + 146, time = 0.5 SECONDS) + playsound(owner, 'sound/items/weapons/thudswoosh.ogg', 50, TRUE) + animate(owner, pixel_z = 146, time = 0.5 SECONDS, flags = ANIMATION_RELATIVE) addtimer(CALLBACK(src, PROC_REF(land_on_turf), target), 0.5 SECONDS) /datum/action/cooldown/mob_cooldown/mook_ability/mook_jump/proc/land_on_turf(turf/target) do_teleport(owner, target, precision = 3, no_effects = TRUE) - animate(owner, pixel_y = owner.base_pixel_y, time = 0.5 SECONDS) + animate(owner, pixel_z = -146, time = 0.5 SECONDS, flags = ANIMATION_RELATIVE) new /obj/effect/temp_visual/mook_dust(get_turf(owner)) if(is_mook) addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob/living/basic/mining/mook, change_combatant_state), MOOK_ATTACK_NEUTRAL), 0.5 SECONDS) diff --git a/code/modules/mob/living/basic/lavaland/watcher/watcher_gaze.dm b/code/modules/mob/living/basic/lavaland/watcher/watcher_gaze.dm index 7d0ad8f191ad1..2df2c3b35e3a9 100644 --- a/code/modules/mob/living/basic/lavaland/watcher/watcher_gaze.dm +++ b/code/modules/mob/living/basic/lavaland/watcher/watcher_gaze.dm @@ -27,7 +27,7 @@ stage_timer = addtimer(CALLBACK(src, PROC_REF(show_indicator_overlay), "eye_pulse"), animation_time, TIMER_STOPPABLE) StartCooldown(360 SECONDS, 360 SECONDS) owner.visible_message(span_warning("[owner]'s eye glows ominously!")) - if (do_after(owner, delay = wait_delay, target = owner)) + if (do_after(owner, delay = wait_delay, target = owner, hidden = TRUE)) trigger_effect() else deltimer(stage_timer) diff --git a/code/modules/mob/living/basic/pets/cat/feral.dm b/code/modules/mob/living/basic/pets/cat/feral.dm index e8a7d7b754f7a..1a5bf1ca9b10f 100644 --- a/code/modules/mob/living/basic/pets/cat/feral.dm +++ b/code/modules/mob/living/basic/pets/cat/feral.dm @@ -5,5 +5,5 @@ maxHealth = 30 melee_damage_lower = 7 melee_damage_upper = 15 - ai_controller = /datum/ai_controller/basic_controller/simple_hostile + ai_controller = /datum/ai_controller/basic_controller/simple/simple_hostile faction = list(FACTION_CAT, ROLE_SYNDICATE) diff --git a/code/modules/mob/living/basic/pets/parrot/_parrot.dm b/code/modules/mob/living/basic/pets/parrot/_parrot.dm index e76b9a5e83e07..1a63f690c7de3 100644 --- a/code/modules/mob/living/basic/pets/parrot/_parrot.dm +++ b/code/modules/mob/living/basic/pets/parrot/_parrot.dm @@ -104,6 +104,7 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list( RegisterSignal(src, COMSIG_ATOM_WAS_ATTACKED, PROC_REF(on_injured)) // this means we got hurt and it's go time RegisterSignal(src, COMSIG_ANIMAL_PET, PROC_REF(on_pet)) RegisterSignal(src, COMSIG_KB_MOB_DROPITEM_DOWN, PROC_REF(drop_item_on_signal)) + ADD_TRAIT(src, TRAIT_CAN_MOUNT_HUMANS, INNATE_TRAIT) /mob/living/basic/parrot/Destroy() // should have cleaned these up on death, but let's be super safe in case that didn't happen @@ -264,13 +265,19 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list( UnregisterSignal(src, COMSIG_LIVING_SET_BUCKLED) toggle_perched(perched = FALSE) +#define PERCH_SOURCE "perched" + /mob/living/basic/parrot/proc/toggle_perched(perched) if(!perched) - REMOVE_TRAIT(src, TRAIT_PARROT_PERCHED, TRAIT_GENERIC) + REMOVE_TRAIT(src, TRAIT_PARROT_PERCHED, PERCH_SOURCE) + remove_offsets(PERCH_SOURCE) else - ADD_TRAIT(src, TRAIT_PARROT_PERCHED, TRAIT_GENERIC) + ADD_TRAIT(src, TRAIT_PARROT_PERCHED, PERCH_SOURCE) + add_offsets(PERCH_SOURCE, y_add = 9) update_appearance(UPDATE_ICON_STATE) +#undef PERCH_SOURCE + /// Master proc which will determine the intent of OUR attacks on an object and summon the relevant procs accordingly. /// This is pretty much meant for players, AI will use the task-specific procs instead. /mob/living/basic/parrot/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) diff --git a/code/modules/mob/living/basic/slime/feeding.dm b/code/modules/mob/living/basic/slime/feeding.dm index 867d62672405b..5eaf02b1b03fa 100644 --- a/code/modules/mob/living/basic/slime/feeding.dm +++ b/code/modules/mob/living/basic/slime/feeding.dm @@ -62,14 +62,22 @@ return TRUE +#define FEEDING_OFFSET "feeding" + ///The slime will start feeding on the target /mob/living/basic/slime/proc/start_feeding(mob/living/target_mob) - target_mob.unbuckle_all_mobs(force=TRUE) //Slimes rip other mobs (eg: shoulder parrots) off (Slimes Vs Slimes is already handled in can_feed_on()) - if(target_mob.buckle_mob(src, force=TRUE)) - layer = MOB_ABOVE_PIGGYBACK_LAYER //always appear above the target mob, no matter the direction - target_mob.visible_message(span_danger("[name] latches onto [target_mob]!"), \ - span_userdanger("[name] latches onto [target_mob]!")) + target_mob.unbuckle_all_mobs(force = TRUE) //Slimes rip other mobs (eg: shoulder parrots) off (Slimes Vs Slimes is already handled in can_feed_on()) + if(target_mob.buckle_mob(src, force = TRUE)) + add_offsets(FEEDING_OFFSET, y_add = target_mob.mob_size <= MOB_SIZE_SMALL ? 0 : 3) + layer = MOB_ABOVE_PIGGYBACK_LAYER //appear above the target mob target_mob.apply_status_effect(/datum/status_effect/slime_leech, src) + target_mob.visible_message( + span_danger("[name] latches onto [target_mob]!"), + span_userdanger("[name] latches onto [target_mob]!"), + visible_message_flags = ALWAYS_SHOW_SELF_MESSAGE, + ) + to_chat(src, span_notice("I start feeding on [target_mob]...")) + balloon_alert(src, "feeding started") else balloon_alert(src, "latch failed!") @@ -80,5 +88,9 @@ if(!silent) visible_message(span_warning("[src] lets go of [buckled]!"), span_notice("You let go of [buckled]")) + balloon_alert(src, "feeding stopped") + remove_offsets(FEEDING_OFFSET) layer = initial(layer) buckled.unbuckle_mob(src,force=TRUE) + +#undef FEEDING_OFFSET diff --git a/code/modules/mob/living/basic/slime/slime.dm b/code/modules/mob/living/basic/slime/slime.dm index f5380143795ea..9df77ce055659 100644 --- a/code/modules/mob/living/basic/slime/slime.dm +++ b/code/modules/mob/living/basic/slime/slime.dm @@ -134,7 +134,7 @@ AddElement(/datum/element/soft_landing) AddElement(/datum/element/swabable, CELL_LINE_TABLE_SLIME, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5) - add_traits(list(TRAIT_CANT_RIDE, TRAIT_VENTCRAWLER_ALWAYS), INNATE_TRAIT) + add_traits(list(TRAIT_CANT_RIDE, TRAIT_CAN_MOUNT_HUMANS, TRAIT_VENTCRAWLER_ALWAYS), INNATE_TRAIT) RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(on_slime_pre_attack)) RegisterSignal(src, COMSIG_ATOM_ATTACK_HAND, PROC_REF(on_attack_hand) ) @@ -226,10 +226,6 @@ /mob/living/basic/slime/start_pulling(atom/movable/moveable_atom, state, force = move_force, supress_message = FALSE) return -/mob/living/basic/slime/get_mob_buckling_height(mob/seat) - if(..() != 0) - return 3 - /mob/living/basic/slime/examine(mob/user) . = ..() diff --git a/code/modules/mob/living/basic/space_fauna/netherworld/blankbody.dm b/code/modules/mob/living/basic/space_fauna/netherworld/blankbody.dm index 474c2cf77d0e5..165c5b85f355c 100644 --- a/code/modules/mob/living/basic/space_fauna/netherworld/blankbody.dm +++ b/code/modules/mob/living/basic/space_fauna/netherworld/blankbody.dm @@ -26,7 +26,7 @@ lighting_cutoff_green = 15 lighting_cutoff_blue = 40 - ai_controller = /datum/ai_controller/basic_controller/simple_hostile_obstacles + ai_controller = /datum/ai_controller/basic_controller/simple/simple_hostile_obstacles /mob/living/basic/blankbody/Initialize(mapload) . = ..() diff --git a/code/modules/mob/living/basic/space_fauna/netherworld/creature.dm b/code/modules/mob/living/basic/space_fauna/netherworld/creature.dm index 292f85e476466..d9973142c124b 100644 --- a/code/modules/mob/living/basic/space_fauna/netherworld/creature.dm +++ b/code/modules/mob/living/basic/space_fauna/netherworld/creature.dm @@ -27,7 +27,7 @@ lighting_cutoff_green = 25 lighting_cutoff_blue = 15 - ai_controller = /datum/ai_controller/basic_controller/simple_hostile_obstacles + ai_controller = /datum/ai_controller/basic_controller/simple/simple_hostile_obstacles var/health_scaling = TRUE /mob/living/basic/creature/Initialize(mapload) diff --git a/code/modules/mob/living/basic/space_fauna/netherworld/migo.dm b/code/modules/mob/living/basic/space_fauna/netherworld/migo.dm index 3f7adc2272252..76e3dcc2d6262 100644 --- a/code/modules/mob/living/basic/space_fauna/netherworld/migo.dm +++ b/code/modules/mob/living/basic/space_fauna/netherworld/migo.dm @@ -28,7 +28,7 @@ lighting_cutoff_green = 15 lighting_cutoff_blue = 50 - ai_controller = /datum/ai_controller/basic_controller/simple_hostile_obstacles + ai_controller = /datum/ai_controller/basic_controller/simple/simple_hostile_obstacles var/static/list/migo_sounds /// Odds migo will dodge var/dodge_prob = 10 diff --git a/code/modules/mob/living/basic/space_fauna/paper_wizard/paper_wizard.dm b/code/modules/mob/living/basic/space_fauna/paper_wizard/paper_wizard.dm index f2e33eaacd928..0d97a10dffe53 100644 --- a/code/modules/mob/living/basic/space_fauna/paper_wizard/paper_wizard.dm +++ b/code/modules/mob/living/basic/space_fauna/paper_wizard/paper_wizard.dm @@ -105,7 +105,7 @@ faction = list(FACTION_STICKMAN) melee_damage_lower = 1 melee_damage_upper = 5 - ai_controller = /datum/ai_controller/basic_controller/simple_hostile + ai_controller = /datum/ai_controller/basic_controller/simple/simple_hostile /mob/living/basic/paper_wizard/copy/Initialize(mapload) . = ..() diff --git a/code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm b/code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm index bbdb134190db5..3328288cb71dd 100644 --- a/code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm +++ b/code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm @@ -170,8 +170,7 @@ else if (HAS_TRAIT(src, TRAIT_WING_BUFFET)) overlay_state = "overlay_gust" - var/mutable_appearance/overlay = mutable_appearance(icon, "[icon_living]_[overlay_state]") - overlay.appearance_flags = RESET_COLOR + var/mutable_appearance/overlay = mutable_appearance(icon, "[icon_living]_[overlay_state]", appearance_flags = RESET_COLOR|KEEP_APART) . += overlay /mob/living/basic/space_dragon/melee_attack(obj/vehicle/sealed/mecha/target, list/modifiers, ignore_cooldown) diff --git a/code/modules/mob/living/carbon/alien/adult/adult_update_icons.dm b/code/modules/mob/living/carbon/alien/adult/adult_update_icons.dm index bbfd68f8186b8..cd8e72a04f770 100644 --- a/code/modules/mob/living/carbon/alien/adult/adult_update_icons.dm +++ b/code/modules/mob/living/carbon/alien/adult/adult_update_icons.dm @@ -35,15 +35,11 @@ icon = alt_icon alt_icon = old_icon icon_state = "alien[caste]_leap" - pixel_x = base_pixel_x - 32 - pixel_y = base_pixel_y - 32 else if(alt_icon != initial(alt_icon)) var/old_icon = icon icon = alt_icon alt_icon = old_icon - pixel_x = base_pixel_x + body_position_pixel_x_offset - pixel_y = base_pixel_y + body_position_pixel_y_offset update_held_items() update_worn_handcuffs() diff --git a/code/modules/mob/living/carbon/alien/adult/caste/hunter.dm b/code/modules/mob/living/carbon/alien/adult/caste/hunter.dm index 6241108c1683f..514cc23caab45 100644 --- a/code/modules/mob/living/carbon/alien/adult/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/adult/caste/hunter.dm @@ -57,14 +57,14 @@ else //Maybe uses plasma in the future, although that wouldn't make any sense... leaping = TRUE //Because the leaping sprite is bigger than the normal one - body_position_pixel_x_offset = -8 + add_offsets(LEAPING_TRAIT, x_add = -8, animate = FALSE) update_icons() ADD_TRAIT(src, TRAIT_MOVE_FLOATING, LEAPING_TRAIT) //Throwing itself doesn't protect mobs against lava (because gulag). throw_at(A, MAX_ALIEN_LEAP_DIST, pounce_speed, src, FALSE, TRUE, callback = CALLBACK(src, PROC_REF(leap_end))) /mob/living/carbon/alien/adult/hunter/proc/leap_end() leaping = FALSE - body_position_pixel_x_offset = 0 + remove_offsets(LEAPING_TRAIT, animate = FALSE) REMOVE_TRAIT(src, TRAIT_MOVE_FLOATING, LEAPING_TRAIT) update_icons() diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm index be65a9a1d3dd3..ccb8a22a2fae7 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -33,7 +33,7 @@ switch(stage) if(3, 4) if(SPT_PROB(1, seconds_per_tick)) - owner.sneeze() + owner.emote("sneeze") if(SPT_PROB(1, seconds_per_tick)) owner.emote("cough") if(SPT_PROB(1, seconds_per_tick)) @@ -42,7 +42,7 @@ to_chat(owner, span_danger("Mucous runs down the back of your throat.")) if(5) if(SPT_PROB(1, seconds_per_tick)) - owner.sneeze() + owner.emote("sneeze") if(SPT_PROB(1, seconds_per_tick)) owner.emote("cough") if(SPT_PROB(2, seconds_per_tick)) diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 0be935c76f8b5..15bed078afaf8 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -406,9 +406,9 @@ /mob/proc/shake_up_animation() var/direction = prob(50) ? -1 : 1 - animate(src, pixel_x = pixel_x + SHAKE_ANIMATION_OFFSET * direction, time = 1, easing = QUAD_EASING | EASE_OUT, flags = ANIMATION_PARALLEL) - animate(pixel_x = pixel_x - (SHAKE_ANIMATION_OFFSET * 2 * direction), time = 1) - animate(pixel_x = pixel_x + SHAKE_ANIMATION_OFFSET * direction, time = 1, easing = QUAD_EASING | EASE_IN) + animate(src, pixel_w = SHAKE_ANIMATION_OFFSET * direction, time = 0.1 SECONDS, easing = QUAD_EASING | EASE_OUT, flags = ANIMATION_PARALLEL|ANIMATION_RELATIVE) + animate(pixel_w = SHAKE_ANIMATION_OFFSET * -2 * direction, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) + animate(pixel_w = SHAKE_ANIMATION_OFFSET * direction, time = 0.1 SECONDS, easing = QUAD_EASING | EASE_IN, flags = ANIMATION_RELATIVE) /// Check ourselves to see if we've got any shrapnel, return true if we do. This is a much simpler version of what humans do, we only indicate we're checking ourselves if there's actually shrapnel /mob/living/carbon/proc/check_self_for_injuries() @@ -712,7 +712,7 @@ /mob/living/carbon/get_shove_flags(mob/living/shover, obj/item/weapon) . = ..() . |= SHOVE_CAN_STAGGER - if(IsKnockdown() && !IsParalyzed() && HAS_TRAIT(src, TRAIT_STUN_ON_NEXT_SHOVE)) + if(IsKnockdown() && !IsParalyzed() && HAS_TRAIT(src, TRAIT_DAZED)) . |= SHOVE_CAN_KICK_SIDE if(HAS_TRAIT(src, TRAIT_NO_SIDE_KICK)) // added as an extra check, just in case . &= ~SHOVE_CAN_KICK_SIDE diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm index cb35aebfb0770..83b53e64cf9b8 100644 --- a/code/modules/mob/living/carbon/carbon_movement.dm +++ b/code/modules/mob/living/carbon/carbon_movement.dm @@ -1,10 +1,10 @@ -/mob/living/carbon/slip(knockdown_amount, obj/slipped_on, lube_flags, paralyze, force_drop = FALSE) +/mob/living/carbon/slip(knockdown_amount, obj/slipped_on, lube_flags, paralyze, daze, force_drop = FALSE) if(movement_type & MOVETYPES_NOT_TOUCHING_GROUND) return FALSE if(!(lube_flags & SLIDE_ICE)) log_combat(src, (slipped_on || get_turf(src)), "slipped on the", null, ((lube_flags & SLIDE) ? "(SLIDING)" : null)) ..() - return loc.handle_slip(src, knockdown_amount, slipped_on, lube_flags, paralyze, force_drop) + return loc.handle_slip(src, knockdown_amount, slipped_on, lube_flags, paralyze, daze, force_drop) /mob/living/carbon/Move(NewLoc, direct) . = ..() diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm index d494a5a1fba0d..2056d55639e47 100644 --- a/code/modules/mob/living/carbon/examine.dm +++ b/code/modules/mob/living/carbon/examine.dm @@ -304,6 +304,14 @@ .[length(.)] += "" return . +/mob/living/carbon/examine_more(mob/user) + . = ..() + if(HAS_TRAIT(src, TRAIT_INVISIBLE_MAN)) + return + for(var/datum/scar/iter_scar as anything in all_scars) + if(iter_scar.is_visible(user)) + . += iter_scar.get_examine_description(user) + /** * Shows any and all examine text related to any status effects the user has. */ @@ -370,18 +378,18 @@ var/t_has = p_have() var/t_is = p_are() //head - if(head && !(obscured & ITEM_SLOT_HEAD) && !(head.item_flags & EXAMINE_SKIP)) + if(head && !(obscured & ITEM_SLOT_HEAD) && !HAS_TRAIT(head, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_is] wearing [head.examine_title(user)] on [t_his] head." //back - if(back && !(back.item_flags & EXAMINE_SKIP)) + if(back && !HAS_TRAIT(back, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_has] [back.examine_title(user)] on [t_his] back." //Hands for(var/obj/item/held_thing in held_items) - if(held_thing.item_flags & (ABSTRACT|EXAMINE_SKIP|HAND_ITEM)) + if((held_thing.item_flags & (ABSTRACT|HAND_ITEM)) || HAS_TRAIT(held_thing, TRAIT_EXAMINE_SKIP)) continue . += "[t_He] [t_is] holding [held_thing.examine_title(user)] in [t_his] [get_held_index_name(get_held_index_of_item(held_thing))]." //gloves - if(gloves && !(obscured & ITEM_SLOT_GLOVES) && !(gloves.item_flags & EXAMINE_SKIP)) + if(gloves && !(obscured & ITEM_SLOT_GLOVES) && !HAS_TRAIT(gloves, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_has] [gloves.examine_title(user)] on [t_his] hands." else if(GET_ATOM_BLOOD_DNA_LENGTH(src)) if(num_hands) @@ -391,23 +399,23 @@ var/cables_or_cuffs = istype(handcuffed, /obj/item/restraints/handcuffs/cable) ? "restrained with cable" : "handcuffed" . += span_warning("[t_He] [t_is] [icon2html(handcuffed, user)] [cables_or_cuffs]!") //shoes - if(shoes && !(obscured & ITEM_SLOT_FEET) && !(shoes.item_flags & EXAMINE_SKIP)) + if(shoes && !(obscured & ITEM_SLOT_FEET) && !HAS_TRAIT(shoes, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_is] wearing [shoes.examine_title(user)] on [t_his] feet." //mask - if(wear_mask && !(obscured & ITEM_SLOT_MASK) && !(wear_mask.item_flags & EXAMINE_SKIP)) + if(wear_mask && !(obscured & ITEM_SLOT_MASK) && !HAS_TRAIT(wear_mask, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_has] [wear_mask.examine_title(user)] on [t_his] face." - if(wear_neck && !(obscured & ITEM_SLOT_NECK) && !(wear_neck.item_flags & EXAMINE_SKIP)) + if(wear_neck && !(obscured & ITEM_SLOT_NECK) && !HAS_TRAIT(wear_neck, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_is] wearing [wear_neck.examine_title(user)] around [t_his] neck." //eyes if(!(obscured & ITEM_SLOT_EYES) ) - if(glasses && !(glasses.item_flags & EXAMINE_SKIP)) + if(glasses && !HAS_TRAIT(glasses, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_has] [glasses.examine_title(user)] covering [t_his] eyes." else if(HAS_TRAIT(src, TRAIT_UNNATURAL_RED_GLOWY_EYES)) . += span_warning("[t_His] eyes are glowing with an unnatural red aura!") else if(HAS_TRAIT(src, TRAIT_BLOODSHOT_EYES)) . += span_warning("[t_His] eyes are bloodshot!") //ears - if(ears && !(obscured & ITEM_SLOT_EARS) && !(ears.item_flags & EXAMINE_SKIP)) + if(ears && !(obscured & ITEM_SLOT_EARS) && !HAS_TRAIT(ears, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_has] [ears.examine_title(user)] on [t_his] ears." // Yes there's a lot of copypasta here, we can improve this later when carbons are less dumb in general @@ -421,7 +429,7 @@ var/t_is = p_are() //uniform - if(w_uniform && !(obscured & ITEM_SLOT_ICLOTHING) && !(w_uniform.item_flags & EXAMINE_SKIP)) + if(w_uniform && !(obscured & ITEM_SLOT_ICLOTHING) && !HAS_TRAIT(w_uniform, TRAIT_EXAMINE_SKIP)) //accessory var/accessory_message = "" if(istype(w_uniform, /obj/item/clothing/under)) @@ -432,36 +440,36 @@ . += "[t_He] [t_is] wearing [w_uniform.examine_title(user)][accessory_message]." //head - if(head && !(obscured & ITEM_SLOT_HEAD) && !(head.item_flags & EXAMINE_SKIP)) + if(head && !(obscured & ITEM_SLOT_HEAD) && !HAS_TRAIT(head, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_is] wearing [head.examine_title(user)] on [t_his] head." //mask - if(wear_mask && !(obscured & ITEM_SLOT_MASK) && !(wear_mask.item_flags & EXAMINE_SKIP)) + if(wear_mask && !(obscured & ITEM_SLOT_MASK) && !HAS_TRAIT(wear_mask, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_has] [wear_mask.examine_title(user)] on [t_his] face." //neck - if(wear_neck && !(obscured & ITEM_SLOT_NECK) && !(wear_neck.item_flags & EXAMINE_SKIP)) + if(wear_neck && !(obscured & ITEM_SLOT_NECK) && !HAS_TRAIT(wear_neck, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_is] wearing [wear_neck.examine_title(user)] around [t_his] neck." //eyes if(!(obscured & ITEM_SLOT_EYES) ) - if(glasses && !(glasses.item_flags & EXAMINE_SKIP)) + if(glasses && !HAS_TRAIT(glasses, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_has] [glasses.examine_title(user)] covering [t_his] eyes." else if(HAS_TRAIT(src, TRAIT_UNNATURAL_RED_GLOWY_EYES)) . += span_warning("[t_His] eyes are glowing with an unnatural red aura!") else if(HAS_TRAIT(src, TRAIT_BLOODSHOT_EYES)) . += span_warning("[t_His] eyes are bloodshot!") //ears - if(ears && !(obscured & ITEM_SLOT_EARS) && !(ears.item_flags & EXAMINE_SKIP)) + if(ears && !(obscured & ITEM_SLOT_EARS) && !HAS_TRAIT(ears, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_has] [ears.examine_title(user)] on [t_his] ears." //suit/armor - if(wear_suit && !(wear_suit.item_flags & EXAMINE_SKIP)) + if(wear_suit && !HAS_TRAIT(wear_suit, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_is] wearing [wear_suit.examine_title(user)]." //suit/armor storage - if(s_store && !(obscured & ITEM_SLOT_SUITSTORE) && !(s_store.item_flags & EXAMINE_SKIP)) + if(s_store && !(obscured & ITEM_SLOT_SUITSTORE) && !HAS_TRAIT(s_store, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_is] carrying [s_store.examine_title(user)] on [t_his] [wear_suit.name]." //back - if(back && !(back.item_flags & EXAMINE_SKIP)) + if(back && !HAS_TRAIT(back, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_has] [back.examine_title(user)] on [t_his] back." //ID - if(wear_id && !(wear_id.item_flags & EXAMINE_SKIP)) + if(wear_id && !HAS_TRAIT(wear_id, TRAIT_EXAMINE_SKIP)) var/obj/item/card/id/id = wear_id.GetID() if(id && get_dist(user, src) <= ID_EXAMINE_DISTANCE) var/id_href = "[wear_id.examine_title(user)]" @@ -471,11 +479,11 @@ . += "[t_He] [t_is] wearing [wear_id.examine_title(user)]." //Hands for(var/obj/item/held_thing in held_items) - if(held_thing.item_flags & (ABSTRACT|EXAMINE_SKIP|HAND_ITEM)) + if((held_thing.item_flags & (ABSTRACT|HAND_ITEM)) || HAS_TRAIT(held_thing, TRAIT_EXAMINE_SKIP)) continue . += "[t_He] [t_is] holding [held_thing.examine_title(user)] in [t_his] [get_held_index_name(get_held_index_of_item(held_thing))]." //gloves - if(gloves && !(obscured & ITEM_SLOT_GLOVES) && !(gloves.item_flags & EXAMINE_SKIP)) + if(gloves && !(obscured & ITEM_SLOT_GLOVES) && !HAS_TRAIT(gloves, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_has] [gloves.examine_title(user)] on [t_his] hands." else if(GET_ATOM_BLOOD_DNA_LENGTH(src) || blood_in_hands) if(num_hands) @@ -485,10 +493,10 @@ var/cables_or_cuffs = istype(handcuffed, /obj/item/restraints/handcuffs/cable) ? "restrained with cable" : "handcuffed" . += span_warning("[t_He] [t_is] [icon2html(handcuffed, user)] [cables_or_cuffs]!") //belt - if(belt && !(obscured & ITEM_SLOT_BELT) && !(belt.item_flags & EXAMINE_SKIP)) + if(belt && !(obscured & ITEM_SLOT_BELT) && !HAS_TRAIT(belt, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_has] [belt.examine_title(user)] about [t_his] waist." //shoes - if(shoes && !(obscured & ITEM_SLOT_FEET) && !(shoes.item_flags & EXAMINE_SKIP)) + if(shoes && !(obscured & ITEM_SLOT_FEET) && !HAS_TRAIT(shoes, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_is] wearing [shoes.examine_title(user)] on [t_his] feet." /// Collects info displayed about any HUDs the user has when examining src @@ -567,10 +575,18 @@ /mob/living/carbon/human/examine_more(mob/user) . = ..() - if((wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))) - return + + if(istype(w_uniform, /obj/item/clothing/under) && !(check_obscured_slots() & ITEM_SLOT_ICLOTHING) && !HAS_TRAIT(w_uniform, TRAIT_EXAMINE_SKIP)) + var/obj/item/clothing/under/undershirt = w_uniform + if(undershirt.has_sensor == BROKEN_SENSORS) + . += list(span_notice("\The [undershirt]'s medical sensors are sparking.")) + if(HAS_TRAIT(src, TRAIT_UNKNOWN) || HAS_TRAIT(src, TRAIT_INVISIBLE_MAN)) return + + if((wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))) + return + var/age_text switch(age) if(-INFINITY to 25) @@ -587,14 +603,5 @@ age_text = "withering away" . += list(span_notice("[p_They()] appear[p_s()] to be [age_text].")) - if(istype(w_uniform, /obj/item/clothing/under)) - var/obj/item/clothing/under/undershirt = w_uniform - if(undershirt.has_sensor == BROKEN_SENSORS) - . += list(span_notice("The [undershirt]'s medical sensors are sparking.")) - - for(var/datum/scar/iter_scar as anything in all_scars) - if(iter_scar.is_visible(user)) - . += iter_scar.get_examine_description(user) - #undef ADD_NEWLINE_IF_NECESSARY #undef CARBON_EXAMINE_EMBEDDING_MAX_DIST diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 8d6e6ec490e81..ebb0b88bb3eba 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -36,6 +36,8 @@ ) AddElement(/datum/element/connect_loc, loc_connections) GLOB.human_list += src + ADD_TRAIT(src, TRAIT_CAN_MOUNT_HUMANS, INNATE_TRAIT) + ADD_TRAIT(src, TRAIT_CAN_MOUNT_CYBORGS, INNATE_TRAIT) /mob/living/carbon/human/proc/setup_physiology() physiology = new() @@ -126,6 +128,10 @@ id_species ||= dna.species.name id_blood_type ||= dna.blood_type + if(istype(id, /obj/item/card/id/advanced)) + var/obj/item/card/id/advanced/advancedID = id + id_job = advancedID.trim_assignment_override || id_job + var/id_examine = span_slightly_larger(separator_hr("This is [src]'s ID card.")) id_examine += "
" id_examine += "[id_icon]" @@ -966,14 +972,13 @@ return buckle_mob(target, TRUE, TRUE, RIDER_NEEDS_ARMS) -/mob/living/carbon/human/buckle_mob(mob/living/target, force = FALSE, check_loc = TRUE, buckle_mob_flags= NONE) - if(!is_type_in_typecache(target, can_ride_typecache)) +/mob/living/carbon/human/is_buckle_possible(mob/living/target, force, check_loc) + if(!HAS_TRAIT(target, TRAIT_CAN_MOUNT_HUMANS)) target.visible_message(span_warning("[target] really can't seem to mount [src]...")) - return - - if(!force)//humans are only meant to be ridden through piggybacking and special cases - return - + return FALSE + // if you don't invoke it with forced, IE via piggyback / fireman, always fail + if(!force) + return FALSE return ..() /mob/living/carbon/human/reagent_check(datum/reagent/chem, seconds_per_tick, times_fired) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 2523ea4dd923e..29972735567cd 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -140,11 +140,9 @@ if(src == target || LAZYFIND(target.buckled_mobs, src) || !iscarbon(target)) return if(!(shove_flags & SHOVE_KNOCKDOWN_BLOCKED)) - target.Knockdown(SHOVE_KNOCKDOWN_HUMAN) - target.apply_status_effect(/datum/status_effect/next_shove_stuns) + target.Knockdown(SHOVE_KNOCKDOWN_HUMAN, daze_amount = 3 SECONDS) if(!HAS_TRAIT(src, TRAIT_BRAWLING_KNOCKDOWN_BLOCKED)) - Knockdown(SHOVE_KNOCKDOWN_COLLATERAL) - apply_status_effect(/datum/status_effect/next_shove_stuns) + Knockdown(SHOVE_KNOCKDOWN_COLLATERAL, daze_amount = 3 SECONDS) target.visible_message(span_danger("[shover] shoves [target.name] into [name]!"), span_userdanger("You're shoved into [name] by [shover]!"), span_hear("You hear aggressive shuffling followed by a loud thud!"), COMBAT_MESSAGE_RANGE, src) to_chat(src, span_danger("You shove [target.name] into [name]!")) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 6fc2338d3b21a..78d4db6fa0a4a 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -8,7 +8,6 @@ hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPSEC_FIRST_HUD,IMPSEC_SECOND_HUD,ANTAG_HUD,GLAND_HUD,FAN_HUD) hud_type = /datum/hud/human pressure_resistance = 25 - can_buckle = TRUE buckle_lying = 0 mob_biotypes = MOB_ORGANIC|MOB_HUMANOID can_be_shoved_into = TRUE @@ -75,13 +74,6 @@ var/datum/physiology/physiology - /// What types of mobs are allowed to ride/buckle to this mob - var/static/list/can_ride_typecache = typecacheof(list( - /mob/living/basic/parrot, - /mob/living/carbon/human, - /mob/living/basic/slime, - )) - var/account_id var/hardcore_survival_score = 0 diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 52e59e098c1b7..57f32a92decf6 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -9,7 +9,7 @@ return return considering -/mob/living/carbon/human/slip(knockdown_amount, obj/slipped_on, lube_flags, paralyze, force_drop = FALSE) +/mob/living/carbon/human/slip(knockdown_amount, obj/slipped_on, lube_flags, paralyze, daze, force_drop = FALSE) if(HAS_TRAIT(src, TRAIT_NO_SLIP_ALL)) return FALSE diff --git a/code/modules/mob/living/carbon/human/human_update_icons.dm b/code/modules/mob/living/carbon/human/human_update_icons.dm index e76301343b2f5..9b743f9590143 100644 --- a/code/modules/mob/living/carbon/human/human_update_icons.dm +++ b/code/modules/mob/living/carbon/human/human_update_icons.dm @@ -91,7 +91,7 @@ There are several things that need to be remembered: if(update_obscured) update_obscured_slots(uniform.flags_inv) - if(check_obscured_slots(transparent_protection = TRUE) & ITEM_SLOT_ICLOTHING) + if(HAS_TRAIT(uniform, TRAIT_NO_WORN_ICON) || (check_obscured_slots(transparent_protection = TRUE) & ITEM_SLOT_ICLOTHING)) return var/target_overlay = uniform.icon_state @@ -104,7 +104,7 @@ There are several things that need to be remembered: //icon_file MUST be set to null by default, or it causes issues. //handled_by_bodyshape MUST be set to FALSE under the if(!icon_exists()) statement, or everything breaks. //"override_file = handled_by_bodyshape ? icon_file : null" MUST be added to the arguments of build_worn_icon() - //Friendly reminder that icon_exists(file, state, scream = TRUE) is your friend when debugging this code. + //Friendly reminder that icon_exists_or_scream(file, state) is your friend when debugging this code. var/handled_by_bodyshape = TRUE var/icon_file var/woman @@ -152,6 +152,9 @@ There are several things that need to be remembered: if(update_obscured) update_obscured_slots(worn_item.flags_inv) + if(HAS_TRAIT(worn_item, TRAIT_NO_WORN_ICON)) + return + var/icon_file = 'icons/mob/clothing/id.dmi' id_overlay = wear_id.build_worn_icon(default_layer = ID_LAYER, default_icon_file = icon_file) @@ -194,7 +197,7 @@ There are several things that need to be remembered: if(update_obscured) update_obscured_slots(worn_item.flags_inv) - if(check_obscured_slots(transparent_protection = TRUE) & ITEM_SLOT_GLOVES) + if(HAS_TRAIT(worn_item, TRAIT_NO_WORN_ICON) || (check_obscured_slots(transparent_protection = TRUE) & ITEM_SLOT_GLOVES)) return var/icon_file = 'icons/mob/clothing/hands.dmi' @@ -245,7 +248,7 @@ There are several things that need to be remembered: if(update_obscured) update_obscured_slots(worn_item.flags_inv) - if(check_obscured_slots(transparent_protection = TRUE) & ITEM_SLOT_EYES) + if(HAS_TRAIT(worn_item, TRAIT_NO_WORN_ICON) || (check_obscured_slots(transparent_protection = TRUE) & ITEM_SLOT_EYES)) return var/icon_file = 'icons/mob/clothing/eyes.dmi' @@ -274,7 +277,7 @@ There are several things that need to be remembered: if(update_obscured) update_obscured_slots(worn_item.flags_inv) - if(check_obscured_slots(transparent_protection = TRUE) & ITEM_SLOT_EARS) + if(HAS_TRAIT(worn_item, TRAIT_NO_WORN_ICON) || (check_obscured_slots(transparent_protection = TRUE) & ITEM_SLOT_EARS)) return var/icon_file = 'icons/mob/clothing/ears.dmi' @@ -298,7 +301,7 @@ There are several things that need to be remembered: if(update_obscured) update_obscured_slots(worn_item.flags_inv) - if(check_obscured_slots(transparent_protection = TRUE) & ITEM_SLOT_NECK) + if(HAS_TRAIT(worn_item, TRAIT_NO_WORN_ICON) || (check_obscured_slots(transparent_protection = TRUE) & ITEM_SLOT_NECK)) return var/icon_file = 'icons/mob/clothing/neck.dmi' @@ -327,7 +330,7 @@ There are several things that need to be remembered: if(update_obscured) update_obscured_slots(worn_item.flags_inv) - if(check_obscured_slots(transparent_protection = TRUE) & ITEM_SLOT_FEET) + if(HAS_TRAIT(worn_item, TRAIT_NO_WORN_ICON) || (check_obscured_slots(transparent_protection = TRUE) & ITEM_SLOT_FEET)) return var/icon_file = DEFAULT_SHOES_FILE @@ -365,7 +368,7 @@ There are several things that need to be remembered: if(update_obscured) update_obscured_slots(worn_item.flags_inv) - if(check_obscured_slots(transparent_protection = TRUE) & ITEM_SLOT_SUITSTORE) + if(HAS_TRAIT(worn_item, TRAIT_NO_WORN_ICON) || (check_obscured_slots(transparent_protection = TRUE) & ITEM_SLOT_SUITSTORE)) return var/mutable_appearance/s_store_overlay = worn_item.build_worn_icon(default_layer = SUIT_STORE_LAYER, default_icon_file = 'icons/mob/clothing/belt_mirror.dmi') @@ -387,7 +390,7 @@ There are several things that need to be remembered: if(update_obscured) update_obscured_slots(worn_item.flags_inv) - if(check_obscured_slots(transparent_protection = TRUE) & ITEM_SLOT_HEAD) + if(HAS_TRAIT(worn_item, TRAIT_NO_WORN_ICON) || (check_obscured_slots(transparent_protection = TRUE) & ITEM_SLOT_HEAD)) return var/icon_file = 'icons/mob/clothing/head/default.dmi' @@ -414,7 +417,7 @@ There are several things that need to be remembered: if(update_obscured) update_obscured_slots(worn_item.flags_inv) - if(check_obscured_slots(transparent_protection = TRUE) & ITEM_SLOT_BELT) + if(HAS_TRAIT(worn_item, TRAIT_NO_WORN_ICON) || (check_obscured_slots(transparent_protection = TRUE) & ITEM_SLOT_BELT)) return var/icon_file = 'icons/mob/clothing/belt.dmi' @@ -440,6 +443,9 @@ There are several things that need to be remembered: if(update_obscured) update_obscured_slots(worn_item.flags_inv) + if(HAS_TRAIT(worn_item, TRAIT_NO_WORN_ICON)) + return + var/icon_file = DEFAULT_SUIT_FILE var/mutable_appearance/suit_overlay = wear_suit.build_worn_icon(default_layer = SUIT_LAYER, default_icon_file = icon_file) @@ -489,7 +495,7 @@ There are several things that need to be remembered: if(update_obscured) update_obscured_slots(worn_item.flags_inv) - if(check_obscured_slots(transparent_protection = TRUE) & ITEM_SLOT_MASK) + if(HAS_TRAIT(worn_item, TRAIT_NO_WORN_ICON) || (check_obscured_slots(transparent_protection = TRUE) & ITEM_SLOT_MASK)) return var/icon_file = 'icons/mob/clothing/mask.dmi' @@ -516,6 +522,9 @@ There are several things that need to be remembered: if(update_obscured) update_obscured_slots(worn_item.flags_inv) + if(HAS_TRAIT(worn_item, TRAIT_NO_WORN_ICON)) + return + var/icon_file = 'icons/mob/clothing/back.dmi' back_overlay = back.build_worn_icon(default_layer = BACK_LAYER, default_icon_file = icon_file) diff --git a/code/modules/mob/living/carbon/human/status_procs.dm b/code/modules/mob/living/carbon/human/status_procs.dm index 6f4e8570099af..be2284f580d34 100644 --- a/code/modules/mob/living/carbon/human/status_procs.dm +++ b/code/modules/mob/living/carbon/human/status_procs.dm @@ -3,7 +3,7 @@ amount = dna.species.spec_stun(src, amount) return ..() -/mob/living/carbon/human/Knockdown(amount, ignore_canstun = FALSE) +/mob/living/carbon/human/Knockdown(amount, daze_amount = 0, ignore_canstun = FALSE) amount = dna.species.spec_stun(src, amount) * physiology.knockdown_mod return ..() diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 5666ac00560be..bd020a4ae740c 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -93,7 +93,7 @@ if(BRAIN) damage_dealt = -1 * adjustOrganLoss(ORGAN_SLOT_BRAIN, damage_amount) - SEND_SIGNAL(src, COMSIG_MOB_AFTER_APPLY_DAMAGE, damage_dealt, damagetype, def_zone, blocked, wound_bonus, bare_wound_bonus,sharpness, attack_direction, attacking_item, wound_clothing) + SEND_SIGNAL(src, COMSIG_MOB_AFTER_APPLY_DAMAGE, damage_dealt, damagetype, def_zone, blocked, wound_bonus, bare_wound_bonus, sharpness, attack_direction, attacking_item, wound_clothing) return damage_dealt /** diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index fad518a323465..7e1712db1117d 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -256,6 +256,12 @@ . = ..() var/kiss_type = /obj/item/hand_item/kisser + if(HAS_TRAIT(user, TRAIT_GARLIC_BREATH)) + kiss_type = /obj/item/hand_item/kisser/french + + if(HAS_TRAIT(user, TRAIT_CHEF_KISS)) + kiss_type = /obj/item/hand_item/kisser/chef + if(HAS_TRAIT(user, TRAIT_SYNDIE_KISS)) kiss_type = /obj/item/hand_item/kisser/syndie @@ -265,17 +271,17 @@ var/datum/action/cooldown/ink_spit/ink_action = locate() in user.actions if(ink_action?.IsAvailable()) kiss_type = /obj/item/hand_item/kisser/ink - ink_action.StartCooldown() else ink_action = null var/obj/item/kiss_blower = new kiss_type(user) if(user.put_in_hands(kiss_blower)) to_chat(user, span_notice("You ready your kiss-blowing hand.")) - else - qdel(kiss_blower) - to_chat(user, span_warning("You're incapable of blowing a kiss in your current state.")) - ink_action?.ResetCooldown() + ink_action?.StartCooldown() + return + + qdel(kiss_blower) + to_chat(user, span_warning("You're incapable of blowing a kiss in your current state.")) /datum/emote/living/laugh key = "laugh" @@ -423,11 +429,12 @@ #define SHIVER_LOOP_DURATION (1 SECONDS) /datum/emote/living/shiver/run_emote(mob/living/user, params, type_override, intentional) . = ..() - animate(user, pixel_x = user.pixel_x + 1, time = 0.1 SECONDS) + + animate(user, pixel_w = 1, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) for(var/i in 1 to SHIVER_LOOP_DURATION / (0.2 SECONDS)) //desired total duration divided by the iteration duration to give the necessary iteration count - animate(pixel_x = user.pixel_x - 1, time = 0.1 SECONDS) - animate(pixel_x = user.pixel_x + 1, time = 0.1 SECONDS) - animate(pixel_x = user.pixel_x - 1, time = 0.1 SECONDS) + animate(pixel_w = -2, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_CONTINUE) + animate(pixel_w = 2, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_CONTINUE) + animate(pixel_w = -1, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) #undef SHIVER_LOOP_DURATION /datum/emote/living/sigh @@ -528,11 +535,12 @@ /datum/emote/living/sway/run_emote(mob/living/user, params, type_override, intentional) . = ..() - animate(user, pixel_x = user.pixel_x + 2, time = 0.5 SECONDS) + + animate(user, pixel_w = 2, time = 0.5 SECONDS, flags = ANIMATION_RELATIVE) for(var/i in 1 to 2) - animate(pixel_x = user.pixel_x - 4, time = 1.0 SECONDS) - animate(pixel_x = user.pixel_x + 4, time = 1.0 SECONDS) - animate(pixel_x = user.pixel_x - 2, time = 0.5 SECONDS) + animate(pixel_w = -6, time = 1.0 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_CONTINUE) + animate(pixel_w = 6, time = 1.0 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_CONTINUE) + animate(pixel_w = -2, time = 0.5 SECONDS, flags = ANIMATION_RELATIVE) /datum/emote/living/tilt key = "tilt" @@ -547,11 +555,12 @@ #define TREMBLE_LOOP_DURATION (4.4 SECONDS) /datum/emote/living/tremble/run_emote(mob/living/user, params, type_override, intentional) . = ..() - animate(user, pixel_x = user.pixel_x + 2, time = 0.2 SECONDS) + + animate(user, pixel_w = 2, time = 0.2 SECONDS, flags = ANIMATION_RELATIVE) for(var/i in 1 to TREMBLE_LOOP_DURATION / (0.4 SECONDS)) //desired total duration divided by the iteration duration to give the necessary iteration count - animate(pixel_x = user.pixel_x - 2, time = 0.2 SECONDS) - animate(pixel_x = user.pixel_x + 2, time = 0.2 SECONDS) - animate(pixel_x = user.pixel_x - 2, time = 0.2 SECONDS) + animate(pixel_w = -4, time = 0.2 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_CONTINUE) + animate(pixel_w = 4, time = 0.2 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_CONTINUE) + animate(pixel_w = -2, time = 0.2 SECONDS, flags = ANIMATION_RELATIVE) #undef TREMBLE_LOOP_DURATION /datum/emote/living/twitch @@ -561,11 +570,12 @@ /datum/emote/living/twitch/run_emote(mob/living/user, params, type_override, intentional) . = ..() - animate(user, pixel_x = user.pixel_x - 1, time = 0.1 SECONDS) - animate(pixel_x = user.pixel_x + 1, time = 0.1 SECONDS) + + animate(user, pixel_w = 1, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) + animate(pixel_w = -2, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) animate(time = 0.1 SECONDS) - animate(pixel_x = user.pixel_x - 1, time = 0.1 SECONDS) - animate(pixel_x = user.pixel_x + 1, time = 0.1 SECONDS) + animate(pixel_w = 2, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) + animate(pixel_w = -1, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) /datum/emote/living/twitch_s key = "twitch_s" @@ -574,8 +584,9 @@ /datum/emote/living/twitch_s/run_emote(mob/living/user, params, type_override, intentional) . = ..() - animate(user, pixel_x = user.pixel_x - 1, time = 0.1 SECONDS) - animate(pixel_x = user.pixel_x + 1, time = 0.1 SECONDS) + + animate(user, pixel_w = -1, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) + animate(pixel_w = 1, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) /datum/emote/living/wave key = "wave" diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 499282d312a4e..16ff161d676a3 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -458,8 +458,15 @@ set_pull_offsets(M, state) return TRUE -/mob/living/proc/set_pull_offsets(mob/living/M, grab_state = GRAB_PASSIVE) - if(M.buckled) +/** + * Updates the offsets of the passed mob according to the passed grab state and the direction between them and us + * + * * M - the mob to update the offsets of + * * grab_state - the state of the grab + * * animate - whether or not to animate the offsets + */ +/mob/living/proc/set_pull_offsets(mob/living/mob_to_set, grab_state = GRAB_PASSIVE, animate = TRUE) + if(mob_to_set.buckled) return //don't make them change direction or offset them if they're buckled into something. var/offset = 0 switch(grab_state) @@ -471,27 +478,35 @@ offset = GRAB_PIXEL_SHIFT_NECK if(GRAB_KILL) offset = GRAB_PIXEL_SHIFT_NECK - M.setDir(get_dir(M, src)) - var/target_pixel_x = M.base_pixel_x + M.body_position_pixel_x_offset - var/target_pixel_y = M.base_pixel_y + M.body_position_pixel_y_offset - switch(M.dir) + mob_to_set.setDir(get_dir(mob_to_set, src)) + var/dir_filter = mob_to_set.dir + if(ISDIAGONALDIR(dir_filter)) + dir_filter = EWCOMPONENT(dir_filter) + switch(dir_filter) if(NORTH) - animate(M, pixel_x = target_pixel_x, pixel_y = target_pixel_y + offset, 3) + mob_to_set.add_offsets(GRABBING_TRAIT, x_add = 0, y_add = offset, animate = animate) if(SOUTH) - animate(M, pixel_x = target_pixel_x, pixel_y = target_pixel_y - offset, 3) + mob_to_set.add_offsets(GRABBING_TRAIT, x_add = 0, y_add = -offset, animate = animate) if(EAST) - if(M.lying_angle == LYING_ANGLE_WEST) //update the dragged dude's direction if we've turned - M.set_lying_angle(LYING_ANGLE_EAST) - animate(M, pixel_x = target_pixel_x + offset, pixel_y = target_pixel_y, 3) + if(mob_to_set.lying_angle == LYING_ANGLE_WEST) //update the dragged dude's direction if we've turned + mob_to_set.set_lying_angle(LYING_ANGLE_EAST) + mob_to_set.add_offsets(GRABBING_TRAIT, x_add = offset, y_add = 0, animate = animate) if(WEST) - if(M.lying_angle == LYING_ANGLE_EAST) - M.set_lying_angle(LYING_ANGLE_WEST) - animate(M, pixel_x = target_pixel_x - offset, pixel_y = target_pixel_y, 3) + if(mob_to_set.lying_angle == LYING_ANGLE_EAST) + mob_to_set.set_lying_angle(LYING_ANGLE_WEST) + mob_to_set.add_offsets(GRABBING_TRAIT, x_add = -offset, y_add = 0, animate = animate) +/** + * Removes any offsets from the passed mob that are related to being grabbed + * + * * M - the mob to remove the offsets from + * * override - if TRUE, the offsets will be removed regardless of the mob's buckled state + * otherwise we won't remove the offsets if the mob is buckled + */ /mob/living/proc/reset_pull_offsets(mob/living/M, override) if(!override && M.buckled) return - animate(M, pixel_x = M.base_pixel_x + M.body_position_pixel_x_offset , pixel_y = M.base_pixel_y + M.body_position_pixel_y_offset, 1) + M.remove_offsets(GRABBING_TRAIT) //mob verbs are a lot faster than object verbs //for more info on why this is not atom/pull, see examinate() in mob.dm @@ -729,19 +744,14 @@ if(HAS_TRAIT(src, TRAIT_FLOORED) && !(dir & (NORTH|SOUTH))) setDir(pick(NORTH, SOUTH)) // We are and look helpless. if(rotate_on_lying) - body_position_pixel_y_offset = PIXEL_Y_OFFSET_LYING + add_offsets(LYING_DOWN_TRAIT, y_add = PIXEL_Y_OFFSET_LYING) /// Proc to append behavior related to lying down. /mob/living/proc/on_standing_up() if(layer == LYING_MOB_LAYER) layer = initial(layer) remove_traits(list(TRAIT_UI_BLOCKED, TRAIT_PULL_BLOCKED, TRAIT_UNDENSE), LYING_DOWN_TRAIT) - // Make sure it doesn't go out of the southern bounds of the tile when standing. - body_position_pixel_y_offset = get_pixel_y_offset_standing(current_size) - -/// Returns what the body_position_pixel_y_offset should be if the current size were `value` -/mob/living/proc/get_pixel_y_offset_standing(value) - return (value-1) * get_cached_height() * 0.5 + remove_offsets(LYING_DOWN_TRAIT) /mob/living/proc/update_density() if(HAS_TRAIT(src, TRAIT_UNDENSE)) @@ -1301,8 +1311,8 @@ var/matrix/flipped_matrix = transform flipped_matrix.b = -flipped_matrix.b flipped_matrix.e = -flipped_matrix.e - animate(src, transform = flipped_matrix, pixel_y = pixel_y+4, time = 0.5 SECONDS, easing = EASE_OUT) - base_pixel_y += 4 + animate(src, transform = flipped_matrix, time = 0.5 SECONDS, easing = EASE_OUT, flags = ANIMATION_PARALLEL) + add_offsets(NEGATIVE_GRAVITY_TRAIT, y_add = 4) if(NEGATIVE_GRAVITY + 0.01 to 0) if(!istype(gravity_alert, /atom/movable/screen/alert/weightless)) throw_alert(ALERT_GRAVITY, /atom/movable/screen/alert/weightless) @@ -1326,8 +1336,8 @@ var/matrix/flipped_matrix = transform flipped_matrix.b = -flipped_matrix.b flipped_matrix.e = -flipped_matrix.e - animate(src, transform = flipped_matrix, pixel_y = pixel_y-4, time = 0.5 SECONDS, easing = EASE_OUT) - base_pixel_y -= 4 + animate(src, transform = flipped_matrix, time = 0.5 SECONDS, easing = EASE_OUT, flags = ANIMATION_PARALLEL) + remove_offsets(NEGATIVE_GRAVITY_TRAIT) /mob/living/singularity_pull(atom/singularity, current_size) ..() diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 40f92eb4507af..c728eeef44a53 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -195,7 +195,7 @@ combat_mode = new_mode if(hud_used?.action_intent) hud_used.action_intent.update_appearance() - if(silent || !(client?.prefs.read_preference(/datum/preference/toggle/sound_combatmode))) + if(silent || !client?.prefs.read_preference(/datum/preference/toggle/sound_combatmode)) return if(combat_mode) SEND_SOUND(src, sound('sound/misc/ui_togglecombat.ogg', volume = 25)) //Sound from interbay! @@ -248,7 +248,7 @@ if(!thrown_item.throwforce) return var/armor = run_armor_check(zone, MELEE, "Your armor has protected your [parse_zone_with_bodypart(zone)].", "Your armor has softened hit to your [parse_zone_with_bodypart(zone)].", thrown_item.armour_penetration, "", FALSE, thrown_item.weak_against_armour) - apply_damage(thrown_item.throwforce, thrown_item.damtype, zone, armor, sharpness = thrown_item.get_sharpness(), wound_bonus = (nosell_hit * CANT_WOUND)) + apply_damage(thrown_item.throwforce, thrown_item.damtype, zone, armor, sharpness = thrown_item.get_sharpness(), wound_bonus = (nosell_hit * CANT_WOUND), attacking_item = thrown_item) if(QDELETED(src)) //Damage can delete the mob. return if(body_position == LYING_DOWN) // physics says it's significantly harder to push someone by constantly chucking random furniture at them if they are down on the floor. @@ -374,7 +374,7 @@ to_chat(user, span_danger("You're strangling [src]!")) if(!buckled && !density) Move(user.loc) - user.set_pull_offsets(src, grab_state) + user.set_pull_offsets(src, user.grab_state) return TRUE /mob/living/attack_animal(mob/living/simple_animal/user, list/modifiers) @@ -748,8 +748,7 @@ if(!(shove_flags & SHOVE_DIRECTIONAL_BLOCKED) && (SEND_SIGNAL(target_shove_turf, COMSIG_LIVING_DISARM_COLLIDE, src, target, shove_flags, weapon) & COMSIG_LIVING_SHOVE_HANDLED)) return if((shove_flags & SHOVE_BLOCKED) && !(shove_flags & (SHOVE_KNOCKDOWN_BLOCKED|SHOVE_CAN_KICK_SIDE))) - target.Knockdown(SHOVE_KNOCKDOWN_SOLID) - target.apply_status_effect(/datum/status_effect/next_shove_stuns) + target.Knockdown(SHOVE_KNOCKDOWN_SOLID, daze_amount = 3 SECONDS) target.visible_message(span_danger("[name] shoves [target.name], knocking [target.p_them()] down!"), span_userdanger("You're knocked down from a shove by [name]!"), span_hear("You hear aggressive shuffling followed by a loud thud!"), COMBAT_MESSAGE_RANGE, src) to_chat(src, span_danger("You shove [target.name], knocking [target.p_them()] down!")) diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 37d161d4ffa50..f3d3666b0cecd 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -204,10 +204,6 @@ /// Is this mob allowed to be buckled/unbuckled to/from things? var/can_buckle_to = TRUE - ///The x amount a mob's sprite should be offset due to the current position they're in - var/body_position_pixel_x_offset = 0 - ///The y amount a mob's sprite should be offset due to the current position they're in or size (e.g. lying down moves your sprite down) - var/body_position_pixel_y_offset = 0 ///The height offset of a mob's maptext due to their current size. var/body_maptext_height_offset = 0 @@ -233,3 +229,8 @@ /// How long it takes to return to 0 stam var/stamina_regen_time = 10 SECONDS + + /// Lazylists of pixel offsets this mob is currently using + /// Modify this via add_offsets and remove_offsets, + /// NOT directly (and definitely avoid modifying offsets directly) + VAR_PRIVATE/list/offsets diff --git a/code/modules/mob/living/living_update_icons.dm b/code/modules/mob/living/living_update_icons.dm index 20f36ab96b001..4d39da1a3d59e 100644 --- a/code/modules/mob/living/living_update_icons.dm +++ b/code/modules/mob/living/living_update_icons.dm @@ -3,70 +3,190 @@ * IMPORTANT: Multiple animate() calls do not stack well, so try to do them all at once if you can. */ /mob/living/proc/update_transform(resize = RESIZE_DEFAULT_SIZE) - var/matrix/ntransform = matrix(transform) //aka transform.Copy() - var/final_pixel_y = base_pixel_y + body_position_pixel_y_offset - /** - * pixel x/y/w/z all discard values after the decimal separator. - * That, coupled with the rendered interpolation, may make the - * icons look awfuller than they already are, or not, whatever. - * The solution to this nit is translating the missing decimals. - * also flooring increases the distance from 0 for negative numbers. - */ - var/abs_pixel_y_offset = 0 - var/translate = 0 - if(current_size != RESIZE_DEFAULT_SIZE) - var/standing_offset = get_pixel_y_offset_standing(current_size) - abs_pixel_y_offset = abs(standing_offset) - translate = (abs_pixel_y_offset - round(abs_pixel_y_offset)) * SIGN(standing_offset) + var/matrix/ntransform = matrix(transform) + var/current_translate = get_transform_translation_size(current_size) var/final_dir = dir var/changed = FALSE if(lying_angle != lying_prev && rotate_on_lying) changed = TRUE if(lying_angle && lying_prev == 0) - if(translate) - ntransform.Translate(0, -translate) - if(dir & (EAST|WEST)) //Standing to lying and facing east or west - final_dir = pick(NORTH, SOUTH) //So you fall on your side rather than your face or ass - else if(translate && !lying_angle && lying_prev != 0) - ntransform.Translate(translate * (lying_prev == 270 ? -1 : 1), 0) - ///Done last, as it can mess with the translation. + if(current_translate) + ntransform.Translate(0, -current_translate) + // Standing to lying and facing east or west + if(dir & (EAST|WEST)) + // ...So you fall on your side, rather than your face or ass + final_dir = pick(NORTH, SOUTH) + else + if(current_translate && !lying_angle && lying_prev != 0) + ntransform.Translate(current_translate * (lying_prev == 270 ? -1 : 1), 0) + // Done last, as it can mess with the translation. ntransform.TurnTo(lying_prev, lying_angle) if(resize != RESIZE_DEFAULT_SIZE) changed = TRUE var/is_vertical = !lying_angle || !rotate_on_lying - ///scaling also affects translation, so we've to undo the old translate beforehand. - if(translate && is_vertical) - ntransform.Translate(0, -translate) + var/new_translation = get_transform_translation_size(resize * current_size) + // scaling also affects translation, so we've to undo the old translate beforehand. + if(is_vertical && current_translate) + ntransform.Translate(0, -current_translate) + ntransform.Scale(resize) current_size *= resize - //Update the height of the maptext according to the size of the mob so they don't overlap. + // Update the height of the maptext according to the size of the mob so they don't overlap. var/old_maptext_offset = body_maptext_height_offset body_maptext_height_offset = initial(maptext_height) * (current_size - 1) * 0.5 maptext_height += body_maptext_height_offset - old_maptext_offset - //Update final_pixel_y so our mob doesn't go out of the southern bounds of the tile when standing - if(is_vertical) //But not if the mob has been rotated. - //Make sure the body position y offset is also updated - body_position_pixel_y_offset = get_pixel_y_offset_standing(current_size) - abs_pixel_y_offset = abs(body_position_pixel_y_offset) - var/new_translate = (abs_pixel_y_offset - round(abs_pixel_y_offset)) * SIGN(body_position_pixel_y_offset) - if(new_translate) - ntransform.Translate(0, new_translate) - final_pixel_y = base_pixel_y + body_position_pixel_y_offset + // and update the new translation + if(is_vertical && new_translation) + ntransform.Translate(0, new_translation) if(!changed) //Nothing has been changed, nothing has to be done. - return + return FALSE - ADD_TRAIT(src, TRAIT_NO_FLOATING_ANIM, UPDATE_TRANSFORM_TRAIT) - addtimer(TRAIT_CALLBACK_REMOVE(src, TRAIT_NO_FLOATING_ANIM, UPDATE_TRANSFORM_TRAIT), 0.3 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) + // ensures the floating animation doesn't mess with our animation + if(HAS_TRAIT(src, TRAIT_MOVE_FLOATING)) + ADD_TRAIT(src, TRAIT_NO_FLOATING_ANIM, UPDATE_TRANSFORM_TRAIT) + addtimer(TRAIT_CALLBACK_REMOVE(src, TRAIT_NO_FLOATING_ANIM, UPDATE_TRANSFORM_TRAIT), 0.3 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //if true, we want to avoid any animation time, it'll tween and not rotate at all otherwise. var/is_opposite_angle = REVERSE_ANGLE(lying_angle) == lying_prev var/animate_time = is_opposite_angle ? 0 : UPDATE_TRANSFORM_ANIMATION_TIME - animate(src, transform = ntransform, time = animate_time, pixel_y = final_pixel_y, dir = final_dir, easing = (EASE_IN|EASE_OUT)) + animate(src, transform = ntransform, time = animate_time, dir = final_dir, easing = (EASE_IN|EASE_OUT)) for (var/hud_key in hud_list) var/image/hud_image = hud_list[hud_key] if (istype(hud_image)) adjust_hud_position(hud_image, animate_time = animate_time) SEND_SIGNAL(src, COMSIG_LIVING_POST_UPDATE_TRANSFORM, resize, lying_angle, is_opposite_angle) + return TRUE + +/// Calculates how far vertically the mob's transform should translate according to its size (1 being "default") +/mob/living/proc/get_transform_translation_size(value) + return (value - 1) * 16 + +/** + * Adds an offset to the mob's pixel position. + * + * * source: The source of the offset, a string + * * w_add: pixel_w offset + * * x_add: pixel_x offset + * * y_add: pixel_y offset + * * z_add: pixel_z offset + * * animate: If TRUE, the mob will animate to the new position. If FALSE, it will instantly move. + */ +/mob/living/proc/add_offsets(source, w_add, x_add, y_add, z_add, animate = TRUE) + LAZYINITLIST(offsets) + if(isnum(w_add)) + LAZYSET(offsets[PIXEL_W_OFFSET], source, w_add) + if(isnum(x_add)) + LAZYSET(offsets[PIXEL_X_OFFSET], source, x_add) + if(isnum(y_add)) + LAZYSET(offsets[PIXEL_Y_OFFSET], source, y_add) + if(isnum(z_add)) + LAZYSET(offsets[PIXEL_Z_OFFSET], source, z_add) + update_offsets(animate) + +/** + * Goes through all pixel adjustments and removes any tied to the passed source. + * + * * source: The source of the offset to remove + * * animate: If TRUE, the mob will animate to the position with any offsets removed. If FALSE, it will instantly move. + */ +/mob/living/proc/remove_offsets(source, animate = TRUE) + for(var/offset in offsets) + LAZYREMOVE(offsets[offset], source) + ASSOC_UNSETEMPTY(offsets, offset) + UNSETEMPTY(offsets) + update_offsets(animate) + +/** + * Updates the mob's pixel position according to the offsets. + * + * * animate: If TRUE, the mob will animate to the new position. If FALSE, it will instantly move. + * + * Returns TRUE if the mob's position has changed, FALSE otherwise. + */ +/mob/living/proc/update_offsets(animate = FALSE) + var/new_w = base_pixel_w + var/new_x = base_pixel_x + var/new_y = base_pixel_y + var/new_z = base_pixel_z + + for(var/offset_key in LAZYACCESS(offsets, PIXEL_W_OFFSET)) + new_w += offsets[PIXEL_W_OFFSET][offset_key] + for(var/offset_key in LAZYACCESS(offsets, PIXEL_X_OFFSET)) + new_x += offsets[PIXEL_X_OFFSET][offset_key] + for(var/offset_key in LAZYACCESS(offsets, PIXEL_Y_OFFSET)) + new_y += offsets[PIXEL_Y_OFFSET][offset_key] + for(var/offset_key in LAZYACCESS(offsets, PIXEL_Z_OFFSET)) + new_z += offsets[PIXEL_Z_OFFSET][offset_key] + + if(new_w == pixel_w && new_x == pixel_x && new_y == pixel_y && new_z == pixel_z) + return FALSE + + if(!animate) + pixel_w = new_w + pixel_x = new_x + pixel_y = new_y + pixel_z = new_z + return TRUE + + // ensures the floating animation doesn't mess with our animation + if(HAS_TRAIT(src, TRAIT_MOVE_FLOATING)) + ADD_TRAIT(src, TRAIT_NO_FLOATING_ANIM, UPDATE_OFFSET_TRAIT) + addtimer(TRAIT_CALLBACK_REMOVE(src, TRAIT_NO_FLOATING_ANIM, UPDATE_OFFSET_TRAIT), 0.3 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) + + animate(src, + pixel_w = new_w, + pixel_x = new_x, + pixel_y = new_y, + pixel_z = new_z, + easing = (EASE_IN|EASE_OUT), + flags = ANIMATION_PARALLEL, + time = UPDATE_TRANSFORM_ANIMATION_TIME, + ) + return TRUE + +/** + * Checks if we are offset by the passed source for the passed pixel. + * + * * source: The source of the offset + * If not supplied, it will report the total offset of the passed pixel. + * * pixel: Optional, The pixel to check. + * If not supplied, just reports if it's offset by the source at all (returning the first offset found). + * + * Returns the offset if we are, 0 otherwise. + */ +/mob/living/proc/has_offset(source, pixel) + if(isnull(source) && isnull(pixel)) + stack_trace("has_offset() requires at least one argument.") + return 0 + + if(isnull(source)) + if(!length(offsets?[pixel])) + return 0 + + var/total_found_offset = 0 + for(var/found_offset in offsets[pixel]) + total_found_offset += has_offset(found_offset, pixel) + return total_found_offset + + if(isnull(pixel)) + for(var/found_pixel in offsets) + var/found_offset = has_offset(source, found_pixel) + if(found_offset) + return found_offset + + return 0 + + return offsets?[pixel]?[source] || 0 + +// Updates offsets if base pixel changes +// Future TODO: move base pixel onto /obj and make mobs just set a base pixel using a source +/mob/living/set_base_pixel_x(new_value) + . = ..() + update_offsets() + +/mob/living/set_base_pixel_y(new_value) + . = ..() + update_offsets() diff --git a/code/modules/mob/living/silicon/ai/ai_say.dm b/code/modules/mob/living/silicon/ai/ai_say.dm index 0c7828a4fa5fb..65764b4fc54ce 100644 --- a/code/modules/mob/living/silicon/ai/ai_say.dm +++ b/code/modules/mob/living/silicon/ai/ai_say.dm @@ -161,28 +161,32 @@ if(GLOB.vox_sounds[word]) var/sound_file = GLOB.vox_sounds[word] - var/sound/voice = sound(sound_file, wait = 1, channel = CHANNEL_VOX) - voice.status = SOUND_STREAM // If there is no single listener, broadcast to everyone in the same z level if(!only_listener) // Play voice for all mobs in the z level for(var/mob/player_mob as anything in GLOB.player_list) - if(!player_mob.can_hear() || !safe_read_pref(player_mob.client, /datum/preference/toggle/sound_ai_vox)) + var/pref_volume = safe_read_pref(player_mob.client, /datum/preference/numeric/volume/sound_ai_vox) + if(!player_mob.can_hear() || !pref_volume) continue var/turf/player_turf = get_turf(player_mob) if(!is_valid_z_level(ai_turf, player_turf)) continue + var/sound/voice = sound(sound_file, wait = 1, channel = CHANNEL_VOX, volume = pref_volume) + voice.status = SOUND_STREAM SEND_SOUND(player_mob, voice) else + var/pref_volume = safe_read_pref(only_listener.client, /datum/preference/numeric/volume/sound_ai_vox) + var/sound/voice = sound(sound_file, wait = 1, channel = CHANNEL_VOX, volume = pref_volume) + voice.status = SOUND_STREAM SEND_SOUND(only_listener, voice) return TRUE return FALSE /proc/does_target_have_vox_off(mob/target) - return !safe_read_pref(target.client, /datum/preference/toggle/sound_ai_vox) + return !safe_read_pref(target.client, /datum/preference/numeric/volume/sound_ai_vox) #undef VOX_DELAY #endif diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index ce3e9a57c1ec3..1d57da366af56 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -950,18 +950,20 @@ if(can_buckle && isliving(user) && isliving(M) && !(M in buckled_mobs) && ((user != src) || (!combat_mode))) return user_buckle_mob(M, user, check_loc = FALSE) -/mob/living/silicon/robot/buckle_mob(mob/living/M, force = FALSE, check_loc = TRUE, buckle_mob_flags= RIDER_NEEDS_ARM) - if(!is_type_in_typecache(M, can_ride_typecache)) - M.visible_message(span_warning("[M] really can't seem to mount [src]...")) - return - - if(stat || incapacitated) - return +/mob/living/silicon/robot/is_buckle_possible(mob/living/target, force, check_loc) + if(incapacitated) + return FALSE + if(!HAS_TRAIT(target, TRAIT_CAN_MOUNT_CYBORGS)) + target.visible_message(span_warning("[target] really can't seem to mount [src]...")) + return FALSE if(model && !model.allow_riding) - M.visible_message(span_boldwarning("Unfortunately, [M] just can't seem to hold onto [src]!")) - return + target.visible_message(span_boldwarning("Unfortunately, [target] just can't seem to hold onto [src]!")) + return FALSE + + return ..() - buckle_mob_flags= RIDER_NEEDS_ARM // just in case +/mob/living/silicon/robot/buckle_mob(mob/living/M, force, check_loc, buckle_mob_flags) + buckle_mob_flags = RIDER_NEEDS_ARM // just in case return ..() /mob/living/silicon/robot/post_buckle_mob(mob/living/victim_to_boot) diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index 2646b465280b7..3644c57aa411a 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -145,19 +145,6 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real balloon_alert(user, "no radio found!") return ITEM_INTERACT_BLOCKING - if(tool.GetID()) - if(opened) - balloon_alert(user, "close the chassis cover first!") - return ITEM_INTERACT_BLOCKING - if(!allowed(user)) - balloon_alert(user, "access denied!") - return ITEM_INTERACT_BLOCKING - locked = !locked - update_icons() - balloon_alert(user, "chassis cover lock [emagged ? "glitches" : "toggled"]") - logevent("[emagged ? "ChÃ¥vÃis" : "Chassis"] cover lock has been [locked ? "engaged" : "released"]") - return ITEM_INTERACT_SUCCESS - if(istype(tool, /obj/item/borg/upgrade)) if(!opened) balloon_alert(user, "chassis cover is closed!") @@ -207,6 +194,23 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real return NONE +// This has to go at the very end of interaction so we don't block every interaction with ID-like items +/mob/living/silicon/robot/base_item_interaction(mob/living/user, obj/item/tool, list/modifiers) + . = ..() + if(. || !tool.GetID()) + return + if(opened) + balloon_alert(user, "close the chassis cover first!") + return ITEM_INTERACT_BLOCKING + if(!allowed(user)) + balloon_alert(user, "access denied!") + return ITEM_INTERACT_BLOCKING + locked = !locked + update_icons() + balloon_alert(user, "chassis cover lock [emagged ? "glitches" : "toggled"]") + logevent("[emagged ? "ChÃ¥vÃis" : "Chassis"] cover lock has been [locked ? "engaged" : "released"]") + return ITEM_INTERACT_SUCCESS + #define LOW_DAMAGE_UPPER_BOUND 1/3 #define MODERATE_DAMAGE_UPPER_BOUND 2/3 diff --git a/code/modules/mob/living/silicon/robot/robot_defines.dm b/code/modules/mob/living/silicon/robot/robot_defines.dm index 07b8322bd7c48..c624c8b41e364 100644 --- a/code/modules/mob/living/silicon/robot/robot_defines.dm +++ b/code/modules/mob/living/silicon/robot/robot_defines.dm @@ -142,8 +142,6 @@ var/obj/item/hat var/hat_offset = list("north" = list(0, -3), "south" = list(0, -3), "east" = list(4, -3), "west" = list(-4, -3)) - ///What types of mobs are allowed to ride/buckle to this mob - var/static/list/can_ride_typecache = typecacheof(/mob/living/carbon/human) can_buckle = TRUE buckle_lying = FALSE diff --git a/code/modules/mob/living/silicon/robot/robot_model.dm b/code/modules/mob/living/silicon/robot/robot_model.dm index 60cf2f6d04654..63a7df722aee6 100644 --- a/code/modules/mob/living/silicon/robot/robot_model.dm +++ b/code/modules/mob/living/silicon/robot/robot_model.dm @@ -46,11 +46,11 @@ ///Whether the borg can stuff itself into disposals var/canDispose = FALSE ///The pixel offset of the hat. List of "north" "south" "east" "west" x, y offsets - var/hat_offset = list("north" = list(0, -3), "south" = list(0, -3), "east" = list(4, -3), "west" = list(-4, -3)) - ///The x offsets of a person riding the borg - var/list/ride_offset_x = list("north" = 0, "south" = 0, "east" = -6, "west" = 6) - ///The y offsets of a person riding the borg - var/list/ride_offset_y = list("north" = 4, "south" = 4, "east" = 3, "west" = 3) + var/list/hat_offset = list("north" = list(0, -3), "south" = list(0, -3), "east" = list(4, -3), "west" = list(-4, -3)) + ///The offsets of a person riding the borg of this model. + /// Format like list("north" = list(x, y, layer), ...) + /// Leave null to use defaults + var/list/ride_offsets ///List of skins the borg can be reskinned to, optional var/list/borg_skins @@ -511,17 +511,17 @@ // Start the sound. it'll just last the 4 seconds it takes for us to rev up wash_audio.start() // We're just gonna shake the borg a bit. Not a ton, but just enough that it feels like the audio makes sense - var/base_x = robot_owner.base_pixel_x - var/base_y = robot_owner.base_pixel_y - animate(robot_owner, pixel_x = base_x, pixel_y = base_y, time = 1, loop = -1) + var/base_w = robot_owner.base_pixel_w + var/base_z = robot_owner.base_pixel_z + animate(robot_owner, pixel_w = base_w, pixel_z = base_z, time = 0.1 SECONDS, loop = -1) for(var/i in 1 to 17) //Startup rumble - var/x_offset = base_x + rand(-1, 1) - var/y_offset = base_y + rand(-1, 1) - animate(pixel_x = x_offset, pixel_y = y_offset, time = 1) + var/w_offset = base_w + rand(-1, 1) + var/z_offset = base_z + rand(-1, 1) + animate(pixel_w = w_offset, pixel_z = z_offset, time = 0.1 SECONDS) if(!do_after(robot_owner, 4 SECONDS, interaction_key = "auto_wash_toggle", extra_checks = allow_buffer_activate)) wash_audio.stop() // Coward - animate(robot_owner, pixel_x = base_x, pixel_y = base_y, time = 1) + animate(robot_owner, pixel_w = base_w, pixel_z = base_z, time = 0.1 SECONDS) return FALSE else if(!COOLDOWN_FINISHED(src, toggle_cooldown)) @@ -546,16 +546,16 @@ robot_owner.add_movespeed_modifier(/datum/movespeed_modifier/auto_wash) RegisterSignal(robot_owner, COMSIG_MOVABLE_MOVED, PROC_REF(clean)) //This is basically just about adding a shake to the borg, effect should look ilke an engine's running - var/base_x = robot_owner.base_pixel_x - var/base_y = robot_owner.base_pixel_y - robot_owner.pixel_x = base_x + rand(-7, 7) - robot_owner.pixel_y = base_y + rand(-7, 7) + var/base_w = robot_owner.base_pixel_w + var/base_z = robot_owner.base_pixel_z + robot_owner.pixel_w = base_w + rand(-7, 7) + robot_owner.pixel_z = base_z + rand(-7, 7) //Larger shake with more changes to start out, feels like "Revving" - animate(robot_owner, pixel_x = base_x, pixel_y = base_y, time = 1, loop = -1) + animate(robot_owner, pixel_w = base_w, pixel_z = base_z, time = 0.1 SECONDS, loop = -1) for(var/i in 1 to 100) - var/x_offset = base_x + rand(-2, 2) - var/y_offset = base_y + rand(-2, 2) - animate(pixel_x = x_offset, pixel_y = y_offset, time = 1) + var/w_offset = base_w + rand(-2, 2) + var/z_offset = base_z + rand(-2, 2) + animate(pixel_w = w_offset, pixel_z = z_offset, time = 0.1 SECONDS) if(!wash_audio.is_active()) wash_audio.start() clean() @@ -571,15 +571,15 @@ // Diable the cleaning, we're revving down UnregisterSignal(robot_owner, COMSIG_MOVABLE_MOVED) // Do the rumble animation till we're all finished - var/base_x = robot_owner.base_pixel_x - var/base_y = robot_owner.base_pixel_y - animate(robot_owner, pixel_x = base_x, pixel_y = base_y, time = 1) + var/base_w = robot_owner.base_pixel_w + var/base_z = robot_owner.base_pixel_z + animate(robot_owner, pixel_w = base_w, pixel_z = base_z, time = 0.1 SECONDS) for(var/i in 1 to finished_by - 0.1 SECONDS) //We rumble until we're finished making noise - var/x_offset = base_x + rand(-1, 1) - var/y_offset = base_y + rand(-1, 1) - animate(pixel_x = x_offset, pixel_y = y_offset, time = 1) + var/w_offset = base_w + rand(-1, 1) + var/z_offset = base_z + rand(-1, 1) + animate(pixel_w = w_offset, pixel_z = z_offset, time = 0.1 SECONDS) // Reset our animations - animate(pixel_x = base_x, pixel_y = base_y, time = 2) + animate(pixel_w = base_w, pixel_z = base_z, time = 0.2 SECONDS) addtimer(CALLBACK(wash_audio, TYPE_PROC_REF(/datum/looping_sound, stop)), time_left) addtimer(CALLBACK(src, PROC_REF(turn_off_wash)), finished_by) diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 188d104a562f9..265c27e587078 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -309,13 +309,13 @@ ///Gives you a link-driven interface for deciding what laws the statelaws() proc will share with the crew. /mob/living/silicon/proc/checklaws() laws_sanity_check() - var/list = "Which laws do you want to include when stating them for the crew?

" + var/list = "Which laws do you want to include when stating them for the crew?

" var/law_display = "Yes" if (laws.zeroth) if (!(laws.zeroth in lawcheck)) law_display = "No" - list += {"[law_display] 0: [laws.zeroth]
"} + list += {"[law_display] 0: [laws.zeroth]
"} for (var/index in 1 to length(laws.hacked)) law_display = "Yes" @@ -323,7 +323,7 @@ if (length(law) > 0) if (!(law in hackedcheck)) law_display = "No" - list += {"[law_display] [ion_num()]: [law]
"} + list += {"[law_display] [ion_num()]: [law]
"} for (var/index in 1 to length(laws.ion)) law_display = "Yes" @@ -331,7 +331,7 @@ if (length(law) > 0) if(!(law in ioncheck)) law_display = "No" - list += {"[law_display] [ion_num()]: [law]
"} + list += {"[law_display] [ion_num()]: [law]
"} var/number = 1 for (var/index in 1 to length(laws.inherent)) @@ -340,7 +340,7 @@ if (length(law) > 0) if (!(law in lawcheck)) law_display = "No" - list += {"[law_display] [number]: [law]
"} + list += {"[law_display] [number]: [law]
"} number++ for (var/index in 1 to length(laws.supplied)) @@ -349,11 +349,13 @@ if (length(law) > 0) if (!(law in lawcheck)) law_display = "No" - list += {"[law_display] [number]: [law]
"} + list += {"[law_display] [number]: [law]
"} number++ - list += {"

State Laws"} + list += {"

State Laws"} - usr << browse(list, "window=laws") + var/datum/browser/browser = new(usr, "laws") + browser.set_content(list) + browser.open() /mob/living/silicon/proc/ai_roster() if(!client) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm index a5897c01695d4..e33474616504d 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm @@ -140,12 +140,12 @@ Difficulty: Extremely Hard adjustHealth(-maxHealth) enraged = TRUE enraging = TRUE - animate(src, pixel_y = pixel_y + 96, time = 100, easing = ELASTIC_EASING) + animate(src, pixel_z = 96, time = 100, easing = ELASTIC_EASING, flags = ANIMATION_RELATIVE) spin(100, 10) SLEEP_CHECK_DEATH(60, src) playsound(src, 'sound/effects/explosion/explosion3.ogg', 100, TRUE) icon_state = "demonic_miner_phase2" - animate(src, pixel_y = pixel_y - 96, time = 8, flags = ANIMATION_END_NOW) + animate(src, pixel_z = -96, time = 8, flags = ANIMATION_END_NOW, flags = ANIMATION_RELATIVE) spin(8, 2) for(var/obj/structure/frost_miner_prism/prism_to_set in GLOB.frost_miner_prisms) prism_to_set.set_prism_light(LIGHT_COLOR_PURPLE, 5) diff --git a/code/modules/mob/living/sneeze.dm b/code/modules/mob/living/sneeze.dm deleted file mode 100644 index af638d7c71a77..0000000000000 --- a/code/modules/mob/living/sneeze.dm +++ /dev/null @@ -1,76 +0,0 @@ -/// How many degrees, up and down, can our sneeze deviate from our facing direction? -#define SNEEZE_CONE 60 - -/// Launch a sneeze that can infect with a disease -/mob/living/proc/infectious_sneeze(datum/disease/disease, force, range = 4, count = 4, charge_time = 0.5 SECONDS, obj/projectile/sneezoid = /obj/projectile/sneeze) - sneeze(range, count, charge_time, sneezoid, on_sneeze_hit_callback = CALLBACK(src, PROC_REF(try_sneeze_infect), disease.Copy(), force)) - -/// Try and infect following a sneeze hit. force to always infect -/mob/living/proc/try_sneeze_infect(datum/disease/disease, force, mob/living/target) - target.contract_airborne_disease(disease) - -/// Inhale and start the sneeze timer. on_sneeze_callback can be used to do custom sneezes, on_sneeze_hit_callback for special effects, but probably usually making it infect -/mob/living/proc/sneeze(range = 4, count = 3, charge_time = 0.5 SECONDS, obj/projectile/sneezoid = /obj/projectile/sneeze, on_sneeze_callback = null, on_sneeze_hit_callback = null) - if(charge_time) - emote("inhale") - - clear_fullscreen("sneezer", 0) - var/atom/movable/screen/fullscreen/cursor_catcher/catcher = overlay_fullscreen("sneezer", /atom/movable/screen/fullscreen/cursor_catcher, FALSE) - if(client) - catcher.assign_to_mob(src) - var/callback = on_sneeze_callback || CALLBACK(src, PROC_REF(launch_sneeze), range, count, sneezoid, on_sneeze_hit_callback, catcher) - addtimer(callback, charge_time) - -/// Shoot the sneeze projectile -/mob/living/proc/launch_sneeze(range, count, obj/projectile/sneezoid, datum/callback/on_sneeze_hit_callback, atom/movable/screen/fullscreen/cursor_catcher/catcher) - emote("sneeze") - - var/angle = dir2angle(dir) - - if(catcher && catcher.given_turf) - catcher.calculate_params() - /// Take the target and subtract self for relative grid position. Then take the pixel x on the tile and divide by the tiles pixel size, and add 0.5 so it's fired from the center - var/sneeze_x = catcher.given_turf.x - x + catcher.given_x / ICON_SIZE_X - 0.5 - var/sneeze_y = catcher.given_turf.y - y + catcher.given_y / ICON_SIZE_Y - 0.5 - angle = ATAN2(sneeze_y, sneeze_x) - - // Check if we're within the sneeze cone, otherwise just sneeze straight - if(abs(closer_angle_difference(angle, dir2angle(dir) - SNEEZE_CONE)) + abs(closer_angle_difference(angle, dir2angle(dir) + SNEEZE_CONE)) > 2 * SNEEZE_CONE) - angle = dir2angle(dir) - - clear_fullscreen("sneezer", 0) - - for(var/i in 0 to count) - var/obj/projectile/sneezium = new sneezoid(get_turf(src), on_sneeze_hit_callback) - sneezium.range = range - sneezium.firer = src - sneezium.fire(angle) - -/// Sneeze projectile launched by sneezing. gross -/obj/projectile/sneeze - name = "sneeze" - icon_state = "sneeze" - - suppressed = SUPPRESSED_VERY - range = 4 - speed = 0.25 - spread = 40 - damage_type = BRUTE - damage = 0 - hitsound = null - - /// Call this when we hit something - var/datum/callback/sneezie_callback - -/obj/projectile/sneeze/Initialize(mapload, callback) - . = ..() - - sneezie_callback = callback - -/obj/projectile/sneeze/on_hit(atom/target, blocked, pierce_hit) - . = ..() - - if(isliving(target)) - sneezie_callback?.Invoke(target) //you've been sneezered - -#undef SNEEZE_CONE diff --git a/code/modules/mob/living/status_procs.dm b/code/modules/mob/living/status_procs.dm index 11815d71b1220..967b7cdabfd68 100644 --- a/code/modules/mob/living/status_procs.dm +++ b/code/modules/mob/living/status_procs.dm @@ -89,7 +89,7 @@ return K.duration - world.time return 0 -/mob/living/proc/Knockdown(amount, ignore_canstun = FALSE) //Can't go below remaining duration +/mob/living/proc/Knockdown(amount, daze_amount = 0, ignore_canstun = FALSE) //Can't go below remaining duration if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_KNOCKDOWN, amount, ignore_canstun) & COMPONENT_NO_STUN) return if(check_stun_immunity(CANKNOCKDOWN, ignore_canstun)) @@ -99,6 +99,8 @@ K.duration = max(world.time + amount, K.duration) else if(amount > 0) K = apply_status_effect(/datum/status_effect/incapacitating/knockdown, amount) + if(daze_amount > 0) + apply_status_effect(/datum/status_effect/dazed, daze_amount) return K /mob/living/proc/SetKnockdown(amount, ignore_canstun = FALSE) //Sets remaining duration @@ -117,7 +119,7 @@ K = apply_status_effect(/datum/status_effect/incapacitating/knockdown, amount) return K -/mob/living/proc/AdjustKnockdown(amount, ignore_canstun = FALSE) //Adds to remaining duration +/mob/living/proc/AdjustKnockdown(amount, daze_amount = 0, ignore_canstun = FALSE) //Adds to remaining duration if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_KNOCKDOWN, amount, ignore_canstun) & COMPONENT_NO_STUN) return if(check_stun_immunity(CANKNOCKDOWN, ignore_canstun)) @@ -127,6 +129,8 @@ K.duration += amount else if(amount > 0) K = apply_status_effect(/datum/status_effect/incapacitating/knockdown, amount) + if(daze_amount > 0) + apply_status_effect(/datum/status_effect/dazed, daze_amount) return K /* IMMOBILIZED */ diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index e4e10cd94520d..c5b70411f255b 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1025,25 +1025,6 @@ return FALSE return ..(M, force, check_loc, buckle_mob_flags) -///Call back post buckle to a mob to offset your visual height -/mob/post_buckle_mob(mob/living/M) - var/height = M.get_mob_buckling_height(src) - M.pixel_y = initial(M.pixel_y) + height - if(M.layer <= layer) //make sure they stay above our current layer - M.layer = layer + 0.1 -///Call back post unbuckle from a mob, (reset your visual height here) -/mob/post_unbuckle_mob(mob/living/M) - M.layer = initial(M.layer) - M.pixel_y = initial(M.pixel_y) - -///returns the height in pixel the mob should have when buckled to another mob. -/mob/proc/get_mob_buckling_height(mob/seat) - if(isliving(seat)) - var/mob/living/L = seat - if(L.mob_size <= MOB_SIZE_SMALL) //being on top of a small mob doesn't put you very high. - return 0 - return 9 - ///Can the mob interact() with an atom? /mob/proc/can_interact_with(atom/A, treat_mob_as_adjacent) if(isAdminGhostAI(src)) @@ -1338,7 +1319,8 @@ . = ..() VV_DROPDOWN_OPTION("", "---------") VV_DROPDOWN_OPTION(VV_HK_GIB, "Gib") - VV_DROPDOWN_OPTION(VV_HK_REMOVE_SPELL, "Remove Spell") + VV_DROPDOWN_OPTION(VV_HK_GIVE_AI, "Give AI Controller") + VV_DROPDOWN_OPTION(VV_HK_GIVE_AI_SPEECH, "Give Random AI Speech") VV_DROPDOWN_OPTION(VV_HK_GIVE_SPELL, "Give Spell") VV_DROPDOWN_OPTION(VV_HK_REMOVE_SPELL, "Remove Spell") VV_DROPDOWN_OPTION(VV_HK_GIVE_MOB_ACTION, "Give Mob Ability") @@ -1380,6 +1362,12 @@ return usr.client.cmd_admin_godmode(src) + if(href_list[VV_HK_GIVE_AI]) + return SSadmin_verbs.dynamic_invoke_verb(usr, /datum/admin_verb/give_ai_controller, src) + + if(href_list[VV_HK_GIVE_AI_SPEECH]) + return SSadmin_verbs.dynamic_invoke_verb(usr, /datum/admin_verb/give_ai_speech, src) + if(href_list[VV_HK_GIVE_MOB_ACTION]) return SSadmin_verbs.dynamic_invoke_verb(usr, /datum/admin_verb/give_mob_action, src) diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 36d722f68dcdb..f833ad9028a66 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -376,12 +376,13 @@ * slipped_on - optional, what'd we slip on? if not set, we assume they just fell over * lube - bitflag of "lube flags", see [mobs.dm] for more information * paralyze - time (in deciseconds) the slip leaves them paralyzed / unable to move + * daze - time (in deciseconds) the slip leaves them vulnerable to shove stuns * force_drop = the slip forces them to drop held items */ -/mob/proc/slip(knockdown_amount, obj/slipped_on, lube_flags, paralyze, force_drop = FALSE) +/mob/proc/slip(knockdown_amount, obj/slipped_on, lube_flags, paralyze, daze, force_drop = FALSE) add_mob_memory(/datum/memory/was_slipped, antagonist = slipped_on) - SEND_SIGNAL(src, COMSIG_MOB_SLIPPED, knockdown_amount, slipped_on, lube_flags, paralyze, force_drop) + SEND_SIGNAL(src, COMSIG_MOB_SLIPPED, knockdown_amount, slipped_on, lube_flags, paralyze, daze, force_drop) //bodypart selection verbs - Cyberboss //8: repeated presses toggles through head - eyes - mouth diff --git a/code/modules/mob_spawn/ghost_roles/mining_roles.dm b/code/modules/mob_spawn/ghost_roles/mining_roles.dm index 3edfbb3416ac7..fb2d4073e971a 100644 --- a/code/modules/mob_spawn/ghost_roles/mining_roles.dm +++ b/code/modules/mob_spawn/ghost_roles/mining_roles.dm @@ -309,6 +309,8 @@ shoes = /obj/item/clothing/shoes/combat r_pocket = /obj/item/gun/ballistic/automatic/pistol r_hand = /obj/item/gun/ballistic/rifle/sniper_rifle + belt = /obj/item/storage/belt/utility/full + glasses = /obj/item/clothing/glasses/welding/up implants = list(/obj/item/implant/weapons_auth) @@ -320,6 +322,8 @@ suit = /obj/item/clothing/suit/armor/vest mask = /obj/item/clothing/mask/chameleon/gps r_hand = /obj/item/melee/energy/sword/saber + belt = /obj/item/storage/belt/utility/full + glasses = /obj/item/clothing/glasses/welding/up /datum/outfit/lavaland_syndicate/comms/icemoon name = "Icemoon Syndicate Comms Agent" diff --git a/code/modules/mod/mod_types.dm b/code/modules/mod/mod_types.dm index 91fb00c633b06..050bee6ff2baf 100644 --- a/code/modules/mod/mod_types.dm +++ b/code/modules/mod/mod_types.dm @@ -82,9 +82,11 @@ /obj/item/mod/module/t_ray, /obj/item/mod/module/quick_carry, /obj/item/mod/module/headprotector, + /obj/item/mod/module/mister/atmos, ) default_pins = list( /obj/item/mod/module/magboot, + /obj/item/mod/module/mister/atmos, /obj/item/mod/module/flashlight, ) diff --git a/code/modules/mod/modules/modules_antag.dm b/code/modules/mod/modules/modules_antag.dm index ba5e1711fcb29..be3f7730b14af 100644 --- a/code/modules/mod/modules/modules_antag.dm +++ b/code/modules/mod/modules/modules_antag.dm @@ -526,10 +526,10 @@ var/list/traits_to_add = list(TRAIT_SILENT_FOOTSTEPS, TRAIT_UNKNOWN, TRAIT_HEAD_INJURY_BLOCKED) /obj/item/mod/module/infiltrator/on_install() - mod.item_flags |= EXAMINE_SKIP + ADD_TRAIT(mod, TRAIT_EXAMINE_SKIP, REF(src)) /obj/item/mod/module/infiltrator/on_uninstall(deleting = FALSE) - mod.item_flags &= ~EXAMINE_SKIP + REMOVE_TRAIT(mod, TRAIT_EXAMINE_SKIP, REF(src)) /obj/item/mod/module/infiltrator/on_part_activation() mod.wearer.add_traits(traits_to_add, REF(src)) diff --git a/code/modules/mod/modules/modules_security.dm b/code/modules/mod/modules/modules_security.dm index f4bad41dd02c2..06bd9352a9c2c 100644 --- a/code/modules/mod/modules/modules_security.dm +++ b/code/modules/mod/modules/modules_security.dm @@ -112,7 +112,6 @@ incompatible_modules = list(/obj/item/mod/module/holster) cooldown_time = 0.5 SECONDS allow_flags = MODULE_ALLOW_INACTIVE - required_slots = list(ITEM_SLOT_OCLOTHING|ITEM_SLOT_GLOVES|ITEM_SLOT_FEET) /// Gun we have holstered. var/obj/item/gun/holstered diff --git a/code/modules/mod/modules/modules_supply.dm b/code/modules/mod/modules/modules_supply.dm index 2c4a5955aed2b..42aafaf778650 100644 --- a/code/modules/mod/modules/modules_supply.dm +++ b/code/modules/mod/modules/modules_supply.dm @@ -493,8 +493,7 @@ mod.wearer.add_filter("mod_ball", 1, alpha_mask_filter(icon = icon('icons/mob/clothing/modsuit/mod_modules.dmi', "ball_mask"), flags = MASK_INVERSE)) mod.wearer.add_filter("mod_blur", 2, angular_blur_filter(size = 15)) mod.wearer.add_filter("mod_outline", 3, outline_filter(color = "#000000AA")) - mod.wearer.base_pixel_y -= 4 - animate(mod.wearer, animate_time, pixel_y = mod.wearer.base_pixel_y, flags = ANIMATION_PARALLEL) + mod.wearer.add_offsets(REF(src), y_add = -4) mod.wearer.SpinAnimation(1.5) mod.wearer.add_traits(user_traits, REF(src)) mod.wearer.RemoveElement(/datum/element/footstep, FOOTSTEP_MOB_HUMAN, 1, -6) @@ -506,8 +505,7 @@ /obj/item/mod/module/sphere_transform/on_deactivation(display_message = TRUE, deleting = FALSE) if(!deleting) playsound(src, 'sound/items/modsuit/ballin.ogg', 100, TRUE, frequency = -1) - mod.wearer.base_pixel_y += 4 - animate(mod.wearer, animate_time, pixel_y = mod.wearer.base_pixel_y) + mod.wearer.remove_offsets(REF(src)) addtimer(CALLBACK(mod.wearer, TYPE_PROC_REF(/datum, remove_filter), list("mod_ball", "mod_blur", "mod_outline")), animate_time) mod.wearer.remove_traits(user_traits, REF(src)) mod.wearer.remove_movespeed_mod_immunities(REF(src), /datum/movespeed_modifier/damage_slowdown) diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index 71c27ecd6bee3..cee8f1b385037 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -193,12 +193,12 @@ physical = null return ..() -/obj/item/modular_computer/pre_attack_secondary(atom/A, mob/living/user, params) - if(active_program?.tap(A, user, params)) - user.do_attack_animation(A) //Emulate this animation since we kill the attack in three lines +/obj/item/modular_computer/interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers) + if(active_program?.tap(interacting_with, user, modifiers)) + user.do_attack_animation(interacting_with) //Emulate this animation since we kill the attack in three lines playsound(loc, 'sound/items/weapons/tap.ogg', get_clamped_volume(), TRUE, -1) //Likewise for the tap sound addtimer(CALLBACK(src, PROC_REF(play_ping)), 0.5 SECONDS, TIMER_UNIQUE) //Slightly delayed ping to indicate success - return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + return ITEM_INTERACT_SUCCESS return ..() // shameless copy of newscaster photo saving diff --git a/code/modules/modular_computers/computers/item/computer_ui.dm b/code/modules/modular_computers/computers/item/computer_ui.dm index d8b97c523019d..6008ee0aa1366 100644 --- a/code/modules/modular_computers/computers/item/computer_ui.dm +++ b/code/modules/modular_computers/computers/item/computer_ui.dm @@ -46,14 +46,12 @@ // Operates TGUI /obj/item/modular_computer/ui_interact(mob/user, datum/tgui/ui) if(!enabled || !user.can_read(src, READING_CHECK_LITERACY)) - if(ui) - ui.close() + ui?.close() return // Robots don't really need to see the screen, their wireless connection works as long as computer is on. if(!screen_on && !issilicon(user)) - if(ui) - ui.close() + ui?.close() return if(honkvirus_amount > 0) // EXTRA annoying, huh! @@ -63,6 +61,8 @@ ui = SStgui.try_update_ui(user, src, ui) if(!ui) update_tablet_open_uis(user) + else if(active_program?.always_update_ui) + active_program.ui_interact(user, ui) /obj/item/modular_computer/ui_assets(mob/user) var/list/data = list() diff --git a/code/modules/modular_computers/computers/item/disks/virus_disk.dm b/code/modules/modular_computers/computers/item/disks/virus_disk.dm index 3f646b22d8a06..28ceb2da54a11 100644 --- a/code/modules/modular_computers/computers/item/disks/virus_disk.dm +++ b/code/modules/modular_computers/computers/item/disks/virus_disk.dm @@ -147,11 +147,8 @@ target_mind = pick(backup_players) hidden_uplink = target.AddComponent(/datum/component/uplink, target_mind, enabled = TRUE, starting_tc = telecrystals, has_progression = TRUE) hidden_uplink.unlock_code = unlock_code - hidden_uplink.uplink_handler.has_objectives = TRUE hidden_uplink.uplink_handler.owner = target_mind - hidden_uplink.uplink_handler.can_take_objectives = FALSE hidden_uplink.uplink_handler.progression_points = min(SStraitor.current_global_progression, current_progression) - hidden_uplink.uplink_handler.generate_objectives() SStraitor.register_uplink_handler(hidden_uplink.uplink_handler) else hidden_uplink.uplink_handler.add_telecrystals(telecrystals) diff --git a/code/modules/modular_computers/file_system/program.dm b/code/modules/modular_computers/file_system/program.dm index 1b18e5a29241d..64516fa30bdf9 100644 --- a/code/modules/modular_computers/file_system/program.dm +++ b/code/modules/modular_computers/file_system/program.dm @@ -42,6 +42,8 @@ var/alert_silenced = FALSE /// Whether to highlight our program in the main screen. Intended for alerts, but loosely available for any need to notify of changed conditions. Think Windows task bar highlighting. Available even if alerts are muted. var/alert_pending = FALSE + /// Whether the UI should *always* be updated while active. + var/always_update_ui = FALSE /// How well this program will help combat detomatix viruses. var/detomatix_resistance = NONE /// Unremovable circuit componentn added to the physical computer while the program is installed @@ -122,9 +124,9 @@ *Arguments: *A is the atom being tapped *user is the person making the attack action - *params is anything the pre_attack() proc had in the same-named variable. + *modifiers is anything the pre_attack() proc had in the same-named variable. */ -/datum/computer_file/program/proc/tap(atom/tapped_atom, mob/living/user, params) +/datum/computer_file/program/proc/tap(atom/tapped_atom, mob/living/user, list/modifiers) return FALSE ///Makes sure a program can run on this hardware (for apps limited to tablets/computers/laptops) diff --git a/code/modules/modular_computers/file_system/programs/atmosscan.dm b/code/modules/modular_computers/file_system/programs/atmosscan.dm index 32819a358058c..8aa51e476cf93 100644 --- a/code/modules/modular_computers/file_system/programs/atmosscan.dm +++ b/code/modules/modular_computers/file_system/programs/atmosscan.dm @@ -28,12 +28,12 @@ return COMPONENT_CANCEL_ATTACK_CHAIN /// Keep this in sync with its tool based counterpart [/obj/proc/analyzer_act] and [/atom/proc/tool_act] -/datum/computer_file/program/atmosscan/tap(atom/A, mob/living/user, params) +/datum/computer_file/program/atmosscan/tap(atom/tapped_atom, mob/living/user, list/modifiers) if(atmozphere_mode != ATMOZPHERE_SCAN_CLICK) return FALSE - if(!atmos_scan(user=user, target=A, silent=FALSE)) + if(!atmos_scan(user, tapped_atom)) return FALSE - on_analyze(source=computer, target=A) + on_analyze(computer, tapped_atom) return TRUE /// Updates our gasmix data if on click mode. diff --git a/code/modules/modular_computers/file_system/programs/borg_monitor.dm b/code/modules/modular_computers/file_system/programs/borg_monitor.dm index 0f9197272059f..70e7f657ae0c5 100644 --- a/code/modules/modular_computers/file_system/programs/borg_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/borg_monitor.dm @@ -26,8 +26,8 @@ DL_progress = 0 return ..() -/datum/computer_file/program/borg_monitor/tap(atom/A, mob/living/user, params) - var/mob/living/silicon/robot/borgo = A +/datum/computer_file/program/borg_monitor/tap(atom/tapped_atom, mob/living/user, list/modifiers) + var/mob/living/silicon/robot/borgo = tapped_atom if(!istype(borgo) || !borgo.modularInterface) return FALSE DL_source = borgo @@ -39,6 +39,7 @@ username = "user [stored_card.registered_name]" to_chat(borgo, span_userdanger("Request received from [username] for the system log file. Upload in progress."))//Damning evidence may be contained, so warn the borg borgo.logevent("File request by [username]: /var/logs/syslog") + borgo.balloon_alert(user, "downloading logs") return TRUE /datum/computer_file/program/borg_monitor/process_tick(seconds_per_tick) diff --git a/code/modules/modular_computers/file_system/programs/budgetordering.dm b/code/modules/modular_computers/file_system/programs/budgetordering.dm index 511c664c137ab..b05237436a13c 100644 --- a/code/modules/modular_computers/file_system/programs/budgetordering.dm +++ b/code/modules/modular_computers/file_system/programs/budgetordering.dm @@ -94,13 +94,18 @@ ) if((P.hidden && (P.contraband && !contraband) || (P.special && !P.special_enabled) || P.drop_pod_only)) continue + + var/obj/item/first_item = length(P.contains) > 0 ? P.contains[1] : null data["supplies"][P.group]["packs"] += list(list( "name" = P.name, "cost" = P.get_cost(), "id" = pack, "desc" = P.desc || P.name, // If there is a description, use it. Otherwise use the pack's name. + "first_item_icon" = first_item?.icon, + "first_item_icon_state" = first_item?.icon_state, "goody" = P.goody, - "access" = P.access + "access" = P.access, + "contains" = P.get_contents_ui_data(), )) //Data regarding the User's capability to buy things. diff --git a/code/modules/modular_computers/file_system/programs/coupon.dm b/code/modules/modular_computers/file_system/programs/coupon.dm index e84277f043e8f..b5d49a258d890 100644 --- a/code/modules/modular_computers/file_system/programs/coupon.dm +++ b/code/modules/modular_computers/file_system/programs/coupon.dm @@ -88,7 +88,7 @@ * Normally, modular PCs can be print paper already, but I find this additional step * to be less lazy and fitting to the "I gotta go print it before it expires" aspect of it. */ -/datum/computer_file/program/coupon/tap(atom/tapped_atom, mob/living/user, params) +/datum/computer_file/program/coupon/tap(atom/tapped_atom, mob/living/user, list/modifiers) if(!istype(tapped_atom, /obj/machinery/photocopier)) return FALSE var/obj/item/card/id/user_id = computer.computer_id_slot diff --git a/code/modules/modular_computers/file_system/programs/dept_order.dm b/code/modules/modular_computers/file_system/programs/dept_order.dm index 6d0ed91f29057..d8f3377114b15 100644 --- a/code/modules/modular_computers/file_system/programs/dept_order.dm +++ b/code/modules/modular_computers/file_system/programs/dept_order.dm @@ -1,3 +1,6 @@ +/// Stores an override value for the order cooldown to be used by the Dpt. Order Cooldown button in the secrets menu. When null, the override is not active. +GLOBAL_VAR(department_cd_override) + /datum/computer_file/program/department_order filename = "dept_order" filedesc = "Departmental Orders" @@ -29,18 +32,16 @@ ) /// Reference to the order we've made UNTIL it gets sent on the supply shuttle. this is so heads can cancel it VAR_PRIVATE/datum/supply_order/department_order - /// Our radio object we use to talk to our department. - VAR_PRIVATE/obj/item/radio/radio /// The radio channel we will speak into by default. VAR_PRIVATE/radio_channel - /// Maps what department gets what encryption key + /// Maps what department should report to what radio channel /// I could've put this on the job department datum but it felt unnecessary - VAR_PRIVATE/static/list/dept_to_radio = list( - /datum/job_department/engineering = /obj/item/encryptionkey/headset_eng, - /datum/job_department/medical = /obj/item/encryptionkey/headset_med, - /datum/job_department/science = /obj/item/encryptionkey/headset_sci, - /datum/job_department/security = /obj/item/encryptionkey/headset_sec, - /datum/job_department/service = /obj/item/encryptionkey/headset_service, + VAR_PRIVATE/static/list/dept_to_radio_channel = list( + /datum/job_department/engineering = RADIO_CHANNEL_ENGINEERING, + /datum/job_department/medical = RADIO_CHANNEL_MEDICAL, + /datum/job_department/science = RADIO_CHANNEL_SCIENCE, + /datum/job_department/security = RADIO_CHANNEL_SECURITY, + /datum/job_department/service = RADIO_CHANNEL_SERVICE, ) /// Sets the passed department type as the active department for this computer file. @@ -53,22 +54,10 @@ use_access |= linked_department_real.head_of_staff_access use_access |= linked_department_real.department_access // Also set up the radio - if(dept_to_radio[linked_department]) - if(!isnull(radio)) - QDEL_NULL(radio) - var/picked_key = dept_to_radio[linked_department] || /obj/item/encryptionkey/headset_cargo - radio = new(computer) - radio.keyslot = new picked_key() - radio.subspace_transmission = TRUE - radio.canhear_range = 0 - radio.recalculateChannels() - radio_channel = radio.keyslot.channels[1] + if(dept_to_radio_channel[linked_department]) + radio_channel = dept_to_radio_channel[linked_department] || RADIO_CHANNEL_SUPPLY computer.update_static_data_for_all_viewers() -/datum/computer_file/program/department_order/Destroy() - QDEL_NULL(radio) - return ..() - /datum/computer_file/program/department_order/ui_interact(mob/user, datum/tgui/ui) check_cooldown() @@ -241,6 +230,9 @@ SSshuttle.shopping_list += department_order if(!already_signalled) RegisterSignal(SSshuttle, COMSIG_SUPPLY_SHUTTLE_BUY, PROC_REF(finalize_department_order)) + if(!alert_silenced && alert_able) + aas_config_announce(/datum/aas_config_entry/department_orders, list("ORDER" = pack.name, "PERSON" = name), computer.physical, list(radio_channel), "Order Placed") + aas_config_announce(/datum/aas_config_entry/department_orders_cargo, list("DEPARTMENT" = linked_department.department_name), computer.physical, list(RADIO_CHANNEL_SUPPLY)) computer.physical.say("Order processed. Cargo will deliver the crate when it comes in on their shuttle. NOTICE: Heads of staff may override the order.") calculate_cooldown(pack.cost) @@ -253,13 +245,17 @@ /// Calculates the cooldown it will take for this department's free order, based on its credit cost /datum/computer_file/program/department_order/proc/calculate_cooldown(credits) - var/time_y = DEPARTMENTAL_ORDER_COOLDOWN_COEFFICIENT * (log(10, credits) ** DEPARTMENTAL_ORDER_COOLDOWN_EXPONENT) * (1 SECONDS) - department_cooldowns[linked_department] = world.time + time_y + if(isnull(GLOB.department_cd_override)) + var/time_y = DEPARTMENTAL_ORDER_COOLDOWN_COEFFICIENT * (log(10, credits) ** DEPARTMENTAL_ORDER_COOLDOWN_EXPONENT) * (1 SECONDS) + department_cooldowns[linked_department] = world.time + time_y + else + var/time_y = GLOB.department_cd_override SECONDS + department_cooldowns[linked_department] = world.time + time_y /datum/computer_file/program/department_order/process_tick(seconds_per_tick) if(!check_cooldown() || alert_silenced || !alert_able) return - radio?.talk_into(computer, "Order cooldown has expired! A new order may now be placed!", radio_channel) + aas_config_announce(/datum/aas_config_entry/department_orders, list(), computer.physical, list(radio_channel), "Cooldown Reset") computer.alert_call(src, "Order cooldown expired!", 'sound/machines/ping.ogg') /// Checks if the cooldown is up and resets it if so. @@ -268,3 +264,23 @@ department_cooldowns[linked_department] = 0 return TRUE return FALSE + +/datum/aas_config_entry/department_orders + name = "Departmental Order Announcement" + announcement_lines_map = list( + "Order Placed" = "A department order has been placed by %PERSON for %ORDER.", + "Cooldown Reset" = "Department order cooldown has expired! A new order may now be placed!", + ) + vars_and_tooltips_map = list( + "ORDER" = "will be replaced with the package name", + "PERSON" = "with the orderer's name", + ) + +/datum/aas_config_entry/department_orders_cargo + name = "Cargo Alert: New Departmental Order" + announcement_lines_map = list( + "Message" = "New %DEPARTMENT departmental order has been placed" + ) + vars_and_tooltips_map = list( + "DEPARTMENT" = "will be replaced with orderer's department." + ) diff --git a/code/modules/modular_computers/file_system/programs/maintenance/camera.dm b/code/modules/modular_computers/file_system/programs/maintenance/camera.dm index e62aa35a6088c..b7934c9c0b3e1 100644 --- a/code/modules/modular_computers/file_system/programs/maintenance/camera.dm +++ b/code/modules/modular_computers/file_system/programs/maintenance/camera.dm @@ -35,7 +35,7 @@ QDEL_NULL(internal_picture) return ..() -/datum/computer_file/program/maintenance/camera/tap(atom/tapped_atom, mob/living/user, params) +/datum/computer_file/program/maintenance/camera/tap(atom/tapped_atom, mob/living/user, list/modifiers) . = ..() if(internal_picture) QDEL_NULL(internal_picture) diff --git a/code/modules/modular_computers/file_system/programs/maintenance/phys_scanner.dm b/code/modules/modular_computers/file_system/programs/maintenance/phys_scanner.dm index 7cf05170eb827..8db2d1ddc5421 100644 --- a/code/modules/modular_computers/file_system/programs/maintenance/phys_scanner.dm +++ b/code/modules/modular_computers/file_system/programs/maintenance/phys_scanner.dm @@ -10,7 +10,7 @@ /// Information from the last scanned person, to display on the app. var/last_record = "" -/datum/computer_file/program/maintenance/phys_scanner/tap(atom/tapped_atom, mob/living/user, params) +/datum/computer_file/program/maintenance/phys_scanner/tap(atom/tapped_atom, mob/living/user, list/modifiers) . = ..() if(!iscarbon(tapped_atom)) diff --git a/code/modules/modular_computers/file_system/programs/secureye.dm b/code/modules/modular_computers/file_system/programs/secureye.dm index ad90e736c9518..5490744c623a9 100644 --- a/code/modules/modular_computers/file_system/programs/secureye.dm +++ b/code/modules/modular_computers/file_system/programs/secureye.dm @@ -13,6 +13,7 @@ size = 5 tgui_id = "NtosSecurEye" program_icon = "eye" + always_update_ui = TRUE ///Boolean on whether or not the app will make noise when flipping around the channels. var/spying = FALSE diff --git a/code/modules/modular_computers/file_system/programs/virtual_pet.dm b/code/modules/modular_computers/file_system/programs/virtual_pet.dm index a52a0c37aaf93..9047e3014e6d5 100644 --- a/code/modules/modular_computers/file_system/programs/virtual_pet.dm +++ b/code/modules/modular_computers/file_system/programs/virtual_pet.dm @@ -17,6 +17,7 @@ GLOBAL_LIST_EMPTY(virtual_pets_list) filedesc = "Virtual Pet" downloader_category = PROGRAM_CATEGORY_GAMES extended_desc = "Download your very own Orbie today!" + program_open_overlay = "generic" program_flags = PROGRAM_ON_NTNET_STORE size = 3 tgui_id = "NtosVirtualPet" diff --git a/code/modules/paperwork/paper_cutter.dm b/code/modules/paperwork/paper_cutter.dm index 10aad59001a24..f155123c13fe2 100644 --- a/code/modules/paperwork/paper_cutter.dm +++ b/code/modules/paperwork/paper_cutter.dm @@ -113,9 +113,12 @@ /obj/item/papercutter/attackby(obj/item/inserted_item, mob/user, params) if(istype(inserted_item, /obj/item/paper)) if(is_type_in_list(inserted_item, list( - /obj/item/paper/paperslip, /obj/item/paper/report, /obj/item/paper/fake_report, - /obj/item/paper/calling_card, /obj/item/paper/pamphlet, /obj/item/paper/holy_writ) - )) + /obj/item/paper/fake_report, + /obj/item/paper/holy_writ, + /obj/item/paper/pamphlet, + /obj/item/paper/paperslip, + /obj/item/paper/report, + ))) balloon_alert(user, "won't fit!") return if(stored_paper) diff --git a/code/modules/plumbing/plumbers/_plumb_reagents.dm b/code/modules/plumbing/plumbers/_plumb_reagents.dm index 92097e2e1e912..a19b5e492cd1c 100644 --- a/code/modules/plumbing/plumbers/_plumb_reagents.dm +++ b/code/modules/plumbing/plumbers/_plumb_reagents.dm @@ -55,7 +55,6 @@ transfer_reactions(target_holder) var/list/cached_reagents = reagent_list - var/list/reagents_to_remove = list() var/transfer_amount var/transfered_amount var/total_transfered_amount = 0 @@ -93,23 +92,18 @@ transfered_amount = target_holder.add_reagent(reagent.type, transfer_amount, copy_data(reagent), chem_temp, reagent.purity, reagent.ph, no_react = TRUE, ignore_splitting = reagent.chemical_flags & REAGENT_DONOTSPLIT) //we only handle reaction after every reagent has been transferred. if(!transfered_amount) continue - reagents_to_remove += list(list("R" = reagent, "T" = transfer_amount)) total_transfered_amount += transfered_amount if(round_robin) to_transfer -= transfered_amount + reagent.volume -= transfered_amount if(!isnull(target_id)) break - - //remove chemicals that were added above - for(var/list/data as anything in reagents_to_remove) - var/datum/reagent/reagent = data["R"] - transfer_amount = data["T"] - remove_reagent(reagent.type, transfer_amount) + update_total() //handle reactions target_holder.handle_reactions() - src.handle_reactions() + handle_reactions() return total_transfered_amount @@ -199,7 +193,6 @@ //Set up new reagents to inherit the old ongoing reactions transfer_reactions(target_holder) - var/list/reagents_to_remove = list() var/working_volume var/catalyst_volume var/transfer_amount @@ -247,22 +240,17 @@ transfered_amount = target_holder.add_reagent(reagent.type, transfer_amount, copy_data(reagent), chem_temp, reagent.purity, reagent.ph, no_react = TRUE, ignore_splitting = reagent.chemical_flags & REAGENT_DONOTSPLIT) //we only handle reaction after every reagent has been transferred. if(!transfered_amount) continue - reagents_to_remove += list(list("R" = reagent, "T" = transfer_amount)) total_transfered_amount += transfered_amount if(round_robin) to_transfer -= transfered_amount + reagent.volume -= transfered_amount if(!isnull(target_id)) break - - //remove chemicals that were added above - for(var/list/data as anything in reagents_to_remove) - var/datum/reagent/reagent = data["R"] - transfer_amount = data["T"] - remove_reagent(reagent.type, transfer_amount) + update_total() //handle reactions target_holder.handle_reactions() - src.handle_reactions() + handle_reactions() return total_transfered_amount diff --git a/code/modules/power/rtg.dm b/code/modules/power/rtg.dm index 69693af3a4a92..99f61186180d7 100644 --- a/code/modules/power/rtg.dm +++ b/code/modules/power/rtg.dm @@ -112,7 +112,7 @@ name = "Lava powered RTG" desc = "This device only works when exposed to the toxic fumes of Lavaland" circuit = null - power_gen = 1500 + power_gen = 20000 anchored = TRUE resistance_flags = LAVA_PROOF diff --git a/code/modules/power/turbine/turbine.dm b/code/modules/power/turbine/turbine.dm index be10a0de311fb..e2d470108505a 100644 --- a/code/modules/power/turbine/turbine.dm +++ b/code/modules/power/turbine/turbine.dm @@ -411,8 +411,6 @@ var/damage = 0 ///Used to calculate the max damage received per tick and if the alarm should be called var/damage_archived = 0 - ///Our internal radio - var/obj/item/radio/radio COOLDOWN_DECLARE(turbine_damage_alert) @@ -420,17 +418,8 @@ //Volume of gas mixture is 3000 . = ..(mapload, gas_theoretical_volume = 3000) - radio = new(src) - radio.keyslot = new /obj/item/encryptionkey/headset_eng - radio.set_listening(FALSE) - radio.recalculateChannels() - new /obj/item/paper/guides/jobs/atmos/turbine(loc) -/obj/machinery/power/turbine/core_rotor/Destroy() - QDEL_NULL(radio) - return ..() - /obj/machinery/power/turbine/core_rotor/add_context(atom/source, list/context, obj/item/held_item, mob/user) . = ..() if(. == NONE) @@ -670,7 +659,7 @@ explosion(src, 2, 5, 7) return PROCESS_KILL - radio.talk_into(src, "Warning, turbine at [get_area_name(src)] taking damage, current integrity at [integrity]%!", RADIO_CHANNEL_ENGINEERING) + aas_config_announce(/datum/aas_config_entry/engineering_turbine_failure, list("INTEGRITY" = integrity, "LOCATION" = get_area_name(src)), src, list(RADIO_CHANNEL_ENGINEERING)) playsound(src, 'sound/machines/engine_alert/engine_alert1.ogg', 100, FALSE, 30, 30, falloff_distance = 10) //================ROTOR WORKING============// @@ -707,5 +696,15 @@ -Each tier increases the efficiency (more power), the max reachable RPM, and the max temperature that the machine can process without taking damage (up to fusion temperatures at the last tier!).
\ -A word of warning, the machine is very inefficient in its gas consumption and many unburnt gases will pass through. If you want to be cheap you can either pre-burn the gases or add a filtering system to collect the unburnt gases and reuse them." +/datum/aas_config_entry/engineering_turbine_failure + name = "Engineering Alert: Turbine Failure" + announcement_lines_map = list( + "Message" = "Warning, turbine at %LOCATION taking damage, current integrity at %INTEGRITY%!", + ) + vars_and_tooltips_map = list( + "LOCATION" = "will be replaced with location of the turbine.", + "INTEGRITY" = "with the current integrity of the turbine.", + ) + #undef PRESSURE_MAX #undef MINIMUM_TURBINE_PRESSURE diff --git a/code/modules/procedural_mapping/mapGenerators/repair.dm b/code/modules/procedural_mapping/mapGenerators/repair.dm index da086773591de..e33f3e1f0cc42 100644 --- a/code/modules/procedural_mapping/mapGenerators/repair.dm +++ b/code/modules/procedural_mapping/mapGenerators/repair.dm @@ -50,8 +50,9 @@ require_area_resort() var/list/generation_turfs = block( - locate(bounds[MAP_MINX], bounds[MAP_MINY], SSmapping.station_start), - locate(bounds[MAP_MAXX], bounds[MAP_MAXY], z_offset - 1)) + bounds[MAP_MINX], bounds[MAP_MINY], SSmapping.station_start, + bounds[MAP_MAXX], bounds[MAP_MAXY], z_offset - 1 + ) for(var/turf/gen_turf as anything in generation_turfs) atoms += gen_turf for(var/atom in gen_turf) diff --git a/code/modules/projectiles/boxes_magazines/internal/pistol.dm b/code/modules/projectiles/boxes_magazines/internal/pistol.dm new file mode 100644 index 0000000000000..eb30f96aaed21 --- /dev/null +++ b/code/modules/projectiles/boxes_magazines/internal/pistol.dm @@ -0,0 +1,5 @@ +/obj/item/ammo_box/magazine/internal/doorhickey + name = "single-shot barrel" + ammo_type = /obj/item/ammo_casing/c10mm + caliber = CALIBER_10MM + max_ammo = 1 diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 38b4cd8ce25f1..7f750802e7970 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -198,7 +198,7 @@ shake_camera(user, recoil + 1, recoil) fire_sounds() if(suppressed || !message) - return + return FALSE if(tk_firing(user)) visible_message( span_danger("[src] fires itself[pointblank ? " point blank at [pbtarget]!" : "!"]"), @@ -226,6 +226,7 @@ if(chambered?.integrity_damage) take_damage(chambered.integrity_damage, sound_effect = FALSE) + return TRUE /obj/item/gun/atom_destruction(damage_flag) if(!isliving(loc)) @@ -496,10 +497,12 @@ else shoot_with_empty_chamber(user) return - process_chamber() - update_appearance() - semicd = TRUE - addtimer(CALLBACK(src, PROC_REF(reset_semicd)), modified_delay) + // If gun gets destroyed as a result of firing + if (!QDELETED(src)) + process_chamber() + update_appearance() + semicd = TRUE + addtimer(CALLBACK(src, PROC_REF(reset_semicd)), modified_delay) if(user) user.update_held_items() diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 6f865171580b2..13a0c8f98d560 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -8,6 +8,7 @@ pickup_sound = 'sound/items/handling/gun/gun_pick_up.ogg' drop_sound = 'sound/items/handling/gun/gun_drop.ogg' sound_vary = TRUE + unique_reskin_changes_base_icon_state = TRUE ///sound when inserting magazine var/load_sound = 'sound/items/weapons/gun/general/magazine_insert_full.ogg' @@ -201,11 +202,8 @@ update_appearance() /obj/item/gun/ballistic/update_icon_state() - if(current_skin) - icon_state = "[unique_reskin[current_skin]][sawn_off ? "_sawn" : ""]" - else - icon_state = "[base_icon_state || initial(icon_state)][sawn_off ? "_sawn" : ""]" - return ..() + . = ..() + icon_state = "[base_icon_state || initial(icon_state)][sawn_off ? "_sawn" : ""]" /obj/item/gun/ballistic/update_overlays() . = ..() @@ -401,62 +399,74 @@ /obj/item/gun/ballistic/can_shoot() return chambered?.loaded_projectile -/obj/item/gun/ballistic/attackby(obj/item/A, mob/user, params) +/obj/item/gun/ballistic/item_interaction(mob/living/user, obj/item/tool, list/modifiers) . = ..() if (.) return - if (!internal_magazine && istype(A, /obj/item/ammo_box/magazine)) - var/obj/item/ammo_box/magazine/AM = A + + if (!internal_magazine && istype(tool, /obj/item/ammo_box/magazine)) if (!magazine) - insert_magazine(user, AM) - else - if (tac_reloads) - eject_magazine(user, FALSE, AM) - else - balloon_alert(user, "already loaded!") - return - if (isammocasing(A) || istype(A, /obj/item/ammo_box)) + insert_magazine(user, tool) + return ITEM_INTERACT_SUCCESS + + if (tac_reloads) + eject_magazine(user, FALSE, tool) + return ITEM_INTERACT_SUCCESS + + balloon_alert(user, "already loaded!") + return ITEM_INTERACT_FAILURE + + if (isammocasing(tool) || istype(tool, /obj/item/ammo_box)) if (must_hold_to_load && !check_if_held(user)) - return + return NONE + if (bolt_type == BOLT_TYPE_NO_BOLT || internal_magazine) - if (chambered && !chambered.loaded_projectile) - chambered.forceMove(drop_location()) - if(chambered != magazine?.stored_ammo[1]) - magazine.stored_ammo -= chambered - chambered = null - var/num_loaded = magazine?.attackby(A, user, params, TRUE) - if (num_loaded) - balloon_alert(user, "[num_loaded] [cartridge_wording]\s loaded") - playsound(src, load_sound, load_sound_volume, load_sound_vary) - if (chambered == null && bolt_type == BOLT_TYPE_NO_BOLT) - chamber_round() - A.update_appearance() - update_appearance() - return - if(istype(A, /obj/item/suppressor)) - var/obj/item/suppressor/S = A + if (load_gun(tool, user)) + return ITEM_INTERACT_SUCCESS + return ITEM_INTERACT_FAILURE + + if(istype(tool, /obj/item/suppressor)) if(!can_suppress) - balloon_alert(user, "[S.name] doesn't fit!") - return + balloon_alert(user, "[tool.name] doesn't fit!") + return ITEM_INTERACT_FAILURE + if(!user.is_holding(src)) balloon_alert(user, "not in hand!") - return + return ITEM_INTERACT_FAILURE + if(suppressed) balloon_alert(user, "already has a supressor!") - return - if(user.transferItemToLoc(A, src)) - balloon_alert(user, "[S.name] attached") - install_suppressor(A) - return - if (can_be_sawn_off) - if (sawoff(user, A)) - return + return ITEM_INTERACT_FAILURE - if(misfire_probability && istype(A, /obj/item/stack/sheet/cloth)) - if(guncleaning(user, A)) - return + if(!user.transferItemToLoc(tool, src)) + balloon_alert(user, "cannot attach!") + return ITEM_INTERACT_FAILURE + + balloon_alert(user, "[tool.name] attached") + install_suppressor(tool) + return ITEM_INTERACT_SUCCESS - return FALSE + if (can_be_sawn_off && sawoff(user, tool)) + return ITEM_INTERACT_SUCCESS + +/obj/item/gun/ballistic/proc/load_gun(obj/item/ammo, mob/living/user) + if (chambered && !chambered.loaded_projectile) + chambered.forceMove(drop_location()) + if(chambered != magazine?.stored_ammo[1]) + magazine.stored_ammo -= chambered + chambered = null + + var/num_loaded = magazine?.attackby(ammo, user, silent = TRUE) + if (!num_loaded) + return FALSE + + balloon_alert(user, "[num_loaded] [cartridge_wording]\s loaded") + playsound(src, load_sound, load_sound_volume, load_sound_vary) + if (chambered == null && bolt_type == BOLT_TYPE_NO_BOLT) + chamber_round() + ammo.update_appearance() + update_appearance() + return TRUE /obj/item/gun/ballistic/proc/check_if_held(mob/user) if(src != user.get_inactive_held_item()) @@ -546,20 +556,7 @@ eject_magazine(user) return if(bolt_type == BOLT_TYPE_NO_BOLT) - var/num_unloaded = 0 - for(var/obj/item/ammo_casing/casing as anything in get_ammo_list(FALSE)) - casing.forceMove(drop_location()) - casing.bounce_away(FALSE, NONE) - num_unloaded++ - var/turf/T = get_turf(drop_location()) - if(T && is_station_level(T.z)) - SSblackbox.record_feedback("tally", "station_mess_created", 1, casing.name) - if (num_unloaded) - balloon_alert(user, "[num_unloaded] [cartridge_wording]\s unloaded") - playsound(user, eject_sound, eject_sound_volume, eject_sound_vary) - update_appearance() - else - balloon_alert(user, "it's empty!") + unload_ammo(user) return if(bolt_type == BOLT_TYPE_LOCKING && bolt_locked) drop_bolt(user) @@ -570,6 +567,25 @@ rack(user) return +/obj/item/gun/ballistic/proc/unload_ammo(mob/living/user, forced = FALSE) + var/num_unloaded = 0 + var/turf/drop_turf = get_turf(drop_location()) + for(var/obj/item/ammo_casing/casing as anything in get_ammo_list(FALSE)) + casing.forceMove(drop_location()) + casing.bounce_away(FALSE, NONE) + num_unloaded++ + if(drop_turf && is_station_level(drop_turf.z)) + SSblackbox.record_feedback("tally", "station_mess_created", 1, casing.name) + + if (!num_unloaded) + if (!forced) + balloon_alert(user, "it's empty!") + return + + if (!forced) + balloon_alert(user, "[num_unloaded] [cartridge_wording]\s unloaded") + playsound(user, eject_sound, eject_sound_volume, eject_sound_vary) + update_appearance() /obj/item/gun/ballistic/examine(mob/user) . = ..() @@ -685,19 +701,6 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list( update_appearance() return TRUE -/obj/item/gun/ballistic/proc/guncleaning(mob/user, obj/item/A) - if(misfire_probability == initial(misfire_probability)) - balloon_alert(user, "it's already clean!") - return - - user.changeNext_move(CLICK_CD_MELEE) - balloon_alert(user, "cleaning...") - - if(do_after(user, 10 SECONDS, target = src)) - misfire_probability = initial(misfire_probability) - balloon_alert(user, "fouling cleaned out") - return TRUE - /obj/item/gun/ballistic/wrench_act(mob/living/user, obj/item/I) if(!can_modify_ammo) return diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm index afe35b9626550..33e59472b07cf 100644 --- a/code/modules/projectiles/guns/ballistic/pistol.dm +++ b/code/modules/projectiles/guns/ballistic/pistol.dm @@ -212,3 +212,117 @@ else to_chat(user, span_notice("..and falls into view. Whew, that was a close one.")) user.dropItemToGround(src) + +#define DOORHICKEY_GUN_MIN_DAMAGE 70 +#define DOORHICKEY_GUN_MAX_DAMAGE 140 + +/obj/item/gun/ballistic/automatic/pistol/doorhickey + name = "\improper Liberator" + desc = "A poorly made 3D printed \"gun\", only capable of firing a single shot. Well-known throughout the Spinward Sector \ + after an incident where 3 assistants were killed by shrapnel from such a device exploding while attempting to shoot a mouse." + icon_state = "doorhickey" + custom_materials = list(/datum/material/plastic = SHEET_MATERIAL_AMOUNT * 2) + bolt_type = BOLT_TYPE_NO_BOLT + internal_magazine = TRUE + casing_ejector = FALSE + force = 10 + max_integrity = 100 + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/doorhickey + can_suppress = FALSE + semi_auto = FALSE + show_bolt_icon = FALSE + projectile_damage_multiplier = 0.5 + spread = 10 + +/obj/item/gun/ballistic/automatic/pistol/doorhickey/unload_ammo(mob/living/user, forced = FALSE) + if (forced) + return ..() + + balloon_alert(user, "unscrewing the barrel...") + playsound(user, 'sound/items/tools/screwdriver_operating.ogg', 75, FALSE, MEDIUM_RANGE_SOUND_EXTRARANGE) + if (!do_after(user, 2 SECONDS, src)) + balloon_alert(user, "interrupted!") + return + . = ..() + +/obj/item/gun/ballistic/automatic/pistol/doorhickey/load_gun(obj/item/ammo, mob/living/user) + . = ..() + if (!.) + return + + balloon_alert(user, "screwing the barrel on...") + playsound(user, 'sound/items/tools/screwdriver_operating.ogg', 75, FALSE, MEDIUM_RANGE_SOUND_EXTRARANGE) + if (do_after(user, 2 SECONDS, src)) + return TRUE + + balloon_alert(user, "interrupted!") + unload_ammo(user, forced = TRUE) + return FALSE + +/obj/item/gun/ballistic/automatic/pistol/doorhickey/fire_gun(atom/target, mob/living/user, flag, params) + var/dmg_multiplier = 1 + + if (get_dist(target, user) <= 1) + dmg_multiplier *= 2 + + if (isliving(target)) + var/mob/living/victim = target + var/datum/status_effect/grouped/heldup/gunpoint = victim.has_status_effect(/datum/status_effect/grouped/heldup) + if (gunpoint) + for (var/datum/weakref/pointer_ref as anything in gunpoint.sources) + if (pointer_ref.resolve() == user) + dmg_multiplier *= 1.5 // Caps at 60 damage + break + + projectile_damage_multiplier *= dmg_multiplier + . = ..() + projectile_damage_multiplier /= dmg_multiplier + +/obj/item/gun/ballistic/automatic/pistol/doorhickey/shoot_live_shot(mob/living/user, pointblank = FALSE, atom/pbtarget = null, message = TRUE) + . = ..() + if (!.) + return + + var/damage_to_take = rand(DOORHICKEY_GUN_MIN_DAMAGE, DOORHICKEY_GUN_MAX_DAMAGE) + if (atom_integrity > damage_to_take) + take_damage(damage_to_take) + return + + playsound(loc, SFX_SHATTER, 75, TRUE) + if (loc != user) + take_damage(damage_to_take) + return + + var/shrapnel_bomb = FALSE + var/obj/item/bodypart/arm/poor_sod = user.get_active_hand() + if (prob(damage_to_take - atom_integrity) && poor_sod) + shrapnel_bomb = TRUE + + user.visible_message(span_danger("[src] explodes into small pieces[shrapnel_bomb ? ", chunk of it embedding in [user]'s [user.parse_zone_with_bodypart(poor_sod.body_zone)]" : ""]!"), + span_userdanger("[src] explodes into small pieces[shrapnel_bomb ? ", chunk of it embedding in your [poor_sod]!" : ""]!"), + span_hear("You can hear sound of plastic shattering.")) + + if (poor_sod) + poor_sod.receive_damage((damage_to_take - atom_integrity) * 0.5, wound_bonus = -10, bare_wound_bonus = 20, sharpness = SHARP_EDGED, damage_source = src) + else + user.take_bodypart_damage((damage_to_take - atom_integrity) * 0.5, wound_bonus = -10, bare_wound_bonus = 20, sharpness = SHARP_EDGED) + + if (shrapnel_bomb) + var/obj/item/shrapnel/plastic/shrapnel = new(user.loc) + if (!shrapnel.force_embed(user, poor_sod)) + qdel(shrapnel) + else if(!HAS_TRAIT(user, TRAIT_ANALGESIA)) + user.emote("scream") + + new /obj/effect/decal/cleanable/plastic(get_turf(src)) + take_damage(damage_to_take) + +/obj/item/disk/design_disk/liberator + name = "illegal 3D printer design disk" + +/obj/item/disk/design_disk/liberator/Initialize(mapload) + . = ..() + blueprints += new /datum/design/liberator_gun + +#undef DOORHICKEY_GUN_MIN_DAMAGE +#undef DOORHICKEY_GUN_MAX_DAMAGE diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index 5f74051b9b15c..786d910e34ac0 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -110,6 +110,7 @@ desc = "A classic, if not outdated, lethal firearm. Uses .38 Special rounds." accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38 icon_state = "c38" + base_icon_state = "c38" fire_sound = 'sound/items/weapons/gun/revolver/shot.ogg' /obj/item/gun/ballistic/revolver/c38/detective diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index 0c0bcf18b00e2..2c41389c2305a 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -77,17 +77,16 @@ update_appearance() /obj/item/gun/ballistic/rifle/boltaction/attack_self(mob/user) - if(can_jam) - if(jammed) - if(prob(unjam_chance)) - jammed = FALSE - unjam_chance = 10 - else - unjam_chance += 10 - balloon_alert(user, "jammed!") - playsound(user,'sound/items/weapons/jammed.ogg', 75, TRUE) - return FALSE - ..() + if(jammed) + if(prob(unjam_chance)) + jammed = FALSE + unjam_chance = initial(unjam_chance) + else + unjam_chance += 10 + balloon_alert(user, "jammed!") + playsound(user,'sound/items/weapons/jammed.ogg', 75, TRUE) + return FALSE + return ..() /obj/item/gun/ballistic/rifle/boltaction/process_fire(mob/user) if(can_jam) @@ -105,15 +104,6 @@ . = ..() - if(istype(item, /obj/item/gun_maintenance_supplies)) - if(!can_jam) - balloon_alert(user, "can't jam!") - return - if(do_after(user, 10 SECONDS, target = src)) - user.visible_message(span_notice("[user] finishes maintaining [src].")) - jamming_chance = initial(jamming_chance) - qdel(item) - /obj/item/gun/ballistic/rifle/boltaction/blow_up(mob/user) . = FALSE if(chambered?.loaded_projectile) diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index fe808bcf79865..ca953e0b773a1 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -267,6 +267,7 @@ name = "double-barreled shotgun" desc = "A true classic." icon_state = "dshotgun" + base_icon_state = "dshotgun" inhand_icon_state = "shotgun_db" w_class = WEIGHT_CLASS_BULKY weapon_weight = WEAPON_MEDIUM diff --git a/code/modules/projectiles/projectile/bullets/special.dm b/code/modules/projectiles/projectile/bullets/special.dm index cd1439cbb01ae..1c9a5e4f38214 100644 --- a/code/modules/projectiles/projectile/bullets/special.dm +++ b/code/modules/projectiles/projectile/bullets/special.dm @@ -23,7 +23,7 @@ if(M.can_block_magic()) return BULLET_ACT_BLOCK else - M.slip(100, M.loc, GALOSHES_DONT_HELP|SLIDE, 0, FALSE) + M.slip(100, M.loc, GALOSHES_DONT_HELP|SLIDE) // Mime diff --git a/code/modules/reagents/chem_splash.dm b/code/modules/reagents/chem_splash.dm index ebc02c308964d..4c4ad4075d847 100644 --- a/code/modules/reagents/chem_splash.dm +++ b/code/modules/reagents/chem_splash.dm @@ -43,11 +43,11 @@ tmp_holder = FALSE original_max_volume = holder.maximum_volume if(threatscale < 1) - holder.multiply_reagents(threatscale) + holder.multiply(threatscale) holder.maximum_volume = maximum_reagents * threatscale else holder.maximum_volume = maximum_reagents * threatscale - holder.multiply_reagents(threatscale) + holder.multiply(threatscale) for(var/datum/reagents/reactant as anything in reactants) reactant.trans_to(holder, reactant.total_volume, threatscale, no_react = TRUE) diff --git a/code/modules/reagents/chemistry/holder/holder.dm b/code/modules/reagents/chemistry/holder/holder.dm index 3815494afa003..d0a09c113bc69 100644 --- a/code/modules/reagents/chemistry/holder/holder.dm +++ b/code/modules/reagents/chemistry/holder/holder.dm @@ -1,6 +1,3 @@ -#define REAGENT_TRANSFER_AMOUNT "amount" -#define REAGENT_PURITY "purity" - ///////////////////////////////Main reagents code///////////////////////////////////////////// /// Holder for a bunch of [/datum/reagent] @@ -377,7 +374,7 @@ //add the new target reagent with the averaged values from the source reagents if(weighted_volume > 0) update_total() - add_reagent(target_reagent_typepath, weighted_volume * multiplier, reagtemp = chem_temp, added_purity = (weighted_purity / weighted_volume), override_base_ph = TRUE, added_ph = (weighted_ph / weighted_volume)) + add_reagent(target_reagent_typepath, weighted_volume * multiplier, reagtemp = chem_temp, added_purity = (weighted_purity / weighted_volume), added_ph = (weighted_ph / weighted_volume)) /// Removes all reagents /datum/reagents/proc/clear_reagents() @@ -496,7 +493,7 @@ continue if(methods) r_to_send += reagent - reagents_to_remove += list(list("R" = reagent, "T" = transfer_amount)) + reagents_to_remove[reagent] = transfer_amount total_transfered_amount += transfered_amount if(!isnull(target_id)) @@ -507,26 +504,29 @@ target_holder.expose(isorgan(target_atom) ? target : target_atom, methods, part, show_message, r_to_send) //remove chemicals that were added above - for(var/list/data as anything in reagents_to_remove) - var/datum/reagent/reagent = data["R"] - transfer_amount = data["T"] + for(var/datum/reagent/reagent as anything in reagents_to_remove) + transfer_amount = reagents_to_remove[reagent] if(methods) reagent.on_transfer(target_atom, methods, transfer_amount) - remove_reagent(reagent.type, transfer_amount) - transfer_log[reagent.type] = list(REAGENT_TRANSFER_AMOUNT = transfer_amount, REAGENT_PURITY = reagent.purity) + reagent.volume -= transfer_amount + update_total() + transfer_log += "[reagent.type] ([transfer_amount]u, [reagent.purity] purity)" //combat log if(transferred_by && target_atom) + //logging mob holder var/atom/log_target = target_atom if(isorgan(target_atom)) var/obj/item/organ/organ_item = target_atom log_target = organ_item.owner ? organ_item.owner : organ_item log_target.add_hiddenprint(transferred_by) //log prints so admins can figure out who touched it last. - log_combat(transferred_by, log_target, "transferred reagents to", my_atom, "which had [get_external_reagent_log_string(transfer_log)]") + + //logging reagents + log_combat(transferred_by, log_target, "transferred reagents to", my_atom, "which had [english_list(transfer_log)]") if(!no_react) target_holder.handle_reactions() - src.handle_reactions() + handle_reactions() return total_transfered_amount @@ -585,54 +585,50 @@ if(!no_react) // pass over previous ongoing reactions before handle_reactions is called transfer_reactions(target_holder) - - target_holder.update_total() target_holder.handle_reactions() - return round(total_transfered_amount, CHEMICAL_VOLUME_ROUNDING) + return total_transfered_amount /** - * Multiplies the reagents inside this holder by a specific amount + * Multiplies reagents inside this holder by a specific amount * Arguments - * * multiplier - the amount to multiply each reagent by + * + * * multiplier - the amount to multiply each reagent, its a percentile value where < 1 will reduce the volume and + * * > 1 will increase the volume. Final multiplier applied to the reagent volume is (1 - multiplier) + * * datum/reagent/target_id - multiply only this reagent in this holder leaving others untouched */ -/datum/reagents/proc/multiply_reagents(multiplier = 1) - var/list/cached_reagents = reagent_list - if(!total_volume || multiplier == 1) +/datum/reagents/proc/multiply(multiplier = 1, datum/reagent/target_id) + if(!total_volume) + return + + multiplier = round(min(multiplier, maximum_volume / total_volume), CHEMICAL_QUANTISATION_LEVEL) + if(multiplier < 0 || multiplier == 1) return + + if(!isnull(target_id) && !ispath(target_id)) + stack_trace("Bad reagent path [target_id] passed to multiply") + return + var/change = (multiplier - 1) //Get the % change + var/reagent_change + var/list/cached_reagents = reagent_list for(var/datum/reagent/reagent as anything in cached_reagents) - _multiply_reagent(reagent, change) + if(!isnull(target_id) && reagent.type != target_id) + continue + + reagent_change = reagent.volume * change if(change > 0) - add_reagent(reagent.type, reagent.volume * change, added_purity = reagent.purity, ignore_splitting = reagent.chemical_flags & REAGENT_DONOTSPLIT) + add_reagent(reagent.type, reagent_change, added_purity = reagent.purity, added_ph = reagent.ph, no_react = TRUE, ignore_splitting = reagent.chemical_flags & REAGENT_DONOTSPLIT) else - remove_reagent(reagent.type, abs(reagent.volume * change)) //absolute value to prevent a double negative situation (removing -50% would be adding 50%) + reagent.volume += reagent_change - update_total() - handle_reactions() + if(!isnull(target_id)) + break -/** - * Multiplies a single inside this holder by a specific amount - * Arguments - * * reagent_path - The path of the reagent we want to multiply the volume of. - * * multiplier - the amount to multiply each reagent by - */ -/datum/reagents/proc/multiply_single_reagent(reagent_path, multiplier = 1) - var/datum/reagent/reagent = locate(reagent_path) in reagent_list - if(!reagent || multiplier == 1) - return - var/change = (multiplier - 1) //Get the % change - _multiply_reagent(reagent, change) - update_total() + if(change < 0) + update_total() handle_reactions() -///Proc containing the operations called by both multiply_reagents() and multiply_single_reagent() -/datum/reagents/proc/_multiply_reagent(datum/reagent/reagent, change) - if(change > 0) - add_reagent(reagent.type, reagent.volume * change, added_purity = reagent.purity, ignore_splitting = reagent.chemical_flags & REAGENT_DONOTSPLIT) - else - remove_reagent(reagent.type, abs(reagent.volume * change)) //absolute value to prevent a double negative situation (removing -50% would be adding 50%) - /// Updates [/datum/reagents/var/total_volume] /datum/reagents/proc/update_total() var/list/cached_reagents = reagent_list @@ -829,24 +825,6 @@ //===============================Logging========================================== -/** - * Outputs a log-friendly list of reagents based on an external reagent list. - * - * Arguments: - * * external_list - Assoc list of (reagent_type) = list(REAGENT_TRANSFER_AMOUNT = amounts, REAGENT_PURITY = purity) - */ -/datum/reagents/proc/get_external_reagent_log_string(external_list) - if(!length(external_list)) - return "no reagents" - - var/list/data = list() - - for(var/reagent_type in external_list) - var/list/qualities = external_list[reagent_type] - data += "[reagent_type] ([round(qualities[REAGENT_TRANSFER_AMOUNT], CHEMICAL_QUANTISATION_LEVEL)]u, [qualities[REAGENT_PURITY]] purity)" - - return english_list(data) - /// Outputs a log-friendly list of reagents based on the internal reagent_list. /datum/reagents/proc/get_reagent_log_string() if(!length(reagent_list)) @@ -855,9 +833,6 @@ var/list/data = list() for(var/datum/reagent/reagent as anything in reagent_list) - data += "[reagent.type] ([round(reagent.volume, CHEMICAL_QUANTISATION_LEVEL)]u, [reagent.purity] purity)" + data += "[reagent.type] [reagent.volume]u, [reagent.purity] purity)" return english_list(data) - -#undef REAGENT_TRANSFER_AMOUNT -#undef REAGENT_PURITY diff --git a/code/modules/reagents/chemistry/holder/properties.dm b/code/modules/reagents/chemistry/holder/properties.dm index 1ea16253e8906..f74b5893bb559 100644 --- a/code/modules/reagents/chemistry/holder/properties.dm +++ b/code/modules/reagents/chemistry/holder/properties.dm @@ -32,7 +32,7 @@ //short cut to break when we have found our one exact type if(type_check == REAGENT_STRICT_TYPE) - return total_amount + break return total_amount diff --git a/code/modules/reagents/chemistry/holder/reactions.dm b/code/modules/reagents/chemistry/holder/reactions.dm index b2ec4cd309c61..b5ba957e069e5 100644 --- a/code/modules/reagents/chemistry/holder/reactions.dm +++ b/code/modules/reagents/chemistry/holder/reactions.dm @@ -209,7 +209,7 @@ var/reaction_message = null - if (!HAS_TRAIT(my_atom, TRAIT_SILENT_REACTIONS)) + if (!isnull(my_atom) && !HAS_TRAIT(my_atom, TRAIT_SILENT_REACTIONS)) reaction_message = equilibrium.reaction.mix_message if(equilibrium.reaction.mix_sound) playsound(get_turf(my_atom), equilibrium.reaction.mix_sound, 80, TRUE) diff --git a/code/modules/reagents/chemistry/machinery/chem_recipe_debug.dm b/code/modules/reagents/chemistry/machinery/chem_recipe_debug.dm index 3dfb3c6e4f592..c2591c8dd302c 100644 --- a/code/modules/reagents/chemistry/machinery/chem_recipe_debug.dm +++ b/code/modules/reagents/chemistry/machinery/chem_recipe_debug.dm @@ -172,7 +172,7 @@ var/target_temperature = decode_target_temperature() if(!isnull(target_temperature)) - target_reagents.adjust_thermal_energy((target_temperature - target_reagents.chem_temp) * 0.45 * seconds_per_tick * target_reagents.heat_capacity()) + target_reagents.adjust_thermal_energy((target_temperature - target_reagents.chem_temp) * 0.4 * seconds_per_tick * target_reagents.heat_capacity()) if(use_forced_purity) target_reagents.set_all_reagents_purity(forced_purity) diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index a6938f5dcf5ca..6b8b50807fcfe 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -453,7 +453,7 @@ total_weight += item_weight //use power according to the total weight of items grinded - use_energy((active_power_usage * (duration / 1 SECONDS)) * (total_weight / maximum_weight)) + use_energy((active_power_usage * (duration / (1 SECONDS))) * (total_weight / maximum_weight)) addtimer(CALLBACK(src, PROC_REF(stop_operating)), duration) @@ -513,6 +513,6 @@ beaker.reagents.convert_reagent(/datum/reagent/consumable/cream, /datum/reagent/consumable/whipped_cream) //power consumed based on the ratio of total reagents mixed - use_energy((active_power_usage * (duration / 1 SECONDS)) * (beaker.reagents.total_volume / beaker.reagents.maximum_volume)) + use_energy((active_power_usage * (duration / (1 SECONDS))) * (beaker.reagents.total_volume / beaker.reagents.maximum_volume)) operating = FALSE diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index 0f0c0386782e5..3d4e2d57732fa 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -121,6 +121,10 @@ SHOULD_CALL_PARENT(TRUE) . = SEND_SIGNAL(src, COMSIG_REAGENT_EXPOSE_MOB, exposed_mob, methods, reac_volume, show_message, touch_protection) + + if(isnull(exposed_mob.reagents)) // lots of simple mobs do not have a reagents holder + return + if(penetrates_skin & methods) // models things like vapors which penetrate the skin var/amount = round(reac_volume * clamp((1 - touch_protection), 0, 1), 0.1) if(amount >= 0.5) @@ -195,7 +199,7 @@ Primarily used in reagents/reaction_agents /// Called when this reagent is first added to a mob /datum/reagent/proc/on_mob_add(mob/living/affected_mob, amount) // Scale the overdose threshold of the chem by the difference between the default and creation purity. - overdose_threshold += (src.creation_purity - initial(purity)) * overdose_threshold + overdose_threshold += (src.creation_purity - initial(purity)) * overdose_threshold if(added_traits) affected_mob.add_traits(added_traits, "base:[type]") diff --git a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm index f41f41af3b9cf..5675c70abdf61 100644 --- a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm @@ -45,7 +45,7 @@ if(need_mob_update) . = UPDATE_MOB_HEALTH - if(good_kind_of_healing && !reaping && SPT_PROB(0.00005, seconds_per_tick)) //janken with the grim reaper! + if(good_kind_of_healing && !reaping && SPT_PROB(0.005, seconds_per_tick)) //janken with the grim reaper! notify_ghosts( "[affected_mob] has entered a game of rock-paper-scissors with death!", source = affected_mob, diff --git a/code/modules/reagents/chemistry/reagents/drinks/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drinks/drink_reagents.dm index f5016f4ffc5d2..8afc6996aaae6 100644 --- a/code/modules/reagents/chemistry/reagents/drinks/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drinks/drink_reagents.dm @@ -1071,7 +1071,7 @@ affected_mob.update_transform(newsize/current_size) current_size = newsize if(SPT_PROB(23, seconds_per_tick)) - affected_mob.sneeze() + affected_mob.emote("sneeze") /datum/reagent/consumable/red_queen/on_mob_end_metabolize(mob/living/affected_mob) . = ..() diff --git a/code/modules/reagents/chemistry/reagents/impure_reagents.dm b/code/modules/reagents/chemistry/reagents/impure_reagents.dm index 91c49834a6d4d..c164187571016 100644 --- a/code/modules/reagents/chemistry/reagents/impure_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/impure_reagents.dm @@ -86,8 +86,6 @@ * Will be removed when the required reagent is removed too * is processed on the dead. */ -/atom/movable/screen/alert/status_effect/freon/cryostylane - desc = "You're frozen inside of a protective ice cube! While inside, you can't do anything, but are immune to harm! You will be free when the chem runs out." /datum/reagent/inverse/cryostylane name = "Cryogelidia" @@ -97,27 +95,23 @@ ph = 14 chemical_flags = REAGENT_DEAD_PROCESS | REAGENT_IGNORE_STASIS | REAGENT_DONOTSPLIT metabolization_rate = 1 * REM - ///The cube we're stasis'd in - var/obj/structure/ice_stasis/cube - var/atom/movable/screen/alert/status_effect/freon/cryostylane_alert -/datum/reagent/inverse/cryostylane/on_mob_add(mob/living/carbon/affected_mob, amount) +/datum/reagent/inverse/cryostylane/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message = TRUE) . = ..() - if(HAS_TRAIT(affected_mob, TRAIT_RESISTCOLD)) + if(HAS_TRAIT(exposed_mob, TRAIT_RESISTCOLD)) holder.remove_reagent(type, volume) return - cube = new /obj/structure/ice_stasis(get_turf(affected_mob)) - cube.color = COLOR_CYAN - cube.set_anchored(TRUE) - affected_mob.forceMove(cube) - affected_mob.apply_status_effect(/datum/status_effect/grouped/stasis, STASIS_CHEMICAL_EFFECT) - cryostylane_alert = affected_mob.throw_alert("cryostylane_alert", /atom/movable/screen/alert/status_effect/freon/cryostylane) - cryostylane_alert.attached_effect = src //so the alert can reference us, if it needs to + + exposed_mob.apply_status_effect(/datum/status_effect/frozenstasis/irresistable) + if(!exposed_mob.has_status_effect(/datum/status_effect/grouped/stasis, STASIS_CHEMICAL_EFFECT)) + exposed_mob.apply_status_effect(/datum/status_effect/grouped/stasis, STASIS_CHEMICAL_EFFECT) /datum/reagent/inverse/cryostylane/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) . = ..() - if(!cube || affected_mob.loc != cube) - metabolization_rate += 0.01 + if(!affected_mob.has_status_effect(/datum/status_effect/frozenstasis/irresistable)) + holder.remove_reagent(type, volume) // remove it all if we were broken out + return + metabolization_rate += 0.01 //speed up our metabolism over time. Chop chop. /datum/reagent/inverse/cryostylane/metabolize_reagent(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) if(current_cycle >= 60) @@ -125,12 +119,7 @@ return return ..() -/datum/reagent/inverse/cryostylane/on_mob_delete(mob/living/carbon/affected_mob, amount) +/datum/reagent/inverse/cryostylane/on_mob_end_metabolize(mob/living/affected_mob) . = ..() - QDEL_NULL(cube) - if(!iscarbon(affected_mob)) - return - - var/mob/living/carbon/carbon_mob = affected_mob - carbon_mob.remove_status_effect(/datum/status_effect/grouped/stasis, STASIS_CHEMICAL_EFFECT) - carbon_mob.clear_alert("cryostylane_alert") + affected_mob.remove_status_effect(/datum/status_effect/frozenstasis/irresistable) + affected_mob.remove_status_effect(/datum/status_effect/grouped/stasis, STASIS_CHEMICAL_EFFECT) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 7ad3f0f42c273..2b446a0e6f9c7 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -1421,7 +1421,7 @@ affected_mob.adjust_hallucinations(-10 SECONDS * REM * seconds_per_tick) if(affected_mob.getStaminaLoss() >= 100) - affected_mob.reagents.remove_reagent(type, 2 * REM * seconds_per_tick) + affected_mob.reagents.remove_reagent(type, metabolization_rate * REM * seconds_per_tick) var/need_mob_update = FALSE if(SPT_PROB(10, seconds_per_tick)) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 4aa22a89b840f..6b3c1492afb92 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -517,12 +517,14 @@ * Water reaction to turf */ -/datum/reagent/hydrogen_peroxide/expose_turf(turf/open/exposed_turf, reac_volume) +/datum/reagent/hydrogen_peroxide/expose_turf(turf/exposed_turf, reac_volume) . = ..() - if(!istype(exposed_turf)) + if (reac_volume < 1.5) return - if(reac_volume >= 5) - exposed_turf.MakeSlippery(TURF_WET_WATER, 10 SECONDS, min(reac_volume*1.5 SECONDS, 60 SECONDS)) + if (!isplatingturf(exposed_turf) && exposed_turf.type != /turf/closed/wall) + return + if (!HAS_TRAIT(exposed_turf, TRAIT_RUSTY)) + exposed_turf.AddElement(/datum/element/rust) /* * Water reaction to a mob */ @@ -2899,6 +2901,11 @@ if(need_mob_update) return UPDATE_MOB_HEALTH +/datum/reagent/eldritch/expose_turf(turf/exposed_turf, reac_volume) + . = ..() + if ((reac_volume >= 1.5 || isplatingturf(exposed_turf)) && !HAS_TRAIT(exposed_turf, TRAIT_RUSTY)) + exposed_turf.rust_turf() + /datum/reagent/universal_indicator name = "Universal Indicator" description = "A solution that can be used to create pH paper booklets, or sprayed on things to colour them by their pH." diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index e3e7aaeb996d1..3293b8b3ba19e 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -615,7 +615,7 @@ if(2) affected_mob.emote("cough") if(3) - affected_mob.sneeze() + affected_mob.emote("sneeze") if(4) if(prob(75)) to_chat(affected_mob, span_danger("You scratch at an itch.")) diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index 25576568eb56f..32b659365c2f4 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -594,8 +594,9 @@ // spawn from popssible fishes for(var/i in 1 to rand(1, created_volume)) // More flop. - var/obj/item/fish/spawned_fish = pick(fish_types) - new spawned_fish(location) + var/spawned_fish = pick(fish_types) + var/obj/item/fish/new_fish = new spawned_fish(location) + ADD_TRAIT(new_fish, TRAIT_NO_FISHING_ACHIEVEMENT, TRAIT_GENERIC) return ..() //monkey powder heehoo @@ -951,7 +952,7 @@ for(var/mob/living/nearby_mob in range(location, 3)) do_sparks(3,FALSE,nearby_mob) do_teleport(nearby_mob, get_turf(holder.my_atom), 3, no_effects=TRUE) - nearby_mob.Knockdown(20, TRUE) + nearby_mob.Knockdown(20, ignore_canstun = TRUE) nearby_mob.add_atom_colour("#cebfff", WASHABLE_COLOUR_PRIORITY) do_sparks(3,FALSE,nearby_mob) clear_products(holder, step_volume_added) diff --git a/code/modules/reagents/reagent_containers/cups/glassbottle.dm b/code/modules/reagents/reagent_containers/cups/glassbottle.dm index 04d4f413d9dd7..2f54bede78cdb 100644 --- a/code/modules/reagents/reagent_containers/cups/glassbottle.dm +++ b/code/modules/reagents/reagent_containers/cups/glassbottle.dm @@ -624,6 +624,9 @@ volume = 30 list_reagents = list(/datum/reagent/consumable/ethanol/bitters = 30) drink_type = ALCOHOL + //allows for single unit dispensing + possible_transfer_amounts = list(1, 2, 3, 4, 5) + amount_per_transfer_from_this = 5 /obj/item/reagent_containers/cup/glass/bottle/curacao name = "Beekhof Blauw Curaçao" diff --git a/code/modules/requests/request_manager.dm b/code/modules/requests/request_manager.dm index 3106a925acd2c..d2257515f8f1b 100644 --- a/code/modules/requests/request_manager.dm +++ b/code/modules/requests/request_manager.dm @@ -143,7 +143,7 @@ GLOBAL_DATUM_INIT(requests, /datum/request_manager, new) ui.open() /datum/request_manager/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_ADMIN) /datum/request_manager/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) if (..()) diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index d55c1a6f24373..353dd78780665 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -381,6 +381,24 @@ ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL +/datum/design/flesh_reshapers + name = "Flesh Reshaper" + desc = "Reshape those external features!" + id = "fleshreshaper" + build_path = /obj/item/flesh_shears + build_type = PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1, /datum/material/silver =SHEET_MATERIAL_AMOUNT * 1) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL_ADVANCED + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE + +/datum/design/flesh_reshapers/medical // slight variant with different color palette + name = "Medical Flesh Reshaper" + id = "fleshreshapermed" + build_path = /obj/item/flesh_shears/medical + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL + ///////////////////////////////////////// //////////Cybernetic Implants//////////// ///////////////////////////////////////// diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 00fbd29d3c636..58f001a121104 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -560,6 +560,15 @@ build_path = /obj/item/melee/cleric_mace category = list(RND_CATEGORY_IMPORTED) +/datum/design/liberator_gun + name = "The Liberator" + desc = "A dirt cheap 3D printed gun. Only holds one bullet, and is infamous for sometimes exploding on it's user." + id = "liberator_gun" + build_type = AUTOLATHE + materials = list(/datum/material/plastic = SHEET_MATERIAL_AMOUNT * 2, /datum/material/iron = SMALL_MATERIAL_AMOUNT * 15) + build_path = /obj/item/gun/ballistic/automatic/pistol/doorhickey + category = list(RND_CATEGORY_IMPORTED) + /datum/design/stun_boomerang name = "OZtek Boomerang" desc = "Uses reverse flow gravitodynamics to flip its personal gravity back to the thrower mid-flight. Also functions similar to a stun baton." diff --git a/code/modules/research/techweb/_techweb_node.dm b/code/modules/research/techweb/_techweb_node.dm index 79b8b27986c9f..2a6eb8b7b7d18 100644 --- a/code/modules/research/techweb/_techweb_node.dm +++ b/code/modules/research/techweb/_techweb_node.dm @@ -125,15 +125,5 @@ return if(board.obj_flags & EMAGGED) channels_to_use = list(RADIO_CHANNEL_COMMON) - if(!length(channels_to_use) || starting_node) - return - var/obj/machinery/announcement_system/system - var/list/available_machines = list() - for(var/obj/machinery/announcement_system/announce as anything in GLOB.announcement_systems) - if(announce.announce_research_node) - available_machines += announce - break - if(!length(available_machines)) - return - system = pick(available_machines) - system.announce(AUTO_ANNOUNCE_NODE, display_name, channels = channels_to_use) + if(length(channels_to_use) && !starting_node) + aas_config_announce(/datum/aas_config_entry/researched_node, list("NODE" = display_name), null, channels_to_use) diff --git a/code/modules/research/techweb/nodes/biology_nodes.dm b/code/modules/research/techweb/nodes/biology_nodes.dm index 25f9163ab48c4..ff100cd0d78cd 100644 --- a/code/modules/research/techweb/nodes/biology_nodes.dm +++ b/code/modules/research/techweb/nodes/biology_nodes.dm @@ -58,6 +58,8 @@ "dna_disk", "dnainfuser", "mod_dna_lock", + "fleshreshaper", + "fleshreshapermed", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS) discount_experiments = list(/datum/experiment/scanning/people/mutant = TECHWEB_TIER_4_POINTS) diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index 2a0d5544ba15e..fb419a60f1aee 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -98,10 +98,14 @@ status_type = STATUS_EFFECT_UNIQUE duration = STATUS_EFFECT_PERMANENT //Will remove self when block breaks. alert_type = /atom/movable/screen/alert/status_effect/freon/stasis + /// The cube we will place our mob into. var/obj/structure/ice_stasis/cube + /// Whether or not this version of the status effect can be resisted out of. + var/resistable = TRUE /datum/status_effect/frozenstasis/on_apply() - RegisterSignal(owner, COMSIG_LIVING_RESIST, PROC_REF(breakCube)) + if(resistable) + RegisterSignal(owner, COMSIG_LIVING_RESIST, PROC_REF(breakCube)) cube = new /obj/structure/ice_stasis(get_turf(owner)) owner.forceMove(cube) ADD_TRAIT(owner, TRAIT_GODMODE, TRAIT_STATUS_EFFECT(id)) @@ -120,7 +124,11 @@ if(cube) qdel(cube) REMOVE_TRAIT(owner, TRAIT_GODMODE, TRAIT_STATUS_EFFECT(id)) - UnregisterSignal(owner, COMSIG_LIVING_RESIST) + if(resistable) + UnregisterSignal(owner, COMSIG_LIVING_RESIST) + +/datum/status_effect/frozenstasis/irresistable + resistable = FALSE /datum/status_effect/slime_clone id = "slime_cloned" diff --git a/code/modules/shuttle/mobile_port/variants/arrivals.dm b/code/modules/shuttle/mobile_port/variants/arrivals.dm index 70e06bbb0975d..df3126081b2b2 100644 --- a/code/modules/shuttle/mobile_port/variants/arrivals.dm +++ b/code/modules/shuttle/mobile_port/variants/arrivals.dm @@ -78,10 +78,7 @@ damaged = TRUE if(console) console.say("Alert, hull breach detected!") - if (length(GLOB.announcement_systems)) - var/obj/machinery/announcement_system/announcer = pick(GLOB.announcement_systems) - if(!QDELETED(announcer)) - announcer.announce("ARRIVALS_BROKEN", channels = list()) + aas_config_announce(/datum/aas_config_entry/arrivals_broken, list(), command_span=TRUE) if(mode != SHUTTLE_CALL) sound_played = FALSE mode = SHUTTLE_IDLE diff --git a/code/modules/shuttle/mobile_port/variants/emergency/pods.dm b/code/modules/shuttle/mobile_port/variants/emergency/pods.dm index 1d8e1bae6bc03..40a4cc16cdb79 100644 --- a/code/modules/shuttle/mobile_port/variants/emergency/pods.dm +++ b/code/modules/shuttle/mobile_port/variants/emergency/pods.dm @@ -116,13 +116,12 @@ name = "emergency space helmet" icon_state = "syndicate-helm-orange" inhand_icon_state = "syndicate-helm-orange" - slowdown = 1.5 /obj/item/clothing/suit/space/orange name = "emergency space suit" icon_state = "syndicate-orange" inhand_icon_state = "syndicate-orange" - slowdown = 1.5 + slowdown = 3 /obj/item/pickaxe/emergency name = "emergency disembarkation tool" diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index dbb4fc5386b23..28b2516fda84c 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -109,10 +109,11 @@ ///returns turfs within our projected rectangle in no particular order /obj/docking_port/proc/return_turfs() - var/list/L = return_coords() - var/turf/T0 = locate(L[1],L[2],z) - var/turf/T1 = locate(L[3],L[4],z) - return block(T0,T1) + var/list/coords = return_coords() + return block( + coords[1], coords[2], z, + coords[3], coords[4], z + ) ///returns turfs within our projected rectangle in a specific order.this ensures that turfs are copied over in the same order, regardless of any rotation /obj/docking_port/proc/return_ordered_turfs(_x, _y, _z, _dir) @@ -147,17 +148,15 @@ /obj/docking_port/proc/highlight(_color = "#f00") SetInvisibility(INVISIBILITY_NONE) SET_PLANE_IMPLICIT(src, GHOST_PLANE) - var/list/L = return_coords() - var/turf/T0 = locate(L[1],L[2],z) - var/turf/T1 = locate(L[3],L[4],z) - for(var/turf/T in block(T0,T1)) + var/list/coords = return_coords() + for(var/turf/T in block(coords[1], coords[2], z, coords[3], coords[4], z)) T.color = _color LAZYINITLIST(T.atom_colours) T.maptext = null if(_color) - var/turf/T = locate(L[1], L[2], z) + var/turf/T = locate(coords[1], coords[2], z) T.color = "#0f0" - T = locate(L[3], L[4], z) + T = locate(coords[3], coords[4], z) T.color = "#00f" #endif diff --git a/code/modules/station_goals/meteor_shield.dm b/code/modules/station_goals/meteor_shield.dm index e4b76f600ca80..8d5e2dbf40962 100644 --- a/code/modules/station_goals/meteor_shield.dm +++ b/code/modules/station_goals/meteor_shield.dm @@ -145,8 +145,6 @@ to_chat(user, span_warning("The last satellite emagged needs [DisplayTimeText(COOLDOWN_TIMELEFT(src, shared_emag_cooldown))] to recalibrate first. Emagging another so soon could damage the satellite network.")) return FALSE var/cooldown_applied = METEOR_SHIELD_EMAG_COOLDOWN - if(istype(emag_card, /obj/item/card/emag/meteor_shield_recalibrator)) - cooldown_applied /= 3 COOLDOWN_START(src, shared_emag_cooldown, cooldown_applied) obj_flags |= EMAGGED to_chat(user, span_notice("You access the satellite's debug mode and it begins emitting a strange signal, increasing the chance of meteor strikes.")) diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index 2d1b3570e3d96..2b6f111b2eb58 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -1058,7 +1058,7 @@ else limb.icon_state = "[limb_id]_[body_zone]" - icon_exists(limb.icon, limb.icon_state, TRUE) //Prints a stack trace on the first failure of a given iconstate. + icon_exists_or_scream(limb.icon, limb.icon_state) //Prints a stack trace on the first failure of a given iconstate. . += limb diff --git a/code/modules/surgery/cavity_implant.dm b/code/modules/surgery/cavity_implant.dm index 1be5e1db8230a..b07b562aa8dbb 100644 --- a/code/modules/surgery/cavity_implant.dm +++ b/code/modules/surgery/cavity_implant.dm @@ -39,45 +39,49 @@ GLOBAL_LIST_INIT(heavy_cavity_implants, typecacheof(list(/obj/item/transfer_valv span_notice("[user] begins to insert [tool.w_class > WEIGHT_CLASS_SMALL ? tool : "something"] into [target]'s [target_zone]."), ) display_pain(target, "You can feel something being inserted into your [target_zone], it hurts like hell!") - else - display_results( - user, - target, - span_notice("You check for items in [target]'s [target_zone]..."), - span_notice("[user] checks for items in [target]'s [target_zone]."), - span_notice("[user] looks for something in [target]'s [target_zone]."), - ) + return + + display_results( + user, + target, + span_notice("You check for items in [target]'s [target_zone]..."), + span_notice("[user] checks for items in [target]'s [target_zone]."), + span_notice("[user] looks for something in [target]'s [target_zone]."), + ) /datum/surgery_step/handle_cavity/success(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery = FALSE) var/obj/item/bodypart/chest/target_chest = target.get_bodypart(BODY_ZONE_CHEST) if(tool) - if(item_for_cavity || ((tool.w_class > WEIGHT_CLASS_NORMAL) && !is_type_in_typecache(tool, GLOB.heavy_cavity_implants)) || HAS_TRAIT(tool, TRAIT_NODROP) || isorgan(tool)) + if(item_for_cavity || ((tool.w_class > WEIGHT_CLASS_NORMAL) && !is_type_in_typecache(tool, GLOB.heavy_cavity_implants)) || HAS_TRAIT(tool, TRAIT_NODROP) || (tool.item_flags & ABSTRACT) || isorgan(tool)) to_chat(user, span_warning("You can't seem to fit [tool] in [target]'s [target_zone]!")) return FALSE - else - display_results( - user, - target, - span_notice("You stuff [tool] into [target]'s [target_zone]."), - span_notice("[user] stuffs [tool] into [target]'s [target_zone]!"), - span_notice("[user] stuffs [tool.w_class > WEIGHT_CLASS_SMALL ? tool : "something"] into [target]'s [target_zone]."), - ) - user.transferItemToLoc(tool, target, TRUE) - target_chest.cavity_item = tool - return ..() - else - if(item_for_cavity) - display_results( - user, - target, - span_notice("You pull [item_for_cavity] out of [target]'s [target_zone]."), - span_notice("[user] pulls [item_for_cavity] out of [target]'s [target_zone]!"), - span_notice("[user] pulls [item_for_cavity.w_class > WEIGHT_CLASS_SMALL ? item_for_cavity : "something"] out of [target]'s [target_zone]."), - ) - display_pain(target, "Something is pulled out of your [target_zone]! It hurts like hell!") - user.put_in_hands(item_for_cavity) - target_chest.cavity_item = null - return ..() - else - to_chat(user, span_warning("You don't find anything in [target]'s [target_zone].")) + + display_results( + user, + target, + span_notice("You stuff [tool] into [target]'s [target_zone]."), + span_notice("[user] stuffs [tool] into [target]'s [target_zone]!"), + span_notice("[user] stuffs [tool.w_class > WEIGHT_CLASS_SMALL ? tool : "something"] into [target]'s [target_zone]."), + ) + + if (!user.transferItemToLoc(tool, target, TRUE)) return FALSE + + target_chest.cavity_item = tool + return ..() + + if(!item_for_cavity) + to_chat(user, span_warning("You don't find anything in [target]'s [target_zone].")) + return FALSE + + display_results( + user, + target, + span_notice("You pull [item_for_cavity] out of [target]'s [target_zone]."), + span_notice("[user] pulls [item_for_cavity] out of [target]'s [target_zone]!"), + span_notice("[user] pulls [item_for_cavity.w_class > WEIGHT_CLASS_SMALL ? item_for_cavity : "something"] out of [target]'s [target_zone]."), + ) + display_pain(target, "Something is pulled out of your [target_zone]! It hurts like hell!") + user.put_in_hands(item_for_cavity) + target_chest.cavity_item = null + return ..() diff --git a/code/modules/surgery/organs/external/restyling.dm b/code/modules/surgery/organs/external/restyling.dm index 49d6c481d285a..ac6bfc8b54d3f 100644 --- a/code/modules/surgery/organs/external/restyling.dm +++ b/code/modules/surgery/organs/external/restyling.dm @@ -81,3 +81,47 @@ ) simple_change_sprite(restyles[new_style]) //turn name to type and pass it on + +/// Allows for the restyling of visual organs to other styles within the same pool (if not forbidden) +/obj/item/flesh_shears + name = "flesh reshaper" + desc = "Uses shearing action and growth inducers to reshape your coworkers external features!" + + icon_state = "flesh_shaper" + icon = 'icons/obj/medical/surgery_tools.dmi' + icon_angle = 90 + + inhand_icon_state = "flesh_shaper" + lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' + + force = 5 + w_class = WEIGHT_CLASS_SMALL + throwforce = 10 + + attack_verb_continuous = list("shears", "snips") + attack_verb_simple = list("shear", "snip") + sharpness = SHARP_EDGED + + obj_flags = CONDUCTS_ELECTRICITY + + custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT*1, /datum/material/silver=SHEET_MATERIAL_AMOUNT*1) + + /// How long does it take, after selecting a new style, for the new style to be applied? + var/restyle_speed = 2 SECONDS + +///Catch right clicks so we can stylize! +/obj/item/flesh_shears/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) + if(user.combat_mode) + return NONE + + restyle(interacting_with, user) + return ITEM_INTERACT_SUCCESS + +///Send a signal to whatever we clicked and start RESTYLING +/obj/item/flesh_shears/proc/restyle(atom/target, mob/living/user) + SEND_SIGNAL(target, COMSIG_ATOM_RESTYLE, user, target, user.zone_selected, EXTERNAL_RESTYLE_ALL, restyle_speed) + +/obj/item/flesh_shears/medical + icon_state = "flesh_shaper_med" + inhand_icon_state = "flesh_shaper_med" diff --git a/code/modules/surgery/organs/external/tails.dm b/code/modules/surgery/organs/external/tails.dm index e6c382387a2f2..1590ea496bf04 100644 --- a/code/modules/surgery/organs/external/tails.dm +++ b/code/modules/surgery/organs/external/tails.dm @@ -157,6 +157,7 @@ preference = "feature_human_tail" bodypart_overlay = /datum/bodypart_overlay/mutant/tail/cat + restyle_flags = EXTERNAL_RESTYLE_FLESH wag_flags = WAG_ABLE diff --git a/code/modules/surgery/organs/external/wings/moth_wings.dm b/code/modules/surgery/organs/external/wings/moth_wings.dm index da35ea25d50e8..51cf66dbd55a1 100644 --- a/code/modules/surgery/organs/external/wings/moth_wings.dm +++ b/code/modules/surgery/organs/external/wings/moth_wings.dm @@ -10,6 +10,7 @@ dna_block = DNA_MOTH_WINGS_BLOCK bodypart_overlay = /datum/bodypart_overlay/mutant/wings/moth + restyle_flags = EXTERNAL_RESTYLE_FLESH ///Are we burned? var/burnt = FALSE diff --git a/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm b/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm index 1af7872dd7b06..52117bd533197 100644 --- a/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm +++ b/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm @@ -405,9 +405,14 @@ /obj/item/knife/combat/cyborg, ) +#define DOAFTER_SOURCE_STRONGARM_INTERACTION "strongarm interaction" + +// Strong-Arm Implant // + /obj/item/organ/cyberimp/arm/strongarm name = "\proper Strong-Arm empowered musculature implant" - desc = "When implanted, this cybernetic implant will enhance the muscles of the arm to deliver more power-per-action." + desc = "When implanted, this cybernetic implant will enhance the muscles of the arm to deliver more power-per-action. Install one in each arm \ + to pry open doors with your bare hands!" icon_state = "muscle_implant" zone = BODY_ZONE_R_ARM @@ -441,6 +446,10 @@ /obj/item/organ/cyberimp/arm/strongarm/l zone = BODY_ZONE_L_ARM +/obj/item/organ/cyberimp/arm/strongarm/Initialize(mapload) + . = ..() + AddElement(/datum/element/organ_set_bonus, /datum/status_effect/organ_set_bonus/strongarm) + /obj/item/organ/cyberimp/arm/strongarm/on_mob_insert(mob/living/carbon/arm_owner) . = ..() if(ishuman(arm_owner)) //Sorry, only humans @@ -534,3 +543,21 @@ COOLDOWN_START(src, slam_cooldown, slam_cooldown_duration) return COMPONENT_CANCEL_ATTACK_CHAIN + +/datum/status_effect/organ_set_bonus/strongarm + id = "organ_set_bonus_strongarm" + organs_needed = 2 + bonus_activate_text = span_notice("Your improved arms allow you to open airlocks by force with your bare hands!") + bonus_deactivate_text = span_notice("You can no longer force open airlocks with your bare hands.") + +/datum/status_effect/organ_set_bonus/strongarm/enable_bonus() + . = ..() + if(!.) + return + owner.AddElement(/datum/element/door_pryer, pry_time = 6 SECONDS, interaction_key = DOAFTER_SOURCE_STRONGARM_INTERACTION) + +/datum/status_effect/organ_set_bonus/strongarm/disable_bonus() + . = ..() + owner.RemoveElement(/datum/element/door_pryer, pry_time = 6 SECONDS, interaction_key = DOAFTER_SOURCE_STRONGARM_INTERACTION) + +#undef DOAFTER_SOURCE_STRONGARM_INTERACTION diff --git a/code/modules/surgery/organs/internal/ears/_ears.dm b/code/modules/surgery/organs/internal/ears/_ears.dm index 3443cf9249e33..3652116c7d4b1 100644 --- a/code/modules/surgery/organs/internal/ears/_ears.dm +++ b/code/modules/surgery/organs/internal/ears/_ears.dm @@ -154,6 +154,7 @@ damage_multiplier = 2 preference = "feature_human_ears" + restyle_flags = EXTERNAL_RESTYLE_FLESH dna_block = DNA_EARS_BLOCK diff --git a/code/modules/surgery/prosthetic_replacement.dm b/code/modules/surgery/prosthetic_replacement.dm index fcfc01f3a9b9a..02c15dfd5dbf7 100644 --- a/code/modules/surgery/prosthetic_replacement.dm +++ b/code/modules/surgery/prosthetic_replacement.dm @@ -61,9 +61,9 @@ if(bodypart_to_attach.check_for_frankenstein(target)) organ_rejection_dam = 30 - if(!bodypart_to_attach.can_attach_limb(target)) - target.balloon_alert(user, "that doesn't go on the [target.parse_zone_with_bodypart(target_zone)]!") - return SURGERY_STEP_FAIL + if(!bodypart_to_attach.can_attach_limb(target)) + target.balloon_alert(user, "that doesn't go on the [target.parse_zone_with_bodypart(target_zone)]!") + return SURGERY_STEP_FAIL if(target_zone == bodypart_to_attach.body_zone) //so we can't replace a leg with an arm, or a human arm with a monkey arm. display_results( @@ -134,4 +134,3 @@ var/obj/item/melee/arm_blade/new_arm = new(target,TRUE,TRUE) target_zone == BODY_ZONE_R_ARM ? target.put_in_r_hand(new_arm) : target.put_in_l_hand(new_arm) return - return ..() //if for some reason we fail everything we'll print out some text okay? diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index 4a64335f8e6b5..b88a7e31f94f5 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -331,6 +331,8 @@ attack_verb_continuous = list("slaps") attack_verb_simple = list("slap") interaction_flags_atom = parent_type::interaction_flags_atom | INTERACT_ATOM_IGNORE_MOBILITY + drop_sound = SFX_CLOTH_DROP + pickup_sound = SFX_CLOTH_PICKUP /obj/item/surgical_drapes/Initialize(mapload) . = ..() diff --git a/code/modules/tgui/states/admin.dm b/code/modules/tgui/states/admin.dm index 4da5061dfcb01..83085c4029cce 100644 --- a/code/modules/tgui/states/admin.dm +++ b/code/modules/tgui/states/admin.dm @@ -6,12 +6,26 @@ /** * tgui state: admin_state * - * Checks that the user is an admin, end-of-story. + * Checks if the user has specific admin permissions. */ -GLOBAL_DATUM_INIT(admin_state, /datum/ui_state/admin_state, new) +GLOBAL_LIST_EMPTY_TYPED(admin_states, /datum/ui_state/admin_state) +GLOBAL_PROTECT(admin_states) + +/datum/ui_state/admin_state + /// The specific admin permissions required for the UI using this state. + VAR_FINAL/required_perms = R_ADMIN + +/datum/ui_state/admin_state/New(required_perms = R_ADMIN) + . = ..() + src.required_perms = required_perms /datum/ui_state/admin_state/can_use_topic(src_object, mob/user) - if(check_rights_for(user.client, R_ADMIN)) + if(check_rights_for(user.client, required_perms)) return UI_INTERACTIVE return UI_CLOSE + +/datum/ui_state/admin_state/vv_edit_var(var_name, var_value) + if(var_name == NAMEOF(src, required_perms)) + return FALSE + return ..() diff --git a/code/modules/tgui/states/debug.dm b/code/modules/tgui/states/debug.dm deleted file mode 100644 index 6c600b38cea12..0000000000000 --- a/code/modules/tgui/states/debug.dm +++ /dev/null @@ -1,6 +0,0 @@ -GLOBAL_DATUM_INIT(debug_state, /datum/ui_state/debug_state, new) - -/datum/ui_state/debug_state/can_use_topic(src_object, mob/user) - if(check_rights_for(user.client, R_DEBUG)) - return UI_INTERACTIVE - return UI_CLOSE diff --git a/code/modules/tgui/states/fun.dm b/code/modules/tgui/states/fun.dm deleted file mode 100644 index ba72f40fd080c..0000000000000 --- a/code/modules/tgui/states/fun.dm +++ /dev/null @@ -1,17 +0,0 @@ -/*! - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT - */ - -/** - * tgui state: fun_state - * - * Checks that the user has the fun privilige. - */ - -GLOBAL_DATUM_INIT(fun_state, /datum/ui_state/fun_state, new) - -/datum/ui_state/fun_state/can_use_topic(src_object, mob/user) - if(check_rights_for(user.client, R_FUN)) - return UI_INTERACTIVE - return UI_CLOSE diff --git a/code/modules/transport/admin.dm b/code/modules/transport/admin.dm index 63f1fbfd55a3b..b7e4c852c2f33 100644 --- a/code/modules/transport/admin.dm +++ b/code/modules/transport/admin.dm @@ -8,6 +8,8 @@ ADMIN_VERB(reset_tram, R_DEBUG|R_ADMIN, "Reset Tram", "Reset a tram controller o var/datum/transport_controller/linear/tram/broken_controller var/selected_transport_id = tgui_input_list(user, "Which tram?", "Off the rails", debug_tram_list) + if(isnull(selected_transport_id)) + return var/reset_type = tgui_input_list(user, "How hard of a reset?", "How bad is it screwed up", list("Clear Tram Contents", "Controller", "Controller and Contents", "Delete Datum", "Cancel")) if(isnull(reset_type) || reset_type == "Cancel") diff --git a/code/modules/transport/elevator/elev_music_zone.dm b/code/modules/transport/elevator/elev_music_zone.dm index f5b3de8a67cc4..9a8b2e98c15fb 100644 --- a/code/modules/transport/elevator/elev_music_zone.dm +++ b/code/modules/transport/elevator/elev_music_zone.dm @@ -73,9 +73,11 @@ GLOBAL_LIST_EMPTY(elevator_music) if (entered in tracked_mobs) return - - if (entered.client?.prefs.read_preference(/datum/preference/toggle/sound_elevator)) - tracked_mobs[entered] = new soundloop_type(_parent = entered, _direct = TRUE, start_immediately = enabled) + var/pref_volume = entered.client?.prefs.read_preference(/datum/preference/numeric/volume/sound_ambience_volume) + if (pref_volume > 0) + var/datum/looping_sound/soundloop = new soundloop_type(_parent = entered, _direct = TRUE, start_immediately = enabled) + soundloop.volume *= pref_volume/100 + tracked_mobs[entered] = soundloop else tracked_mobs[entered] = null // Still add it to the list so we don't keep making this check RegisterSignal(entered, COMSIG_QDELETING, PROC_REF(mob_destroyed)) diff --git a/code/modules/transport/transport_module.dm b/code/modules/transport/transport_module.dm index 2c02b507bf27e..83fd824bd6af0 100644 --- a/code/modules/transport/transport_module.dm +++ b/code/modules/transport/transport_module.dm @@ -304,15 +304,16 @@ var/x_offset = ROUND_UP(bound_width / ICON_SIZE_X) - 1 //how many tiles our horizontally farthest edge is from us var/y_offset = ROUND_UP(bound_height / ICON_SIZE_Y) - 1 //how many tiles our vertically farthest edge is from us + var/destination_x = destination.x + var/destination_y = destination.y + var/destination_z = destination.z //the x coordinate of the edge furthest from our future destination, which would be our right hand side - var/back_edge_x = destination.x + x_offset//if we arent multitile this should just be destination.x - var/upper_edge_y = destination.y + y_offset - - var/turf/upper_right_corner = locate(min(world.maxx, back_edge_x), min(world.maxy, upper_edge_y), destination.z) + var/back_edge_x = destination_x + x_offset//if we arent multitile this should just be destination.x + var/upper_edge_y = destination_y + y_offset var/list/dest_locs = block( - destination, - upper_right_corner + destination_x, destination_y, destination_z, + back_edge_x, upper_edge_y, destination_z ) var/list/entering_locs = dest_locs - locs diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index 3661cf6a4d147..465f744cb641b 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -225,7 +225,6 @@ #include "mutant_organs.dm" #include "novaflower_burn.dm" #include "nuke_cinematic.dm" -#include "objectives.dm" #include "omnitools.dm" #include "operating_table.dm" #include "orderable_items.dm" diff --git a/code/modules/unit_tests/fish_unit_tests.dm b/code/modules/unit_tests/fish_unit_tests.dm index 7ed7851b86af2..fb4dc8f291d6b 100644 --- a/code/modules/unit_tests/fish_unit_tests.dm +++ b/code/modules/unit_tests/fish_unit_tests.dm @@ -326,7 +326,6 @@ // pretend like this mob has a mind. they should be fished up first no_brain.mind_initialize() - SEND_SIGNAL(the_hole, COMSIG_PRE_FISHING) // we need to do this for the fishing spot component to be attached var/datum/component/fishing_spot/the_hole_fishing_spot = the_hole.GetComponent(/datum/component/fishing_spot) var/datum/fish_source/fishing_source = the_hole_fishing_spot.fish_source var/obj/item/fishing_hook/rescue/the_hook = allocate(/obj/item/fishing_hook/rescue, run_loc_floor_top_right) diff --git a/code/modules/unit_tests/heretic_rituals.dm b/code/modules/unit_tests/heretic_rituals.dm index b55136cfacebe..63c4c76ba8b57 100644 --- a/code/modules/unit_tests/heretic_rituals.dm +++ b/code/modules/unit_tests/heretic_rituals.dm @@ -7,6 +7,7 @@ * - Summon rituals sleep after completing as they expect a ghost candidate to fill the summon, so they're skipped. * - Final rituals results in a bunch of side-effects and vary a good deal so they're skipped explicitly. * - Sacrifice ritual (Hunt and Sacrifice) requires sacrifice targets, as well as spawning a new z-level, so it's better not to test. + * - Codex Morbus doesn't consume the body that is required in it's ritual. */ /datum/unit_test/heretic_rituals @@ -29,6 +30,7 @@ /datum/heretic_knowledge/summon, /datum/heretic_knowledge/ultimate, /datum/heretic_knowledge/hunt_and_sacrifice, + /datum/heretic_knowledge/codex_morbus, )) var/list/all_ritual_knowledge = list() diff --git a/code/modules/unit_tests/objectives.dm b/code/modules/unit_tests/objectives.dm deleted file mode 100644 index 30263c0f0786e..0000000000000 --- a/code/modules/unit_tests/objectives.dm +++ /dev/null @@ -1,49 +0,0 @@ -/datum/unit_test/objectives_category/Run() - var/datum/traitor_category_handler/category_handler = allocate(/datum/traitor_category_handler) - var/list/objectives_that_exist = list() - for(var/datum/traitor_objective_category/category as anything in category_handler.all_categories) - for(var/value in category.objectives) - TEST_ASSERT(isnum(category.objectives[value]), "[category.type] does not have a valid format for its objectives as an objective category! ([value] requires a weight to be assigned to it)") - if(islist(value)) - recursive_check_list(category.type, value, objectives_that_exist) - else - objectives_that_exist += value - - SStraitor.generate_objectives = FALSE - for(var/datum/traitor_objective/objective_typepath as anything in subtypesof(/datum/traitor_objective)) - var/datum/traitor_objective/objective = allocate(objective_typepath) - if(objective.abstract_type == objective_typepath) - // In this case, we don't want abstract types to define values that should be defined on non-abstract types - // Nor do we want abstract types to appear in the pool of traitor objectives. - if(objective_typepath in objectives_that_exist) - TEST_FAIL("[objective_typepath] is in a traitor category and is an abstract type! Please remove it from the [/datum/traitor_objective_category].") - // Since we didn't generate the objective, the rewards are going to be in list form: (min, max) - if(!reward_is_zero(objective.progression_reward)) - TEST_FAIL("[objective_typepath] has set a progression reward as an abstract type! Please define progression rewards on non-abstract types rather than abstract types.") - // Since we didn't generate the objective, the rewards are going to be in list form: (min, max) - if(!reward_is_zero(objective.telecrystal_reward)) - TEST_FAIL("[objective_typepath] has set a telecrystal reward as an abstract type! Please define telecrystal rewards on non-abstract types rather than abstract types.") - continue - if(!(objective_typepath in objectives_that_exist)) - TEST_FAIL("[objective_typepath] is not in a traitor category and isn't an abstract type! Place it into a [/datum/traitor_objective_category] or remove it from code.") - if(objective.progression_minimum == null) - TEST_FAIL("[objective_typepath] has not defined a minimum progression level and isn't an abstract type! Please define the progression minimum variable on the datum") - if(objective.needs_reward && reward_is_zero(objective.progression_reward) && reward_is_zero(objective.telecrystal_reward)) - TEST_FAIL("[objective_typepath] has not set either a progression reward or a telecrystal reward! Please set either a telecrystal or progression reward for this objective.") - -/// Returns whether the reward specified (in format (min, max)) is zero or not. -/datum/unit_test/objectives_category/proc/reward_is_zero(list/reward) - return (reward[1] == 0 && reward[2] == 0) - -/datum/unit_test/objectives_category/Destroy() - SStraitor.generate_objectives = TRUE - return ..() - - -/datum/unit_test/objectives_category/proc/recursive_check_list(base_type, list/to_check, list/to_add_to) - for(var/value in to_check) - TEST_ASSERT(isnum(to_check[value]), "[base_type] does not have a valid format for its objectives as an objective category! ([value] requires a weight to be assigned to it)") - if(islist(value)) - recursive_check_list(base_type, value, to_add_to) - else - to_add_to += value diff --git a/code/modules/unit_tests/suit_storage_icons.dm b/code/modules/unit_tests/suit_storage_icons.dm index 7cc987bb46801..543db168851bd 100644 --- a/code/modules/unit_tests/suit_storage_icons.dm +++ b/code/modules/unit_tests/suit_storage_icons.dm @@ -35,12 +35,12 @@ continue if(worn_icon) //easiest to check since we override everything. - if(!(icon_state in icon_states(worn_icon))) + if(!icon_exists(worn_icon, icon_state)) log_test("\t[count] - [item_path] using invalid [worn_icon_state ? "worn_icon_state" : "icon_state"], \"[icon_state]\" in worn_icon override file, '[worn_icon]'") count++ continue - if(!(icon_state in icon_states('icons/mob/clothing/belt_mirror.dmi'))) + if(!icon_exists('icons/mob/clothing/belt_mirror.dmi', icon_state)) already_warned_icons += icon_state log_test("\t[count] - [item_path] using invalid [worn_icon_state ? "worn_icon_state" : "icon_state"], \"[icon_state]\"") count++ diff --git a/code/modules/unit_tests/traitor.dm b/code/modules/unit_tests/traitor.dm index 974888b3a0df4..6b95d5018041d 100644 --- a/code/modules/unit_tests/traitor.dm +++ b/code/modules/unit_tests/traitor.dm @@ -22,11 +22,3 @@ var/datum/antagonist/traitor/traitor = mind.add_antag_datum(/datum/antagonist/traitor) if(!traitor.uplink_handler) TEST_FAIL("[job_name] when made traitor does not have a proper uplink created when spawned in!") - for(var/datum/traitor_objective/objective_typepath as anything in subtypesof(/datum/traitor_objective)) - if(initial(objective_typepath.abstract_type) == objective_typepath) - continue - var/datum/traitor_objective/objective = allocate(objective_typepath, traitor.uplink_handler) - try - objective.generate_objective(mind, list()) - catch(var/exception/exception) - TEST_FAIL("[objective_typepath] failed to generate their objective. Reason: [exception.name] [exception.file]:[exception.line]\n[exception.desc]") diff --git a/code/modules/unit_tests/turf_icons.dm b/code/modules/unit_tests/turf_icons.dm index 6f37117289880..945130ada0c45 100644 --- a/code/modules/unit_tests/turf_icons.dm +++ b/code/modules/unit_tests/turf_icons.dm @@ -9,7 +9,7 @@ var/icon_file = initial(turf_path.icon) if(isnull(icon_state) || isnull(icon_file)) continue - if(!(icon_state in icon_states(icon_file))) + if(!icon_exists(icon_file, icon_state)) TEST_FAIL("[turf_path] using invalid icon_state - \"[icon_state]\" in icon file, '[icon_file]") for(var/turf/closed/mineral/turf_path as anything in typesof(/turf/closed/mineral)) //minerals use a special (read: snowflake) MAP_SWITCH definition that changes their icon based on if we're just compiling or if we're actually PLAYING the game. @@ -18,7 +18,7 @@ var/icon_file = initial(turf_path.icon) if(isnull(icon_state) || isnull(icon_file)) continue - if(!(icon_state in icon_states(icon_file))) + if(!icon_exists(icon_file, icon_state)) if(modular_mineral_turf_file && (icon_state in icon_states(modular_mineral_turf_file, 1))) continue if(!(icon_state in icon_states('icons/turf/mining.dmi', 1))) @@ -45,13 +45,13 @@ var/list/burnt_states = instanced_turf.burnt_states() for(var/state in burnt_states) - if(!(state in icon_states(damaged_dmi))) + if(!icon_exists(damaged_dmi, state)) TEST_FAIL("[open_turf_path] has an invalid icon in burnt_states - \"[state]\", in '[damaged_dmi]'") var/list/broken_states = instanced_turf.broken_states() for(var/state in broken_states) - if(!(state in icon_states(damaged_dmi))) + if(!icon_exists(damaged_dmi, state)) TEST_FAIL("[open_turf_path] has an invalid icon in broken_states - \"[state]\", in '[damaged_dmi]'") run_loc_floor_bottom_left = run_loc_floor_bottom_left.ChangeTurf(initial_turf_type) //cleanup. diff --git a/code/modules/uplink/uplink_devices.dm b/code/modules/uplink/uplink_devices.dm index 3c31ddf647f88..c33d6532781d6 100644 --- a/code/modules/uplink/uplink_devices.dm +++ b/code/modules/uplink/uplink_devices.dm @@ -84,34 +84,6 @@ var/datum/component/uplink/hidden_uplink = GetComponent(/datum/component/uplink) hidden_uplink.name = "dusty radio" -// Uplink subtype used as replacement uplink -/obj/item/uplink/replacement - lockable_uplink = TRUE - -/obj/item/uplink/replacement/Initialize(mapload, owner, tc_amount = 10, datum/uplink_handler/uplink_handler_override = null) - . = ..() - var/datum/component/uplink/hidden_uplink = GetComponent(/datum/component/uplink) - var/mob/living/replacement_needer = owner - if(!istype(replacement_needer)) - return - var/datum/antagonist/traitor/traitor_datum = replacement_needer?.mind.has_antag_datum(/datum/antagonist/traitor) - hidden_uplink.unlock_code = traitor_datum?.replacement_uplink_code - become_hearing_sensitive() - -/obj/item/uplink/replacement/screwdriver_act_secondary(mob/living/user, obj/item/tool) - tool.play_tool_sound(src) - balloon_alert(user, "deconstructing...") - if (!do_after(user, 3 SECONDS, target = src)) - return FALSE - qdel(src) - return TRUE - -/obj/item/uplink/replacement/examine(mob/user) - . = ..() - if(!IS_TRAITOR(user)) - return - . += span_notice("You can destroy this device with a screwdriver.") - // Multitool uplink /obj/item/multitool/uplink/Initialize(mapload, owner, tc_amount = 20, datum/uplink_handler/uplink_handler_override = null) . = ..() diff --git a/code/modules/uplink/uplink_items/badass.dm b/code/modules/uplink/uplink_items/badass.dm index 9a346da2d5351..7197eead2fb62 100644 --- a/code/modules/uplink/uplink_items/badass.dm +++ b/code/modules/uplink/uplink_items/badass.dm @@ -59,16 +59,11 @@ name = "Clown Costume" desc = "Nothing is more terrifying than clowns with fully automatic weaponry." item = /obj/item/storage/backpack/duffelbag/clown/syndie - purchasable_from = ALL - progression_minimum = 70 MINUTES /datum/uplink_item/badass/costumes/tactical_naptime name = "Sleepy Time Pajama Bundle" desc = "Even soldiers need to get a good nights rest. Comes with blood-red pajamas, a blankie, a hot mug of cocoa and a fuzzy friend." item = /obj/item/storage/box/syndie_kit/sleepytime - purchasable_from = ALL - progression_minimum = 90 MINUTES - cost = 4 limited_stock = 1 cant_discount = TRUE @@ -76,16 +71,12 @@ name = "Broken Chameleon Kit" desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! \ Please note that this kit did NOT pass quality control." - purchasable_from = ALL - progression_minimum = 90 MINUTES item = /obj/item/storage/box/syndie_kit/chameleon/broken /datum/uplink_item/badass/costumes/centcom_official name = "CentCom Official Costume" desc = "Ask the crew to \"inspect\" their nuclear disk and weapons system, and then when they decline, pull out a fully automatic rifle and gun down the Captain. \ Radio headset does not include encryption key. No gun included." - purchasable_from = ALL - progression_minimum = 110 MINUTES item = /obj/item/storage/box/syndie_kit/centcom_costume /datum/uplink_item/badass/stickers diff --git a/code/modules/uplink/uplink_items/contractor.dm b/code/modules/uplink/uplink_items/contractor.dm index 9283addc18115..a970c42d6ac3b 100644 --- a/code/modules/uplink/uplink_items/contractor.dm +++ b/code/modules/uplink/uplink_items/contractor.dm @@ -13,7 +13,7 @@ item = /obj/item/storage/box/syndicate/contract_kit category = /datum/uplink_category/contractor cost = 20 - purchasable_from = UPLINK_INFILTRATORS + purchasable_from = UPLINK_TRAITORS /datum/uplink_item/bundles_tc/contract_kit/purchase(mob/user, datum/uplink_handler/uplink_handler, atom/movable/source) . = ..() diff --git a/code/modules/uplink/uplink_items/dangerous.dm b/code/modules/uplink/uplink_items/dangerous.dm index e99ae651e2fbb..0c348d810ccea 100644 --- a/code/modules/uplink/uplink_items/dangerous.dm +++ b/code/modules/uplink/uplink_items/dangerous.dm @@ -38,7 +38,6 @@ name = "Energy Sword" desc = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be \ pocketed when inactive. Activating it produces a loud, distinctive noise." - progression_minimum = 20 MINUTES item = /obj/item/melee/energy/sword/saber cost = 6 purchasable_from = ~UPLINK_CLOWN_OPS @@ -49,7 +48,6 @@ Upon hitting a target, the piston-ram will extend forward to make contact for some serious damage. \ Using a wrench on the piston valve will allow you to tweak the amount of gas used per punch to \ deal extra damage and hit targets further. Use a screwdriver to take out any attached tanks." - progression_minimum = 20 MINUTES item = /obj/item/melee/powerfist cost = 6 purchasable_from = ~UPLINK_ALL_SYNDIE_OPS @@ -57,7 +55,6 @@ /datum/uplink_item/dangerous/rapid name = "Gloves of the North Star" desc = "These gloves let the user punch people very fast. Does not improve weapon attack speed or the meaty fists of a hulk." - progression_minimum = 20 MINUTES item = /obj/item/clothing/gloves/rapid cost = 8 @@ -84,7 +81,6 @@ name = "Holoparasites" desc = "Though capable of near sorcerous feats via use of hardlight holograms and nanomachines, they require an \ organic host as a home base and source of fuel. Holoparasites come in various types and share damage with their host." - progression_minimum = 30 MINUTES item = /obj/item/guardian_creator/tech cost = 18 surplus = 0 diff --git a/code/modules/uplink/uplink_items/device_tools.dm b/code/modules/uplink/uplink_items/device_tools.dm index ef2ab6fd1fddc..c9cdfec4e3cab 100644 --- a/code/modules/uplink/uplink_items/device_tools.dm +++ b/code/modules/uplink/uplink_items/device_tools.dm @@ -36,8 +36,10 @@ name = "Syndicate Tome" desc = "Using rare artifacts acquired at great cost, the Syndicate has reverse engineered \ the seemingly magical books of a certain cult. Though lacking the esoteric abilities \ - of the originals, these inferior copies are still quite useful, being able to provide \ - both weal and woe on the battlefield, even if they do occasionally bite off a finger." + of the originals, these inferior copies are still quite useful. \ + Often used by agents to protect themselves against foes who rely on magic while it's held. \ + Though, it can be used to heal and harm other people with decent effectiveness much like a regular bible. \ + Can also be used in-hand to 'claim' it, granting you priest-like abilities -- no training required!" item = /obj/item/book/bible/syndicate cost = 5 diff --git a/code/modules/uplink/uplink_items/explosive.dm b/code/modules/uplink/uplink_items/explosive.dm index ef9f3b4f074c5..0f3b8fa5a5f12 100644 --- a/code/modules/uplink/uplink_items/explosive.dm +++ b/code/modules/uplink/uplink_items/explosive.dm @@ -31,7 +31,6 @@ desc = "Contains 3 X-4 shaped plastic explosives. Similar to C4, but with a stronger blast that is directional instead of circular. \ X-4 can be placed on a solid surface, such as a wall or window, and it will blast through the wall, injuring anything on the opposite side, while being safer to the user. \ For when you want a controlled explosion that leaves a wider, deeper, hole." - progression_minimum = 20 MINUTES item = /obj/item/storage/backpack/duffelbag/syndie/x4 cost = 4 cant_discount = TRUE @@ -67,7 +66,6 @@ name = "Pizza Bomb" desc = "A pizza box with a bomb cunningly attached to the lid. The timer needs to be set by opening the box; afterwards, \ opening the box again will trigger the detonation after the timer has elapsed. Comes with free pizza, for you or your target!" - progression_minimum = 15 MINUTES item = /obj/item/pizzabox/bomb cost = 6 surplus = 8 diff --git a/code/modules/uplink/uplink_items/job.dm b/code/modules/uplink/uplink_items/job.dm index 27102826c562a..f778ecb4dcd70 100644 --- a/code/modules/uplink/uplink_items/job.dm +++ b/code/modules/uplink/uplink_items/job.dm @@ -105,7 +105,6 @@ name = "Combat Bakery Kit" desc = "A kit of clandestine baked weapons. Contains a baguette which a skilled mime could use as a sword, \ a pair of throwing croissants, and the recipe to make more on demand. Once the job is done, eat the evidence." - progression_minimum = 15 MINUTES item = /obj/item/storage/box/syndie_kit/combat_baking cost = 7 restricted_roles = list(JOB_COOK, JOB_MIME) @@ -217,7 +216,6 @@ name = "Reverse Revolver" desc = "A revolver that always fires at its user. \"Accidentally\" drop your weapon, then watch as the greedy corporate pigs blow their own brains all over the wall. \ The revolver itself is actually real. Only clumsy people, and clowns, can fire it normally. Comes in a box of hugs. Honk." - progression_minimum = 30 MINUTES cost = 14 item = /obj/item/storage/box/hug/reverse_revolver restricted_roles = list(JOB_CLOWN) @@ -226,8 +224,6 @@ name = "Kinetic Accelerator Pressure Mod" desc = "A modification kit which allows Kinetic Accelerators to do greatly increased damage while indoors. \ Occupies 35% mod capacity." - // While less deadly than a revolver it does have infinite ammo - progression_minimum = 15 MINUTES item = /obj/item/borg/upgrade/modkit/indoors cost = 5 //you need two for full damage, so total of 10 for maximum damage limited_stock = 2 //you can't use more than two! @@ -246,7 +242,6 @@ /datum/uplink_item/role_restricted/laser_arm name = "Laser Arm Implant" desc = "An implant that grants you a recharging laser gun inside your arm. Weak to EMPs. Comes with a syndicate autosurgeon for immediate self-application." - progression_minimum = 20 MINUTES cost = 10 item = /obj/item/autosurgeon/syndicate/laser_arm restricted_roles = list(JOB_ROBOTICIST, JOB_RESEARCH_DIRECTOR) @@ -255,7 +250,6 @@ /datum/uplink_item/role_restricted/chemical_gun name = "Reagent Dartgun" desc = "A heavily modified syringe gun which is capable of synthesizing its own chemical darts using input reagents. Can hold 90u of reagents." - progression_minimum = 15 MINUTES item = /obj/item/gun/chem cost = 12 restricted_roles = list(JOB_CHEMIST, JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_BOTANIST) @@ -324,7 +318,6 @@ Attach to an exosuit with an existing equipment to disguise the bay as that equipment. The sacrificed equipment will be lost.\ Alternatively, you can attach the bay to an empty equipment slot, but the bay will not be concealed. Once the bay is \ attached, an exosuit weapon can be fitted inside." - progression_minimum = 30 MINUTES item = /obj/item/mecha_parts/mecha_equipment/concealed_weapon_bay cost = 3 restricted_roles = list(JOB_ROBOTICIST, JOB_RESEARCH_DIRECTOR) diff --git a/code/modules/uplink/uplink_items/nukeops.dm b/code/modules/uplink/uplink_items/nukeops.dm index 715990a72814b..d29b1fd16a062 100644 --- a/code/modules/uplink/uplink_items/nukeops.dm +++ b/code/modules/uplink/uplink_items/nukeops.dm @@ -604,7 +604,8 @@ along with slurred speech, aggression, and the ability to infect others with this agent." item = /obj/item/storage/box/syndie_kit/romerol cost = 25 - purchasable_from = UPLINK_ALL_SYNDIE_OPS + progression_minimum = 30 MINUTES + purchasable_from = UPLINK_ALL_SYNDIE_OPS | UPLINK_TRAITORS // Don't give this to spies cant_discount = TRUE // Modsuits diff --git a/code/modules/uplink/uplink_items/stealthy_tools.dm b/code/modules/uplink/uplink_items/stealthy_tools.dm index 7268ef5efe359..5959be8e9fda5 100644 --- a/code/modules/uplink/uplink_items/stealthy_tools.dm +++ b/code/modules/uplink/uplink_items/stealthy_tools.dm @@ -131,7 +131,7 @@ desc = "When purchased, a virus will be uploaded to the engineering processing servers to force a routine power grid check, forcing all APCs on the station to be temporarily disabled." item = ABSTRACT_UPLINK_ITEM surplus = 0 - progression_minimum = 20 MINUTES + progression_minimum = 15 MINUTES limited_stock = 1 cost = 6 restricted = TRUE diff --git a/code/modules/uplink/uplink_items/suits.dm b/code/modules/uplink/uplink_items/suits.dm index a71e604651879..bdc175fbd7b64 100644 --- a/code/modules/uplink/uplink_items/suits.dm +++ b/code/modules/uplink/uplink_items/suits.dm @@ -70,17 +70,6 @@ item = /obj/item/mod/module/shock_absorber cost = 2 -/datum/uplink_item/suits/modsuit/elite_traitor - name = "Elite Syndicate MODsuit" - desc = "An upgraded, elite version of the Syndicate MODsuit. It features fireproofing, and also \ - provides the user with superior armor and mobility compared to the standard Syndicate MODsuit." - item = /obj/item/mod/control/pre_equipped/traitor_elite - // This one costs more than the nuke op counterpart - purchasable_from = ~UPLINK_ALL_SYNDIE_OPS - progression_minimum = 90 MINUTES - cost = 16 - cant_discount = TRUE - /datum/uplink_item/suits/modsuit/wraith name = "MODsuit wraith cloaking module" desc = "A MODsuit module that grants to the user Optical camouflage and the ability to overload light sources to recharge suit power. \ diff --git a/code/modules/vehicles/speedbike.dm b/code/modules/vehicles/speedbike.dm index c7cf18240ae4e..8eb5c97434358 100644 --- a/code/modules/vehicles/speedbike.dm +++ b/code/modules/vehicles/speedbike.dm @@ -9,6 +9,14 @@ . = ..() AddElement(/datum/element/ridable, /datum/component/riding/vehicle/speedbike) +/obj/vehicle/ridden/speedbike/post_buckle_mob(mob/living/user) + . = ..() + update_appearance() + +/obj/vehicle/ridden/speedbike/post_unbuckle_mob() + . = ..() + update_appearance() + /obj/vehicle/ridden/speedbike/Move(newloc,move_dir) if(has_buckled_mobs()) new /obj/effect/temp_visual/dir_setting/speedbike_trail(loc,move_dir) @@ -16,9 +24,10 @@ /obj/vehicle/ridden/speedbike/update_overlays() . = ..() - var/mutable_appearance/cover_overlay = mutable_appearance(icon, cover_iconstate, ABOVE_MOB_LAYER, src, appearance_flags = KEEP_APART) - cover_overlay = color_atom_overlay(cover_overlay) - . += cover_overlay + if(has_buckled_mobs()) + var/mutable_appearance/cover_overlay = mutable_appearance(icon, cover_iconstate, ABOVE_MOB_LAYER, src, appearance_flags = KEEP_APART) + cover_overlay = color_atom_overlay(cover_overlay) + . += cover_overlay /obj/vehicle/ridden/speedbike/red icon_state = "speedbike_red" diff --git a/code/modules/vehicles/vehicle_actions.dm b/code/modules/vehicles/vehicle_actions.dm index b5249c216a742..56c5ecceb0136 100644 --- a/code/modules/vehicles/vehicle_actions.dm +++ b/code/modules/vehicles/vehicle_actions.dm @@ -357,8 +357,10 @@ else vehicle.obj_flags &= ~BLOCK_Z_OUT_DOWN rider.spin(spintime = 4, speed = 1) - animate(rider, pixel_y = -6, time = 4) - animate(vehicle, pixel_y = -6, time = 3) + animate(rider, pixel_z = 6, time = 0.4 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) + animate(pixel_z = -6, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) + animate(vehicle, pixel_z = 6, time = 0.3 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) + animate(pixel_z = -6, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) playsound(vehicle, 'sound/vehicles/skateboard_ollie.ogg', 50, TRUE) passtable_on(rider, VEHICLE_TRAIT) passtable_on(vehicle, VEHICLE_TRAIT) @@ -401,10 +403,12 @@ ) playsound(board, 'sound/vehicles/skateboard_ollie.ogg', 50, vary = TRUE) rider.spin(spintime = 4, speed = 1) - animate(rider, pixel_y = -6, time = 0.4 SECONDS) - animate(board, pixel_y = -6, time = 0.3 SECONDS) + animate(rider, pixel_z = 6, time = 0.4 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) + animate(pixel_z = -6, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) + animate(board, pixel_z = 6, time = 0.3 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) + animate(pixel_z = -6, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) board.unbuckle_mob(rider) - addtimer(CALLBACK(board, TYPE_PROC_REF(/obj/vehicle/ridden/scooter/skateboard, pick_up_board), rider), 1 SECONDS) // so the board can still handle "picking it up" + addtimer(CALLBACK(board, TYPE_PROC_REF(/obj/vehicle/ridden/scooter/skateboard, pick_up_board), rider), 0.5 SECONDS) // so the board can still handle "picking it up" diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index 5a941cc8c80bb..1d4fd03f4f67c 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -215,9 +215,6 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock) ///Name of lighting mask for the vending machine var/light_mask - /// used for narcing on underages - var/obj/item/radio/sec_radio - //the path of the fish_source datum to use for the fishing_spot component var/fish_source_path = /datum/fish_source/vending @@ -286,10 +283,19 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock) /obj/machinery/vending/Destroy() QDEL_NULL(coin) QDEL_NULL(bill) - QDEL_NULL(sec_radio) GLOB.vending_machines_to_restock -= src return ..() +/obj/machinery/vending/vv_edit_var(vname, vval) + . = ..() + if (vname == NAMEOF(src, all_products_free)) + if (all_products_free) + qdel(GetComponent(/datum/component/payment)) + GLOB.vending_machines_to_restock -= src + else + AddComponent(/datum/component/payment, 0, SSeconomy.get_dep_account(payment_department), PAYMENT_VENDING) + GLOB.vending_machines_to_restock += src + /obj/machinery/vending/can_speak(allow_mimes) return is_operational && !shut_up && ..() @@ -1430,11 +1436,12 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock) speak("You are not of legal age to purchase [item_record.name].") #endif if(!(usr in GLOB.narcd_underages)) - if (isnull(sec_radio)) - sec_radio = new (src) - sec_radio.set_listening(FALSE) - sec_radio.set_frequency(FREQ_SECURITY) - sec_radio.talk_into(src, "SECURITY ALERT: Underaged crewmember [usr] recorded attempting to purchase [item_record.name] in [get_area(src)]. Please watch for substance abuse.", FREQ_SECURITY) + aas_config_announce(/datum/aas_config_entry/vendomat_age_control, list( + "PERSON" = usr.name, + "LOCATION" = get_area_name(src), + "VENDOR" = name, + "PRODUCT" = item_record.name + ), src, list(RADIO_CHANNEL_SECURITY)) GLOB.narcd_underages += usr flick(icon_deny,src) vend_ready = TRUE @@ -1939,4 +1946,16 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock) add_filter("vending_outline", 9, list("type" = "outline", "color" = COLOR_VERY_SOFT_YELLOW)) add_filter("vending_rays", 10, list("type" = "rays", "size" = 35, "color" = COLOR_VIVID_YELLOW)) +/datum/aas_config_entry/vendomat_age_control + name = "Security Alert: Underaged Substance Abuse" + announcement_lines_map = list( + "Message" = "SECURITY ALERT: Underaged crewmember %PERSON recorded attempting to purchase %PRODUCT in %LOCATION by %VENDOR. Please watch for substance abuse." + ) + vars_and_tooltips_map = list( + "PERSON" = "will be replaced with the name of the crewmember", + "PRODUCT" = "with the product, he attempted to purchase", + "LOCATION" = "with place of purchase", + "VENDOR" = "with the vending machine" + ) + #undef MAX_VENDING_INPUT_AMOUNT diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm index a86f5562862d9..bf0b9dbee3862 100644 --- a/code/modules/vending/security.dm +++ b/code/modules/vending/security.dm @@ -17,6 +17,7 @@ /obj/item/restraints/legcuffs/bola/energy = 7, /obj/item/clothing/gloves/tackler = 5, /obj/item/holosign_creator/security = 2, + /obj/item/gun_maintenance_supplies = 2, ) contraband = list( /obj/item/clothing/glasses/sunglasses = 2, diff --git a/code/modules/wiremod/components/action/soundemitter.dm b/code/modules/wiremod/components/action/soundemitter.dm index 676ce8744385f..144a56295dd90 100644 --- a/code/modules/wiremod/components/action/soundemitter.dm +++ b/code/modules/wiremod/components/action/soundemitter.dm @@ -33,11 +33,19 @@ var/list/options_map +/obj/item/circuit_component/soundemitter/Initialize(mapload) + if(CONFIG_GET(flag/disallow_circuit_sounds)) + update_ui_alerts(new_flag=CIRCUIT_FLAG_DISABLED) + . = ..() + /obj/item/circuit_component/soundemitter/get_ui_notices() . = ..() . += create_ui_notice("Sound Cooldown: [DisplayTimeText(sound_cooldown)]", "orange", "stopwatch") if(CONFIG_GET(flag/disallow_circuit_sounds)) . += create_ui_notice("Non-functional", "red", "exclamation") + update_ui_alerts(new_flag=CIRCUIT_FLAG_DISABLED) + else + update_ui_alerts(remove_flag=CIRCUIT_FLAG_DISABLED) /obj/item/circuit_component/soundemitter/populate_ports() @@ -79,10 +87,11 @@ /obj/item/circuit_component/soundemitter/input_received(datum/port/input/port) if(CONFIG_GET(flag/disallow_circuit_sounds)) - ui_color = "red" + // Without constantly checking the config 24/7 or sending a signal to every circuit, best we can do to update existing emitters is this. + update_ui_alerts(new_flag=CIRCUIT_FLAG_DISABLED) return else - ui_color = initial(ui_color) + update_ui_alerts(remove_flag=CIRCUIT_FLAG_DISABLED) if(!parent.shell) return diff --git a/code/modules/wiremod/components/admin/signal_handler/signal_list.dm b/code/modules/wiremod/components/admin/signal_handler/signal_list.dm index 7d6571484b7f7..3c0cabd7f3027 100644 --- a/code/modules/wiremod/components/admin/signal_handler/signal_list.dm +++ b/code/modules/wiremod/components/admin/signal_handler/signal_list.dm @@ -61,7 +61,7 @@ GLOBAL_LIST_INIT(integrated_circuit_global_signal_ids, generate_global_circuit_s ) /obj/item/circuit_component/signal_handler/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_ADMIN) /obj/item/circuit_component/signal_handler/ui_static_data(mob/user) . = list() diff --git a/code/modules/wiremod/core/admin_panel.dm b/code/modules/wiremod/core/admin_panel.dm index 9a262cb5e4c9f..f74a6453dc059 100644 --- a/code/modules/wiremod/core/admin_panel.dm +++ b/code/modules/wiremod/core/admin_panel.dm @@ -71,7 +71,7 @@ ADMIN_VERB(view_all_circuits, R_ADMIN, "View All Circuits", "List all circuits i return TRUE /datum/circuit_admin_panel/ui_state(mob/user) - return GLOB.admin_state + return ADMIN_STATE(R_ADMIN) /datum/circuit_admin_panel/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) diff --git a/code/modules/wiremod/core/component.dm b/code/modules/wiremod/core/component.dm index 07f3a5b55a379..7dda865fb6409 100644 --- a/code/modules/wiremod/core/component.dm +++ b/code/modules/wiremod/core/component.dm @@ -64,6 +64,10 @@ /// The UI buttons of this circuit component. An assoc list that has this format: "button_icon" = "action_name" var/ui_buttons = null + /// The "important" UI tooltips of this circuit component. Used for important things like instant & disabled circuits, they're drawn next to the default tooltip icon. + /// An assoc list with the format ui_alerts["alert_icon"] = "alert_name". + var/ui_alerts = list() + /// Called when the option ports should be set up /obj/item/circuit_component/proc/populate_options() return @@ -86,8 +90,7 @@ trigger_input = add_input_port("Trigger", PORT_TYPE_SIGNAL, order = 2) if((circuit_flags & CIRCUIT_FLAG_OUTPUT_SIGNAL) && !trigger_output) trigger_output = add_output_port("Triggered", PORT_TYPE_SIGNAL, order = 2) - if(circuit_flags & CIRCUIT_FLAG_INSTANT) - ui_color = "orange" + update_ui_alerts() /obj/item/circuit_component/Destroy() if(parent) @@ -113,6 +116,21 @@ if(circuit_flags & CIRCUIT_FLAG_REFUSE_MODULE) . += span_notice("It's incompatible with module components.") +/// updates the ui alerts in the given component. new_flag adds flags, remove_flag removes them +/obj/item/circuit_component/proc/update_ui_alerts(new_flag, remove_flag) + if(new_flag) + circuit_flags |= new_flag + if(remove_flag) + circuit_flags &= ~remove_flag + if(circuit_flags & CIRCUIT_FLAG_INSTANT) + ui_alerts["tachometer-alt"] = "Instant" + else + ui_alerts -= "tachometer-alt" + if(circuit_flags & CIRCUIT_FLAG_DISABLED) + ui_alerts["exclamation"] = "Non-functional" + else + ui_alerts -= "exclamation" + /** * Called when a shell is registered from the component/the component is added to a circuit. * diff --git a/code/modules/wiremod/core/integrated_circuit.dm b/code/modules/wiremod/core/integrated_circuit.dm index 1023a59eb2100..9cdc5ef93e4b4 100644 --- a/code/modules/wiremod/core/integrated_circuit.dm +++ b/code/modules/wiremod/core/integrated_circuit.dm @@ -380,6 +380,8 @@ GLOBAL_LIST_EMPTY_TYPED(integrated_circuits, /obj/item/integrated_circuit) component_data["y"] = component.rel_y component_data["removable"] = component.removable component_data["color"] = component.ui_color + component_data["category"] = component.category + component_data["ui_alerts"] = component.ui_alerts component_data["ui_buttons"] = component.ui_buttons .["components"] += list(component_data) @@ -711,7 +713,7 @@ GLOBAL_LIST_EMPTY_TYPED(integrated_circuits, /obj/item/integrated_circuit) /// Sets the display name that appears on the shell. /obj/item/integrated_circuit/proc/set_display_name(new_name) - display_name = copytext(new_name, 1, label_max_length) + display_name = copytext_char(new_name, 1, label_max_length) if(!shell) return diff --git a/config/config.txt b/config/config.txt index 2e1b9b7f1fc52..eb70f566ad382 100644 --- a/config/config.txt +++ b/config/config.txt @@ -176,8 +176,12 @@ IPINTEL_REJECT_BAD ## Set to prevent anyone but those ckeys listed in config/whitelist.txt and config/admins.txt from joining your server #USEWHITELIST +## The address shown for the game server in the TGS check command +# PUBLIC_ADDRESS ss13.example.com:2506 + ## set a server location for world reboot. Don't include the byond://, just give the address and port. ## Don't set this to the same server, BYOND will automatically restart players to the server when it has restarted. +## This is also used to show the server's address in the TGS check command if the public address isn't set # SERVER ss13.example.com:2506 ## forum address @@ -428,18 +432,20 @@ MINUTE_CLICK_LIMIT 400 ## Various messages to be sent to connected chat channels. ## Uncommenting these will enable them, by default they will be broadcast to Game chat channels on TGS3 or non-admin channels on TGS>=4. ## If using TGS>=4, the string option can be set as one of more chat channel tags (separated by ','s) to limit the message to channels with that tag name (case-sensitive). This will have no effect on TGS3. -## i.e. CHANNEL_ANNOUNCE_NEW_GAME chat_channel_tag +## You can also specify multiple channel tags by using the config option multiple times, +## i.e. CHANNEL_ANNOUNCE_NEW_GAME chat_channel_tag_1 +## i.e. CHANNEL_ANNOUNCE_NEW_GAME chat_channel_tag_2 -## Which channel will have a message about a new game starting, message includes the station name. +## Which channels will have a message about a new game starting, message includes the station name. #CHANNEL_ANNOUNCE_NEW_GAME -## Which channel will have a message about a new game starting, message includes the round ID of the game that has just ended. +## Which channels will have a message about a new game starting, message includes the round ID of the game that has just ended. #CHANNEL_ANNOUNCE_END_GAME ## Ping users who use the `notify` command when a new game starts. #CHAT_NEW_GAME_NOTIFICATIONS -## Uncomment this to validate admin commands from discord by requiring they come from linked discord accounts and that those discord accounts link to a ckey with the right admin permissions. +## Uncomment this flag to validate admin commands from discord by requiring they come from linked discord accounts and that those discord accounts link to a ckey with the right admin permissions. # SECURE_CHAT_COMMANDS ## Allow admin hrefs that don't use the new token system, will eventually be removed diff --git a/dependencies.sh b/dependencies.sh index c7086bb55451b..5d6508d722a8e 100644 --- a/dependencies.sh +++ b/dependencies.sh @@ -8,7 +8,7 @@ export BYOND_MAJOR=515 export BYOND_MINOR=1647 #rust_g git tag -export RUST_G_VERSION=3.5.1 +export RUST_G_VERSION=3.6.0 #node version export NODE_VERSION_LTS=22.11.0 diff --git a/html/changelogs/AutoChangeLog-pr-89509.yml b/html/changelogs/AutoChangeLog-pr-89509.yml new file mode 100644 index 0000000000000..6db53a629f604 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-89509.yml @@ -0,0 +1,4 @@ +author: "necromanceranne" +delete-after: True +changes: + - balance: "Having a strongarm implant installed into each arm now allows you to pry open doors." \ No newline at end of file diff --git a/html/changelogs/archive/2025-02.yml b/html/changelogs/archive/2025-02.yml index b8f62a6d620be..c5a5a1696d269 100644 --- a/html/changelogs/archive/2025-02.yml +++ b/html/changelogs/archive/2025-02.yml @@ -34,3 +34,375 @@ in the ruin, however. zoomachina: - bugfix: showers wash things under them when they're turned on again +2025-02-03: + Absolucy: + - bugfix: Random messages should no longer be dropped and not appear in chat. + SmArtKar: + - bugfix: Fixed an issue with persisting brimbeams + jlsnow301: + - bugfix: Character pref dropdowns should have their display names fixed + necromanceranne: + - balance: The force of most standard varieties of toolboxes has increased from + 12 to 13 force. + - code_imp: Removed some magic numbers from the calculations for ancient toolboxes + damage scaling. + siliconOpossum: + - bugfix: Lathes interfaces are no longer unscrollable on 516 +2025-02-04: + necromanceranne: + - bugfix: Allows MOD holsters to once again activate while the modsuit is inactive + and undeployed. +2025-02-05: + Melbert: + - qol: Map vote tallies explains how they work if you hover them +2025-02-06: + Absolucy: + - bugfix: Void Cloaks now properly hide blades and such in the suit storage from + the wearer's sprite. + Ben10Omintrix: + - bugfix: fixes virtual pet app changing PDA's colors when open + Exester509: + - map: The Syndicate Lavaland base has been generally improved, with more defenses + and comms equipment. + Gaxeer: + - bugfix: fix image display in `NT IRN` PDA app for preview and contents + Holoo-1: + - bugfix: fixed state laws window on 516 + Jacquerel: + - bugfix: AI-controlled ventcrawling mobs (botanical spiderlings and legioned monkeys) + can once more do so without killing themselves shortly afterwards. + JohnFulpWillard: + - bugfix: Autolathes no longer have a scrollbar that sends you off the screen. + - bugfix: Exosuit fabricators' queue list & Techfab/Autolathe's left side (with + the sections of printables) now have a scrollbar when the full list doesn't + fit on the UI for 516 users. Techfab/Autolathe also now does this for the list + of items too, instead of always having one. + SmArtKar: + - bugfix: Tactical medkits should no longer create invisible medbots + - image: Implemented the missing bezerk medbot skin + - bugfix: Fixed another two missing areas on icebox + - bugfix: Fixed incorrect power consumption on reagent grinders + - bugfix: Fixed wrong area/wall in Icemoon Underground + - map: Added cooling loops and cold tiles to all kitchen freezers that were missing + them + - bugfix: Fixed plant analyzers not being placeable on tables/in backpacks + - bugfix: Fixed stunprod's missing inhands sprite + TiviPlus: + - bugfix: fixed some admin links not working on 516 + Y0SH1M4S73R: + - bugfix: Joining a minigame or taking certain ghost roles, while you have a mind + without a body, will no longer DNR you, just in case you can be resurrected + by some means. + - bugfix: If your old body is permanently destroyed while you are playing a minigame + or as certain ghost roles, you will still return to your character's original + mind, just in case you can be resurrected by some means. + - bugfix: The basketball minigame now gives its players and referee temporary bodies. +2025-02-07: + Runi-c: + - balance: slips now make you eligible for being shove stunned + SmArtKar: + - balance: Removed an oversight which allowed you to farm fishing achievements + TiviPlus: + - server: An issue where more than 16 admin flags could not exist in the DB has + been corrected +2025-02-08: + Absolucy: + - bugfix: Fixed some mistakes I made while fixing the void cloak. + Holoo-1: + - bugfix: fixed camera consoles, spyglasses etc. client crush on 516 + MTandi: + - qol: Tile context menu tweaks (Loot panel) + Thunder12345: + - map: Removed a mounted machine gun from the Meta Central bitrunning domain, expect + 85% less instant wipes. + Wallem: + - qol: Integrated Circuit nodes are now colored depending on their type. + necromanceranne: + - balance: Hunter boxing now directly heals you instead of injecting you with healing + chems on a successful crit. + - balance: Your combos no longer cause you to screw up your next combo by changing + your attack speed for exactly one punch. + - code_imp: Fixes up a bit of odd rounding that occurs in the experience gain totals + and uses division instead of multipliers where it makes sense. + - refactor: Gun maintenance is now consolidated into a single item, the gun maintenance + kit, rather than multiple different item interactions. It is handled on the + maintenance kit itself, and not in gun code. + - qol: You can order maintenance kits from cargo, and get some out of the security + equipment vendor. Helpful if someone spilled acid onto your disabler. You can + also make a makeshift one from maintenance trash. + vinylspiders: + - qol: alien eggs (xeno embryos, headslugs, etc) will now show up on the advanced + medical scanner +2025-02-09: + Likteer: + - qol: Added the resin mister module to the roundstart atmos MODsuit. + Melbert: + - rscadd: Adds two fantasy affixes + SmArtKar: + - rscadd: Hydrogen Peroxide and Eldritch Essence now can rust turfs, with latter + producing heretic instead of normal rust. + - spellcheck: Fixed a misspelled comment and a reference to non-existent Eldritch + water (as opposed to Eldritch Essence) + TealSeer: + - bugfix: Fixed the crystallizer missing pipe connectors + grungussuss: + - sound: gauze now makes sounds when applied + loganuk: + - qol: Pyro Slime Objective Text Edit + necromanceranne: + - code_imp: Removes a variable in the riddable creature component that shouldn't + be doing what it is doing. + timothymtorres: + - code_imp: Add error message logs to screenshot CI test failure when screenshots + do not exist. +2025-02-10: + SmArtKar: + - bugfix: Fixed missing HTML encodes in comms console code + - bugfix: Examining walls no longer allows you to see items mounted on its other + side + TiviPlus: + - code_imp: updated hslify to correctly detect all hexcodes + necromanceranne: + - bugfix: The traitor guncase properly checks for condition changes before letting + a player activate the time bomb. +2025-02-11: + SmArtKar: + - bugfix: Fixed wooden rifle stock being uncraftable + - bugfix: Fixed exceptionally dark armrests on chairs + - bugfix: Fixed dress and gown rendering below gloves and shoes + Time-Green: + - rscdel: Reverts sneeze projectiles +2025-02-12: + FlufflesTheDog: + - bugfix: crafted medibots are more consistently corporeal + Kiromaka: + - balance: Helbital reaper is now 100x more likely. + Rengan: + - bugfix: When you cast examine to the disguised detective, its assignment will + now display correctly. + grungussuss: + - sound: new sounds for cloth items +2025-02-13: + Jacquerel: + - admin: Added easier tooling for admins to add or change the AI controllers on + mobs + JohnFulpWillard: + - admin: Reload Configuration can be cancelled via the alert it gives you. + - admin: Check antagonists & del/law/dna/fingerprint/radio log panels use browsers + which means they have darkmode. Also the tram panel will cancel out if you click + cancel. + Melbert: + - bugfix: Fixed grab offsets not showing for anything but passive grab + - bugfix: Fix jank with mob offsets when riding things + - refactor: Refactored riding component, particularly how it selects layer and offsets. + Report any oddities + - refactor: Refactored pixel offsets of mobs. Report any oddities + RusselNotSCP: + - qol: Andromeda Bitters bottle now only dispenses in 1-5u increments + SmArtKar: + - admin: Admins can now make vendors free without too much hassle + - bugfix: Fixed duplicated comsigs/text and HARS head deletion from prosthetic replacement + - bugfix: Barroaches no longer disappear when worn on your head + - image: Barroaches now have new worn sprites + - bugfix: Fixed perceptomatrix not applying any of its traits + TiviPlus: + - code_imp: deleted all remaining code referencing TGS3 +2025-02-14: + Absolucy: + - bugfix: Syndicate encryption keys properly protect against AoE radio jamming again. + Melbert: + - rscdel: Honorific "full name" setting no longer cares about mononyms, meaning + Lizards and people with similarly hyphenated names will no longer get their + name butchered. + MelokGleb: + - image: broken radio is now not flat and old + SmArtKar: + - bugfix: Makes glowstick fluid respect chosen RLD color + - bugfix: Chef's love and french kissing no longer can stop laser projectiles of + syndiekissers. + - code_imp: Unified two parts of kiss code. + TealSeer: + - qol: The limb grower can now be unwrenched and rotated + Time-Green, Donglesplonge, SmartKar: + - rscadd: Adds the flesh reshaper to genetics and the Gene Engineering techweb! + Restyle all those visual organs! Don't like your moth coworkers' wings? Restyle + them to your liking! + TiviPlus: + - bugfix: Fixed stat panel turf list menu clicks only working on the text + hyperjll: + - qol: The Syndicate Tome's uplink description has been changed to mention it's + functionality. + - balance: Haloperidol's self-purge is drastically reduced while the host is stamina + crit, as a result of permanent stamina crit no longer being a thing to worry + about. + timothymtorres: + - code_imp: Optimize Nyctophobia quirk to not process while certain traits present + - code_imp: Convert weather duration to use time defines +2025-02-15: + Ghommie: + - rscadd: Added three tips to the fishing tips text file. + Jacquerel: + - admin: Gives admins the ability to make mobs say/emote things from a list at random + intervals for the rest of their lives. + - rscdel: Misplaced or stolen traitor uplinks can no longer be recreated using a + radio code and special device, guard yours carefully or buy a backup implant. + - rscdel: Roundstart traitors can no longer take on additional objectives in order + to earn additional Telecrystals and fast-forward any unlock timers on items. + They also cannot earn the ability to complete a Final Objective. + - balance: Roundstart traitors can now buy the Contractor Kit from their traitor + uplink, rather than only midround traitors. + - rscadd: Traitors can buy Romerol for 25 TC, after 30 minutes of time has passed + in a round. + - image: Watchers won't display an animated cog at the same time as using their + gaze attack. + Melbert: + - bugfix: Spy uplink scans on RMB as intended + davethwave: + - rscdel: Removed the weighting of viro symptoms + grungussuss: + - sound: sutures got some sounds +2025-02-16: + 00-Steven: + - bugfix: Emotion mask reskinning works properly + GwynCodes: + - rscadd: Added a button in the "Secrets" menu to alter the department console order + delay. + - qol: Button makes it easier to find cargo related bugs. + - code_imp: Changed code in department_order.dm to allow for overriding the order + cooldown duration. + - admin: Created an admin button in the "Secrets" panel. + larentoun: + - bugfix: Changeling egg burst now correctly gives "monkey (123)" name for the changeling-monkey + instead of getting a random human name. + leaKsi: + - bugfix: Fixed a few sanitization issues. + necromanceranne: + - bugfix: Pellet clouds now can cause bleeds and punctures if the projectile is + sharp. + - bugfix: Cryogelidia can no longer put you into stasis longer than the lifespan + of the cube prison it kept you in. +2025-02-17: + 00-Steven: + - bugfix: Jumpsuit sensors context tips actually show when you are holding the jumpsuit. + - qol: You may right click to change jumpsuit sensors when it's in your active hand, + instead of having to swap to an empty hand or drop it to do so. + Absolucy: + - admin: Certain UI-based tools (plane debugger, filter editor, etc) that were given + to admins with only +VAREDIT or +DEBUG, but refused to open without +ADMIN, + now actually work for admins that have the needed permission. + Archemagus: + - code_imp: Shuttles with walls painted via color var shouldn't lose their walls + in transit + Archie700: + - qol: Gives a confirmation box describing the mayhem in a bottle's effect when + a player tries to break the bottle. Player must confirm before bottle takes + effect. + Ghommie: + - bugfix: Space dragons' eyes, teeths and claws (and shark form's underside) are + once again of a different color than the rest of the body. + - bugfix: Trying to fish on an adjacent spot won't end up hitting other things on + the same turf (provided you actually click the fishing spot and not other things). + - bugfix: Fixing the icon state for the "fritterish" fish variants. + Jacquerel: + - rscadd: Adjusted what things you can hallucinate people being accused of doing + or being over the radio + - bugfix: Prisoners will no longer spawn on Tram with an item which allows them + to immediately exit the jail. + - balance: Prisoners also don't get bonus goodies in their internals box when the + station trait rolls, because we're mean. + - bugfix: Traitor reputation (which is now basically just a number representing + how many seconds were in the round) is no longer displayed on the roundend screen. + Melbert: + - bugfix: Fixed offset during vehicle traversal over boxes and tables, as well as + while floating + Rengan: + - sound: the volume that vox, admin sound, insturments play at can now be tweaked + in preferences, check your preferences! + - sound: Elevator now uses ambience volume preference, jukeboxes uses instrument + volume preference and end of round musics uses admin music volume preference. + SmArtKar: + - qol: SiliConnect now informs you that you're successfully downloading logs + - bugfix: Fixes SiliConnect not being able to download logs + - bugfix: Fixed broken layering on some vehicles + - bugfix: You can no longer stuff abstract concepts of kisses and slaps into someone's + chest cavity + - bugfix: Fixed map votes not refreshing the amount of possible choices + - rscadd: Added a new 3D printable gun "The Liberator", you can find the gun itself + or its design disc in maintenance tunnels. + SyncIt21: + - bugfix: multiplying reagents in cases like fishing & chem splash will yield accurate + results. New amounts differ from present values + - bugfix: converting reagents actually yields correct ph again + - code_imp: improved performance of reagent logging + - code_imp: copying reagents won't return false negatives for values lesser than + 0.01 + TealSeer: + - qol: The medipen refiller can now be rotated when unanchored with alt-click + TiviPlus: + - code_imp: Made it easier to set custom orders for stat panel tabs in code + - bugfix: fixed some filters (e.g displacement) in filteriffic bluescreening the + UI + - bugfix: fixed tgui alerts sometimes having a lot of empty space in their layout + distributivgesetz: + - config: Added support for multiple chat channel configs for channel announcements. + norsvenska: + - map: The NTSS Independence has, once again, been upgraded. Now featuring a proper + ballroom, an expanded infirmary, a security office, and much more available + seating. + - bugfix: Doctor Rumack, the NTSS Independence's resident medibot, is no longer + invisible. + subject217: + - sound: The ghost poll sound is quieter. + timothymtorres: + - bugfix: Fix runtime when simple mobs are exposed to reagents +2025-02-18: + Absolucy: + - bugfix: SecurEye now properly follows moving cameras. + Archemagus: + - rscadd: 'Many things now handles via AAS: Bounty Cubes, Request Consoles, Brig + Cells, Vending Machines and Orion Trails alerts, Weather Reports, Cargo Order + Console' + - code_imp: Now anyone can make their own entry for AAS + - refactor: AAS internals, also cleanup + EnterTheJake: + - rscadd: New Heretic starting Side-Knowdge Warren King's Welcome + - rscadd: New Heretic T1 Side knowledge, Phylactery Of Damnation. + - rscadd: New Heretic T2 Side knowledge, Ether Of The Newborn. + - rscadd: New Heretic T3 Side knowledge, Codex Morbus. + - rscadd: New Heretic T2 Side knowledge, Rust Sower grenade. + - rscadd: New Heretic T3 Side knowledge, Greaves Of The Prophet. + - rscadd: New Blade Path Spell, Wolves Among Sheep. + - balance: Heretic curses have been removed from the tree and bundled in the new + Knowledge, Codex Morbus. + - balance: Blade Path tree has been shuffled a bit, all spells have been moved up + by one tier to make space for the new spell. + Jacquerel: + - balance: The reputation "time locks" on various items in the Traitor uplink have + been reduced or removed. Effected items include the holoparasite kit, energy + sword, power fist, gloves of the northstar, pizza bomb, bag of x4, combat bakery + kit, reverse revolver, kinetic accelerator modkit, laser arm implant, concealed + weapon bay, chemical dart gun, and stationwide APC check. + - balance: The centcom inspector costume is now more expensive. + - rscdel: Several previously nukie-only wardrobe options in the traitor uplink are + now once more only available to nuclear operatives. + - rscdel: Spies can no longer receive an elite nuclear operative suit. + LT3: + - bugfix: Revert next map command actually reverts the map vote + - admin: Admins now have a verb to revert the map vote + SmArtKar: + - bugfix: Fixed scars not being examine-able if you wore a mask + - bugfix: Fixed uniform sensors being examine-able even when worn under a spacesuit. + - map: Moved Birdshot's tech storage to be between bridge and engineering, with + a brand old abandoned brewery in its former place. + - bugfix: Fixed mapvotes spontaneously failing + - bugfix: Fixed pyroclastic slime RRing ghosts + - balance: Space helmets and bio/bomb/rad hoods have lost their slowdown/FOV respectively, + but now can have their visor covered by spraypaint or pepper spray. + - balance: Driscoll mask no longer protects your eyes, unlike welding gas mask which + received said protection. + Xackii: + - rscadd: Big Manipulator now has use mode once again. You need buckle monkey to + unlock this future. + - rscadd: Big Manipulator now has wires. + - bugfix: Big Manipualtor now sees objects that appeared on the tile using spawn + or any other means in which the object is not considered to have moved diff --git a/html/statbrowser.js b/html/statbrowser.js index d4f5c6cd428e5..d814f44d8b39d 100644 --- a/html/statbrowser.js +++ b/html/statbrowser.js @@ -67,10 +67,7 @@ function createStatusTab(name) { button.textContent = name; button.className = "button"; //ORDERING ALPHABETICALLY - button.style.order = name.charCodeAt(0); - if (name == "Status" || name == "MC") { - button.style.order = name == "Status" ? 1 : 2; - } + button.style.order = ({"Status": 1, "MC": 2})[name] || name.charCodeAt(0); //END ORDERING menu.appendChild(button); SendTabToByond(name); @@ -438,24 +435,7 @@ function draw_listedturf() { var table = document.createElement("table"); for (var i = 0; i < turfcontents.length; i++) { var part = turfcontents[i]; - if (storedimages[part[1]] == null && part[2]) { - var img = document.createElement("img"); - img.src = part[2]; - img.id = part[1]; - storedimages[part[1]] = part[2]; - img.onerror = iconError; - table.appendChild(img); - } else { - var img = document.createElement("img"); - img.onerror = iconError; - img.src = storedimages[part[1]]; - img.id = part[1]; - table.appendChild(img); - } - var b = document.createElement("div"); - var clickcatcher = ""; - b.className = "link"; - b.onmousedown = function (part) { + var clickfunc = function (part) { // The outer function is used to close over a fresh "part" variable, // rather than every onmousedown getting the "part" of the last entry. return function (e) { @@ -483,6 +463,26 @@ function draw_listedturf() { window.location.href = clickcatcher; } }(part); + if (storedimages[part[1]] == null && part[2]) { + var img = document.createElement("img"); + img.src = part[2]; + img.id = part[1]; + storedimages[part[1]] = part[2]; + img.onerror = iconError; + img.onmousedown = clickfunc; + table.appendChild(img); + } else { + var img = document.createElement("img"); + img.onerror = iconError; + img.onmousedown = clickfunc; + img.src = storedimages[part[1]]; + img.id = part[1]; + table.appendChild(img); + } + var b = document.createElement("div"); + var clickcatcher = ""; + b.className = "link"; + b.onmousedown = clickfunc; b.textContent = part[0]; table.appendChild(b); table.appendChild(document.createElement("br")); diff --git a/icons/effects/mapping_helpers.dmi b/icons/effects/mapping_helpers.dmi index c415d4dcff1f4..cd8d331a5e7e6 100644 Binary files a/icons/effects/mapping_helpers.dmi and b/icons/effects/mapping_helpers.dmi differ diff --git a/icons/hud/screen_alert.dmi b/icons/hud/screen_alert.dmi index 4fd8b3c8592d1..50534fa770aa2 100644 Binary files a/icons/hud/screen_alert.dmi and b/icons/hud/screen_alert.dmi differ diff --git a/icons/mob/actions/actions_ecult.dmi b/icons/mob/actions/actions_ecult.dmi index d287622f898e5..9710dfd3f505c 100644 Binary files a/icons/mob/actions/actions_ecult.dmi and b/icons/mob/actions/actions_ecult.dmi differ diff --git a/icons/mob/actions/backgrounds.dmi b/icons/mob/actions/backgrounds.dmi index c8f8b723f9e96..0c82afeb05c79 100644 Binary files a/icons/mob/actions/backgrounds.dmi and b/icons/mob/actions/backgrounds.dmi differ diff --git a/icons/mob/clothing/feet.dmi b/icons/mob/clothing/feet.dmi index 95a3790ac7331..b316830f19a16 100644 Binary files a/icons/mob/clothing/feet.dmi and b/icons/mob/clothing/feet.dmi differ diff --git a/icons/mob/clothing/head/bio.dmi b/icons/mob/clothing/head/bio.dmi index 205ea7945a7ed..d62ccd4a182ad 100644 Binary files a/icons/mob/clothing/head/bio.dmi and b/icons/mob/clothing/head/bio.dmi differ diff --git a/icons/mob/clothing/head/pets_head.dmi b/icons/mob/clothing/head/pets_head.dmi index 0f1e089c164eb..454bfca31ca0d 100644 Binary files a/icons/mob/clothing/head/pets_head.dmi and b/icons/mob/clothing/head/pets_head.dmi differ diff --git a/icons/mob/clothing/head/spacehelm.dmi b/icons/mob/clothing/head/spacehelm.dmi index d9a634a63c771..b623fa0beeaf8 100644 Binary files a/icons/mob/clothing/head/spacehelm.dmi and b/icons/mob/clothing/head/spacehelm.dmi differ diff --git a/icons/mob/clothing/head/utility.dmi b/icons/mob/clothing/head/utility.dmi index 51fd3191f1b10..32b1add375723 100644 Binary files a/icons/mob/clothing/head/utility.dmi and b/icons/mob/clothing/head/utility.dmi differ diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi index 89e01e574afb2..427e48189c9ab 100644 Binary files a/icons/mob/clothing/mask.dmi and b/icons/mob/clothing/mask.dmi differ diff --git a/icons/mob/effects/crown.dmi b/icons/mob/effects/crown.dmi new file mode 100644 index 0000000000000..ed346627c23e4 Binary files /dev/null and b/icons/mob/effects/crown.dmi differ diff --git a/icons/mob/inhands/equipment/medical_lefthand.dmi b/icons/mob/inhands/equipment/medical_lefthand.dmi index 8495aa6355e11..c6ba6cf3bd3a0 100644 Binary files a/icons/mob/inhands/equipment/medical_lefthand.dmi and b/icons/mob/inhands/equipment/medical_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/medical_righthand.dmi b/icons/mob/inhands/equipment/medical_righthand.dmi index c013e3021f61d..1f70d911ab62d 100644 Binary files a/icons/mob/inhands/equipment/medical_righthand.dmi and b/icons/mob/inhands/equipment/medical_righthand.dmi differ diff --git a/icons/mob/inhands/equipment/security_lefthand.dmi b/icons/mob/inhands/equipment/security_lefthand.dmi index 91306c0a093c1..e87eebd154ee6 100644 Binary files a/icons/mob/inhands/equipment/security_lefthand.dmi and b/icons/mob/inhands/equipment/security_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/security_righthand.dmi b/icons/mob/inhands/equipment/security_righthand.dmi index c6d26854eb6da..e153e6395ff7b 100644 Binary files a/icons/mob/inhands/equipment/security_righthand.dmi and b/icons/mob/inhands/equipment/security_righthand.dmi differ diff --git a/icons/mob/silicon/aibots.dmi b/icons/mob/silicon/aibots.dmi index 7a4d3ca9c9cf4..b0bc6261f6de5 100644 Binary files a/icons/mob/silicon/aibots.dmi and b/icons/mob/silicon/aibots.dmi differ diff --git a/icons/obj/antags/eldritch.dmi b/icons/obj/antags/eldritch.dmi index 0a7b097127cc8..8eb5fb8a39482 100644 Binary files a/icons/obj/antags/eldritch.dmi and b/icons/obj/antags/eldritch.dmi differ diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi index 66bf7a5191229..7b7a18dc22190 100644 Binary files a/icons/obj/card.dmi and b/icons/obj/card.dmi differ diff --git a/icons/obj/clothing/head/bio.dmi b/icons/obj/clothing/head/bio.dmi index 4744e596034e1..980cb717143e7 100644 Binary files a/icons/obj/clothing/head/bio.dmi and b/icons/obj/clothing/head/bio.dmi differ diff --git a/icons/obj/clothing/head/spacehelm.dmi b/icons/obj/clothing/head/spacehelm.dmi index 980d2a07a50be..05362ab689f32 100644 Binary files a/icons/obj/clothing/head/spacehelm.dmi and b/icons/obj/clothing/head/spacehelm.dmi differ diff --git a/icons/obj/clothing/head/utility.dmi b/icons/obj/clothing/head/utility.dmi index 17040f5bb8b53..e320d411f98d9 100644 Binary files a/icons/obj/clothing/head/utility.dmi and b/icons/obj/clothing/head/utility.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index 62c1fa687406b..bed728398f044 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi index 8c91be43d4ad0..32bd4d5c07670 100644 Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ diff --git a/icons/obj/machines/big_manipulator_parts/big_manipulator_hand.dmi b/icons/obj/machines/big_manipulator_parts/big_manipulator_hand.dmi index e165441e8052e..37dfd7d82f53c 100644 Binary files a/icons/obj/machines/big_manipulator_parts/big_manipulator_hand.dmi and b/icons/obj/machines/big_manipulator_parts/big_manipulator_hand.dmi differ diff --git a/icons/obj/medical/surgery_tools.dmi b/icons/obj/medical/surgery_tools.dmi index d050736feed63..192beb50060a9 100644 Binary files a/icons/obj/medical/surgery_tools.dmi and b/icons/obj/medical/surgery_tools.dmi differ diff --git a/icons/obj/storage/toolbox.dmi b/icons/obj/storage/toolbox.dmi index 49385d5b73cf2..ccc9c2cc4397e 100644 Binary files a/icons/obj/storage/toolbox.dmi and b/icons/obj/storage/toolbox.dmi differ diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi index a77b88944cb37..f3e7b554253b2 100644 Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ diff --git a/icons/obj/toys/toy.dmi b/icons/obj/toys/toy.dmi index bc6f2f75424c3..52bfe6aa3a535 100644 Binary files a/icons/obj/toys/toy.dmi and b/icons/obj/toys/toy.dmi differ diff --git a/icons/obj/weapons/grenade.dmi b/icons/obj/weapons/grenade.dmi index c2eba7adcc1d6..415166f9c4074 100644 Binary files a/icons/obj/weapons/grenade.dmi and b/icons/obj/weapons/grenade.dmi differ diff --git a/icons/obj/weapons/guns/ballistic.dmi b/icons/obj/weapons/guns/ballistic.dmi index 6f208f4d8b1cd..b8ccd855c7b33 100644 Binary files a/icons/obj/weapons/guns/ballistic.dmi and b/icons/obj/weapons/guns/ballistic.dmi differ diff --git a/icons/turf/floors/rose_stone_turf.dmi b/icons/turf/floors/rose_stone_turf.dmi new file mode 100644 index 0000000000000..9fba7a3d8b54f Binary files /dev/null and b/icons/turf/floors/rose_stone_turf.dmi differ diff --git a/icons/turf/walls.dmi b/icons/turf/walls.dmi index e12843bc69b22..4c655cf4b5baa 100644 Binary files a/icons/turf/walls.dmi and b/icons/turf/walls.dmi differ diff --git a/icons/turf/walls/rose_stone_wall.dmi b/icons/turf/walls/rose_stone_wall.dmi new file mode 100644 index 0000000000000..2bbda788d05dd Binary files /dev/null and b/icons/turf/walls/rose_stone_wall.dmi differ diff --git a/massmeta/modular_meta.dm b/massmeta/modular_meta.dm index a8357c31b8d51..f3ea7cf71d37f 100644 --- a/massmeta/modular_meta.dm +++ b/massmeta/modular_meta.dm @@ -98,4 +98,3 @@ #include "code\modules\spells\spell_types\touch\testicular_torsion.dm" #include "code\modules\antags\wizard\equipment\spellbook_entries\offensive.dm" -#include "features\revert_spacesuits\spacesuits.dm" diff --git a/rust_g.dll b/rust_g.dll index 157fb64acaf33..99d92ca3798c2 100644 Binary files a/rust_g.dll and b/rust_g.dll differ diff --git a/sound/items/gauze/attribution.txt b/sound/items/gauze/attribution.txt new file mode 100644 index 0000000000000..3b5f511e695a6 --- /dev/null +++ b/sound/items/gauze/attribution.txt @@ -0,0 +1,10 @@ +{ +bandage_begin1.ogg +bandage_begin2.ogg +bandage_begin3.ogg +bandage_begin4.ogg +bandage_end1.ogg +bandage_end2.ogg +bandage_end3.ogg +bandage_end4.ogg +} - made by sadboyssuss \ No newline at end of file diff --git a/sound/items/gauze/bandage_begin1.ogg b/sound/items/gauze/bandage_begin1.ogg new file mode 100644 index 0000000000000..47c2c6c28881c Binary files /dev/null and b/sound/items/gauze/bandage_begin1.ogg differ diff --git a/sound/items/gauze/bandage_begin2.ogg b/sound/items/gauze/bandage_begin2.ogg new file mode 100644 index 0000000000000..6372d03f2dbcb Binary files /dev/null and b/sound/items/gauze/bandage_begin2.ogg differ diff --git a/sound/items/gauze/bandage_begin3.ogg b/sound/items/gauze/bandage_begin3.ogg new file mode 100644 index 0000000000000..aeb1c8e9be82f Binary files /dev/null and b/sound/items/gauze/bandage_begin3.ogg differ diff --git a/sound/items/gauze/bandage_begin4.ogg b/sound/items/gauze/bandage_begin4.ogg new file mode 100644 index 0000000000000..53c8dcc2f58c6 Binary files /dev/null and b/sound/items/gauze/bandage_begin4.ogg differ diff --git a/sound/items/gauze/bandage_end1.ogg b/sound/items/gauze/bandage_end1.ogg new file mode 100644 index 0000000000000..0a786d15cdbd8 Binary files /dev/null and b/sound/items/gauze/bandage_end1.ogg differ diff --git a/sound/items/gauze/bandage_end2.ogg b/sound/items/gauze/bandage_end2.ogg new file mode 100644 index 0000000000000..49510d9275c45 Binary files /dev/null and b/sound/items/gauze/bandage_end2.ogg differ diff --git a/sound/items/gauze/bandage_end3.ogg b/sound/items/gauze/bandage_end3.ogg new file mode 100644 index 0000000000000..97b34cc13d8e9 Binary files /dev/null and b/sound/items/gauze/bandage_end3.ogg differ diff --git a/sound/items/gauze/bandage_end4.ogg b/sound/items/gauze/bandage_end4.ogg new file mode 100644 index 0000000000000..6cbaf67489a8f Binary files /dev/null and b/sound/items/gauze/bandage_end4.ogg differ diff --git a/sound/items/handling/cloth/attribution.txt b/sound/items/handling/cloth/attribution.txt new file mode 100644 index 0000000000000..e7614c392d6d0 --- /dev/null +++ b/sound/items/handling/cloth/attribution.txt @@ -0,0 +1,10 @@ +{ +cloth_drop1.ogg +cloth_drop2.ogg +cloth_drop3.ogg +cloth_drop4.ogg +cloth_pickup1.ogg +cloth_pickup2.ogg +cloth_pickup3.ogg +cloth_pickup4.ogg +} - made by sadboyssuss \ No newline at end of file diff --git a/sound/items/handling/cloth_drop.ogg b/sound/items/handling/cloth/cloth_drop1.ogg similarity index 100% rename from sound/items/handling/cloth_drop.ogg rename to sound/items/handling/cloth/cloth_drop1.ogg diff --git a/sound/items/handling/cloth/cloth_drop2.ogg b/sound/items/handling/cloth/cloth_drop2.ogg new file mode 100644 index 0000000000000..c7b169b073b52 Binary files /dev/null and b/sound/items/handling/cloth/cloth_drop2.ogg differ diff --git a/sound/items/handling/cloth/cloth_drop3.ogg b/sound/items/handling/cloth/cloth_drop3.ogg new file mode 100644 index 0000000000000..ee71eb14c196a Binary files /dev/null and b/sound/items/handling/cloth/cloth_drop3.ogg differ diff --git a/sound/items/handling/cloth/cloth_drop4.ogg b/sound/items/handling/cloth/cloth_drop4.ogg new file mode 100644 index 0000000000000..28c22cf24994b Binary files /dev/null and b/sound/items/handling/cloth/cloth_drop4.ogg differ diff --git a/sound/items/handling/cloth/cloth_drop5.ogg b/sound/items/handling/cloth/cloth_drop5.ogg new file mode 100644 index 0000000000000..3727fb8a6acdf Binary files /dev/null and b/sound/items/handling/cloth/cloth_drop5.ogg differ diff --git a/sound/items/handling/cloth_pickup.ogg b/sound/items/handling/cloth/cloth_pickup1.ogg similarity index 100% rename from sound/items/handling/cloth_pickup.ogg rename to sound/items/handling/cloth/cloth_pickup1.ogg diff --git a/sound/items/handling/cloth/cloth_pickup2.ogg b/sound/items/handling/cloth/cloth_pickup2.ogg new file mode 100644 index 0000000000000..659bdc205574a Binary files /dev/null and b/sound/items/handling/cloth/cloth_pickup2.ogg differ diff --git a/sound/items/handling/cloth/cloth_pickup3.ogg b/sound/items/handling/cloth/cloth_pickup3.ogg new file mode 100644 index 0000000000000..4b5ef7fcf24de Binary files /dev/null and b/sound/items/handling/cloth/cloth_pickup3.ogg differ diff --git a/sound/items/handling/cloth/cloth_pickup4.ogg b/sound/items/handling/cloth/cloth_pickup4.ogg new file mode 100644 index 0000000000000..309b12863e461 Binary files /dev/null and b/sound/items/handling/cloth/cloth_pickup4.ogg differ diff --git a/sound/items/handling/cloth/cloth_pickup5.ogg b/sound/items/handling/cloth/cloth_pickup5.ogg new file mode 100644 index 0000000000000..22b50e45d0a57 Binary files /dev/null and b/sound/items/handling/cloth/cloth_pickup5.ogg differ diff --git a/sound/items/handling/suture/attribution.txt b/sound/items/handling/suture/attribution.txt new file mode 100644 index 0000000000000..e3019f0e35426 --- /dev/null +++ b/sound/items/handling/suture/attribution.txt @@ -0,0 +1,7 @@ +{ +needle_drop1.ogg +needle_drop2.ogg +needle_drop3.ogg +needle_pickup1.ogg +needle_pickup2.ogg +} - made by sadboysuss \ No newline at end of file diff --git a/sound/items/handling/suture/needle_drop1.ogg b/sound/items/handling/suture/needle_drop1.ogg new file mode 100644 index 0000000000000..5f5dd328f38bb Binary files /dev/null and b/sound/items/handling/suture/needle_drop1.ogg differ diff --git a/sound/items/handling/suture/needle_drop2.ogg b/sound/items/handling/suture/needle_drop2.ogg new file mode 100644 index 0000000000000..ae6d3f3b33bcd Binary files /dev/null and b/sound/items/handling/suture/needle_drop2.ogg differ diff --git a/sound/items/handling/suture/needle_drop3.ogg b/sound/items/handling/suture/needle_drop3.ogg new file mode 100644 index 0000000000000..c69d2cb11efef Binary files /dev/null and b/sound/items/handling/suture/needle_drop3.ogg differ diff --git a/sound/items/handling/suture/needle_pickup1.ogg b/sound/items/handling/suture/needle_pickup1.ogg new file mode 100644 index 0000000000000..97736fb9fc59a Binary files /dev/null and b/sound/items/handling/suture/needle_pickup1.ogg differ diff --git a/sound/items/handling/suture/needle_pickup2.ogg b/sound/items/handling/suture/needle_pickup2.ogg new file mode 100644 index 0000000000000..ed11b4707556b Binary files /dev/null and b/sound/items/handling/suture/needle_pickup2.ogg differ diff --git a/sound/items/suture/attribution.txt b/sound/items/suture/attribution.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/sound/items/suture/suture_begin1.ogg b/sound/items/suture/suture_begin1.ogg new file mode 100644 index 0000000000000..dd1d26083a6c0 Binary files /dev/null and b/sound/items/suture/suture_begin1.ogg differ diff --git a/sound/items/suture/suture_continuous1.ogg b/sound/items/suture/suture_continuous1.ogg new file mode 100644 index 0000000000000..fad8217e7a320 Binary files /dev/null and b/sound/items/suture/suture_continuous1.ogg differ diff --git a/sound/items/suture/suture_continuous2.ogg b/sound/items/suture/suture_continuous2.ogg new file mode 100644 index 0000000000000..4dd256f07a4ad Binary files /dev/null and b/sound/items/suture/suture_continuous2.ogg differ diff --git a/sound/items/suture/suture_continuous3.ogg b/sound/items/suture/suture_continuous3.ogg new file mode 100644 index 0000000000000..ea72748a21301 Binary files /dev/null and b/sound/items/suture/suture_continuous3.ogg differ diff --git a/sound/items/suture/suture_end1.ogg b/sound/items/suture/suture_end1.ogg new file mode 100644 index 0000000000000..f8d2e8da86441 Binary files /dev/null and b/sound/items/suture/suture_end1.ogg differ diff --git a/sound/items/suture/suture_end2.ogg b/sound/items/suture/suture_end2.ogg new file mode 100644 index 0000000000000..60082676e3241 Binary files /dev/null and b/sound/items/suture/suture_end2.ogg differ diff --git a/sound/items/suture/suture_end3.ogg b/sound/items/suture/suture_end3.ogg new file mode 100644 index 0000000000000..de26bec199220 Binary files /dev/null and b/sound/items/suture/suture_end3.ogg differ diff --git a/sound/items/weapons/attributions.txt b/sound/items/weapons/attributions.txt new file mode 100644 index 0000000000000..6a7d58874db0c --- /dev/null +++ b/sound/items/weapons/attributions.txt @@ -0,0 +1,4 @@ +{ + rust_sower_armbomb.ogg - EnterTheJake + rust_sower_explode.ogg - EnterTheJake +} diff --git a/sound/items/weapons/rust_sower_armbomb.ogg b/sound/items/weapons/rust_sower_armbomb.ogg new file mode 100644 index 0000000000000..0cc796ba2a8f2 Binary files /dev/null and b/sound/items/weapons/rust_sower_armbomb.ogg differ diff --git a/sound/items/weapons/rust_sower_explode.ogg b/sound/items/weapons/rust_sower_explode.ogg new file mode 100644 index 0000000000000..52b1cd8ec4cdb Binary files /dev/null and b/sound/items/weapons/rust_sower_explode.ogg differ diff --git a/strings/fishing_tips.txt b/strings/fishing_tips.txt index 3ce0a252c4615..12c6ae3f9a6ca 100644 --- a/strings/fishing_tips.txt +++ b/strings/fishing_tips.txt @@ -55,6 +55,9 @@ Feeding a fish mutagen can triple the probability of generating evolved offsprin You can print fishing rods of different materials from an autolathe, which can inrease or decrease fishing difficulty, casting range, experience gained and can have other, special effects. Albeit scarcely, it's possible to catch fish made of the same materials of a custom material fishing rod. Equipping a shiny fishing hook and the quality of the bait can improve your odds. You can use a fishing rod to snatch random organs during the "manipulate organs" step of the "organ manipulation" surgery. -You can try to save cash on vending machines by using a fishing rod with a coin, holochip or bill attached to it. The value of the money used as bait will positively influence difficulty, risks and the odds of getting more expensive items. +You can try to save cash on vending machines by using a fishing rod with a coin, holochip or bill attached to it. The value of the currency used as bait will reduce difficulty and risks and raise the odds of getting more expensive items. By opening the aquarium panel and turning "Safe Mode" on, you can easily set up a purely decorative aquarium without having to worry about food, temperature and type of water. -Aquariums are also potential fishing spots. Only useful for catching fish you couldn't find in the wild, as a personal achievement and nothing more. \ No newline at end of file +Aquariums are also potential fishing spots. Only useful for catching fish you couldn't find in the wild, as a personal achievement and nothing more. +If you don't have it already, there's a skillchip called Mast-Angl-Er that you can get from the library vending machine which can help if you're new to fishing. Other than dispensing tips, it provides more information when examining fish, rods and fishing spots as well. +If fishing in lava and chasms, there's a chance you fish up a skeleton... Finally, someone who might care about you. +How about you fish yourself some bitches? diff --git a/strings/hallucination.json b/strings/hallucination.json index 5cfdae877948f..d6e13d570d94e 100644 --- a/strings/hallucination.json +++ b/strings/hallucination.json @@ -72,9 +72,12 @@ ], "aggressive": [ + "@pick(add_name)fuck off!", "@pick(add_name)fuck you!", + "@pick(add_name)get out!", "@pick(add_name)give me that!", "@pick(add_name)i'm going to kill you!", + "@pick(add_name)stop!!", "@pick(add_name)stop it!" ], @@ -96,8 +99,11 @@ "escape": [ "@pick(add_name)follow me!", "@pick(add_name)follow me", + "@pick(add_name)look out!", "@pick(add_name)RUN!!", "It's here!", + "Oh shit!", + "They're coming!", "They're behind me!" ], @@ -115,55 +121,109 @@ "Borg", "Captain", "Ce", + "Chef", + "Clown", "Cmo", "Geneticist", "Hop", "Hos", "Janitor", + "Mime", "Qm", "Rd", - "Robo", - "Viro" + "Robo" ], "accusations": [ "a changeling", "a cultist", - "a gang leader", "a heretic", "a ling", + "a murderer", "a rev", "a revhead", + "a spy", "a tator", "a traitor", "a wizard", + "assaulting me", + "attacking me", "bad", "cult", "dead", + "drawing runes", + "flashing people", + "kidnapping me", + "killing people", "mindswapped", "rogue", + "shooting me", + "suicided", "the traitor", "the wizard" ], + "contraband" : [ + "a bomb", + "a syndibomb", + "a ttv", + "a death wand", + "a desword", + "an emag", + "an esword", + "a makarov", + "a mech", + "a powersink", + "a red suit", + "a revolver", + "a staff of change", + "a supermatter shard", + "armblade", + "cult halo", + "cult robes on", + "died", + "dual esword", + "heretic sword", + "hulk", + "my backpack", + "my heirloom", + "my id", + "my stuff", + "romerol", + "the fire axe", + "the spare id" + ], + "threat": [ "%TARGETNAME%", "Blob", "Blue APC", + "Bomb", + "Carps", "Changeling", "Cult", + "Cult rune", + "Dragon", + "Fire", "Harm", "Help", "Heretics", "Heretic", "I hear flashing", + "Kudzu", "Ling", + "Nightmare", "Ops", + "Plasma", "Revenant", + "Rune", + "Runes", "Spiders", + "Spy", "Traitor", "Wizard", - "Xenos" + "Xenos", + "Zombies" ], "location": [ @@ -221,9 +281,16 @@ "Hmm...not sure about that.", "Just do it.", "Kill that person. You know who.", + "Look out!", "No. Stop what you're doing.", + "Something is coming.", + "Something is wrong.", "That person wants to kill you.", + "They're coming for you.", + "They're out to get you.", + "This will end badly.", "Trust that person.", + "Trust no-one.", "Yes. You're doing the right thing.", "You have my permission. Do it.", "You should be wary of that person.", diff --git a/tgstation.dme b/tgstation.dme index 3d2bc95bb3bff..2c39a6829422b 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -912,6 +912,7 @@ #include "code\datums\ai\bane\bane_behaviors.dm" #include "code\datums\ai\bane\bane_controller.dm" #include "code\datums\ai\bane\bane_subtrees.dm" +#include "code\datums\ai\basic_mobs\admin_ai_templates.dm" #include "code\datums\ai\basic_mobs\base_basic_controller.dm" #include "code\datums\ai\basic_mobs\generic_controllers.dm" #include "code\datums\ai\basic_mobs\basic_ai_behaviors\basic_attacking.dm" @@ -1467,6 +1468,7 @@ #include "code\datums\elements\can_barricade.dm" #include "code\datums\elements\can_shatter.dm" #include "code\datums\elements\caseless.dm" +#include "code\datums\elements\chain_lightning_attack.dm" #include "code\datums\elements\chemical_transfer.dm" #include "code\datums\elements\chewable.dm" #include "code\datums\elements\cleaning.dm" @@ -1583,6 +1585,7 @@ #include "code\datums\elements\skill_reward.dm" #include "code\datums\elements\skittish.dm" #include "code\datums\elements\slapcrafting.dm" +#include "code\datums\elements\slow_target_click_cd_attack.dm" #include "code\datums\elements\soft_landing.dm" #include "code\datums\elements\spooky.dm" #include "code\datums\elements\squish.dm" @@ -1757,6 +1760,7 @@ #include "code\datums\proximity_monitor\proximity_monitor.dm" #include "code\datums\proximity_monitor\fields\ai_target_tracking.dm" #include "code\datums\proximity_monitor\fields\gravity.dm" +#include "code\datums\proximity_monitor\fields\heretic_arena.dm" #include "code\datums\proximity_monitor\fields\timestop.dm" #include "code\datums\proximity_monitor\fields\void_storm.dm" #include "code\datums\proximity_monitor\fields\projectile_dampener\projectile_dampener.dm" @@ -1990,6 +1994,7 @@ #include "code\datums\wires\airlock.dm" #include "code\datums\wires\apc.dm" #include "code\datums\wires\autolathe.dm" +#include "code\datums\wires\big_manipulator.dm" #include "code\datums\wires\collar_bomb.dm" #include "code\datums\wires\conveyor.dm" #include "code\datums\wires\ecto_sniffer.dm" @@ -2792,7 +2797,6 @@ #include "code\game\objects\structures\spawner.dm" #include "code\game\objects\structures\spirit_board.dm" #include "code\game\objects\structures\stairs.dm" -#include "code\game\objects\structures\syndicate_uplink_beacon.dm" #include "code\game\objects\structures\table_frames.dm" #include "code\game\objects\structures\tables_racks.dm" #include "code\game\objects\structures\tank_dispenser.dm" @@ -3199,6 +3203,7 @@ #include "code\modules\antagonists\greentext\greentext.dm" #include "code\modules\antagonists\heretic\cosmic_effect.dm" #include "code\modules\antagonists\heretic\heretic_antag.dm" +#include "code\modules\antagonists\heretic\heretic_curses.dm" #include "code\modules\antagonists\heretic\heretic_focus.dm" #include "code\modules\antagonists\heretic\heretic_knowledge.dm" #include "code\modules\antagonists\heretic\heretic_living_heart.dm" @@ -3215,7 +3220,9 @@ #include "code\modules\antagonists\heretic\items\forbidden_book.dm" #include "code\modules\antagonists\heretic\items\heretic_armor.dm" #include "code\modules\antagonists\heretic\items\heretic_blades.dm" +#include "code\modules\antagonists\heretic\items\heretic_grenade.dm" #include "code\modules\antagonists\heretic\items\heretic_necks.dm" +#include "code\modules\antagonists\heretic\items\heretic_shoes.dm" #include "code\modules\antagonists\heretic\items\hunter_rifle.dm" #include "code\modules\antagonists\heretic\items\keyring.dm" #include "code\modules\antagonists\heretic\items\labyrinth_handbook.dm" @@ -3289,6 +3296,7 @@ #include "code\modules\antagonists\heretic\magic\void_prison.dm" #include "code\modules\antagonists\heretic\magic\void_pull.dm" #include "code\modules\antagonists\heretic\magic\wave_of_desperation.dm" +#include "code\modules\antagonists\heretic\magic\wolves_among_sheep.dm" #include "code\modules\antagonists\heretic\status_effects\buffs.dm" #include "code\modules\antagonists\heretic\status_effects\debuffs.dm" #include "code\modules\antagonists\heretic\status_effects\ghoul.dm" @@ -3362,40 +3370,13 @@ #include "code\modules\antagonists\spy\spy_uplink.dm" #include "code\modules\antagonists\survivalist\survivalist.dm" #include "code\modules\antagonists\syndicate_monkey\syndicate_monkey.dm" -#include "code\modules\antagonists\traitor\balance_helper.dm" #include "code\modules\antagonists\traitor\datum_traitor.dm" -#include "code\modules\antagonists\traitor\objective_category.dm" -#include "code\modules\antagonists\traitor\traitor_objective.dm" #include "code\modules\antagonists\traitor\uplink_handler.dm" #include "code\modules\antagonists\traitor\components\demoraliser.dm" -#include "code\modules\antagonists\traitor\components\traitor_objective_helpers.dm" -#include "code\modules\antagonists\traitor\components\traitor_objective_limit_per_time.dm" -#include "code\modules\antagonists\traitor\components\traitor_objective_mind_tracker.dm" #include "code\modules\antagonists\traitor\contractor\contract_teammate.dm" #include "code\modules\antagonists\traitor\contractor\contractor_hub.dm" #include "code\modules\antagonists\traitor\contractor\contractor_items.dm" #include "code\modules\antagonists\traitor\contractor\syndicate_contract.dm" -#include "code\modules\antagonists\traitor\objectives\assassination.dm" -#include "code\modules\antagonists\traitor\objectives\demoralise_assault.dm" -#include "code\modules\antagonists\traitor\objectives\destroy_heirloom.dm" -#include "code\modules\antagonists\traitor\objectives\destroy_item.dm" -#include "code\modules\antagonists\traitor\objectives\eyesnatching.dm" -#include "code\modules\antagonists\traitor\objectives\hack_comm_console.dm" -#include "code\modules\antagonists\traitor\objectives\infect.dm" -#include "code\modules\antagonists\traitor\objectives\kidnapping.dm" -#include "code\modules\antagonists\traitor\objectives\kill_pet.dm" -#include "code\modules\antagonists\traitor\objectives\locate_weakpoint.dm" -#include "code\modules\antagonists\traitor\objectives\sabotage_machinery.dm" -#include "code\modules\antagonists\traitor\objectives\steal.dm" -#include "code\modules\antagonists\traitor\objectives\abstract\target_player.dm" -#include "code\modules\antagonists\traitor\objectives\final_objective\battle_royale.dm" -#include "code\modules\antagonists\traitor\objectives\final_objective\battlecruiser.dm" -#include "code\modules\antagonists\traitor\objectives\final_objective\final_objective.dm" -#include "code\modules\antagonists\traitor\objectives\final_objective\infect_ai.dm" -#include "code\modules\antagonists\traitor\objectives\final_objective\no_escape.dm" -#include "code\modules\antagonists\traitor\objectives\final_objective\objective_dark_matteor.dm" -#include "code\modules\antagonists\traitor\objectives\final_objective\romerol.dm" -#include "code\modules\antagonists\traitor\objectives\final_objective\supermatter_cascade.dm" #include "code\modules\antagonists\valentines\heartbreaker.dm" #include "code\modules\antagonists\valentines\valentine.dm" #include "code\modules\antagonists\venus_human_trap\venus_human_trap.dm" @@ -4721,6 +4702,7 @@ #include "code\modules\mapfluff\ruins\spaceruin_code\derelict_sulaco.dm" #include "code\modules\mapfluff\ruins\spaceruin_code\DJstation.dm" #include "code\modules\mapfluff\ruins\spaceruin_code\forgottenship.dm" +#include "code\modules\mapfluff\ruins\spaceruin_code\garbagetruck.dm" #include "code\modules\mapfluff\ruins\spaceruin_code\hauntedtradingpost.dm" #include "code\modules\mapfluff\ruins\spaceruin_code\hellfactory.dm" #include "code\modules\mapfluff\ruins\spaceruin_code\hilbertshotel.dm" @@ -4858,7 +4840,6 @@ #include "code\modules\mob\living\login.dm" #include "code\modules\mob\living\logout.dm" #include "code\modules\mob\living\navigation.dm" -#include "code\modules\mob\living\sneeze.dm" #include "code\modules\mob\living\status_procs.dm" #include "code\modules\mob\living\taste.dm" #include "code\modules\mob\living\ventcrawling.dm" @@ -5693,6 +5674,7 @@ #include "code\modules\projectiles\boxes_magazines\internal\_internal.dm" #include "code\modules\projectiles\boxes_magazines\internal\grenade.dm" #include "code\modules\projectiles\boxes_magazines\internal\meathook.dm" +#include "code\modules\projectiles\boxes_magazines\internal\pistol.dm" #include "code\modules\projectiles\boxes_magazines\internal\revolver.dm" #include "code\modules\projectiles\boxes_magazines\internal\rifle.dm" #include "code\modules\projectiles\boxes_magazines\internal\shotgun.dm" @@ -6223,10 +6205,8 @@ #include "code\modules\tgui\states\always.dm" #include "code\modules\tgui\states\conscious.dm" #include "code\modules\tgui\states\contained.dm" -#include "code\modules\tgui\states\debug.dm" #include "code\modules\tgui\states\deep_inventory.dm" #include "code\modules\tgui\states\default.dm" -#include "code\modules\tgui\states\fun.dm" #include "code\modules\tgui\states\greyscale_menu.dm" #include "code\modules\tgui\states\hands.dm" #include "code\modules\tgui\states\human_adjacent.dm" diff --git a/tgui/packages/tgui-panel/chat/middleware.js b/tgui/packages/tgui-panel/chat/middleware.js index 83fc28dc86a99..f221f3a7c53f6 100644 --- a/tgui/packages/tgui-panel/chat/middleware.js +++ b/tgui/packages/tgui-panel/chat/middleware.js @@ -135,13 +135,14 @@ export const chatMiddleware = (store) => { requesting < sequence; requesting++ ) { - requested_sequences.push(requesting); + sequences_requested.push(requesting); Byond.sendMessage('chat/resend', requesting); } } } chatRenderer.processBatch([payload_obj.content]); + sequences.push(sequence); return; } if (type === loadChat.type) { diff --git a/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss b/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss index 38c36e14b5bc7..f7293065482ff 100644 --- a/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss +++ b/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss @@ -52,15 +52,15 @@ a.popt { position: fixed; top: 50%; left: 50%; - background: #ddd; + background: hsl(0, 0%, 86.7%); } .popup .close { position: absolute; - background: #aaa; + background: hsl(0, 0%, 66.7%); top: 0; right: 0; - color: #333; + color: hsl(0, 0%, 20%); text-decoration: none; z-index: 2; padding: 0 10px; @@ -69,12 +69,12 @@ a.popt { } .popup .close:hover { - background: #999; + background: hsl(0, 0%, 60%); } .popup .head { - background: #999; - color: #ddd; + background: hsl(0, 0%, 60%); + color: hsl(0, 0%, 86.7%); padding: 0 10px; height: 30px; line-height: 30px; @@ -85,12 +85,12 @@ a.popt { } .popup input { - border: 1px solid #999; - background: #fff; + border: 1px solid hsl(0, 0%, 60%); + background: hsl(0, 0%, 100%); margin: 0; padding: 5px; outline: none; - color: #333; + color: hsl(0, 0%, 20%); } .popup input[type='text']:hover, @@ -101,8 +101,8 @@ a.popt { .popup input[type='submit'] { padding: 5px 10px; - background: #999; - color: #ddd; + background: hsl(0, 0%, 60%); + color: hsl(0, 0%, 86.7%); text-transform: uppercase; font-size: 0.9em; font-weight: bold; @@ -111,7 +111,7 @@ a.popt { .popup input[type='submit']:hover, .popup input[type='submit']:focus, .popup input[type='submit']:active { - background: #aaa; + background: hsl(0, 0%, 66.7%); cursor: pointer; } @@ -123,11 +123,11 @@ a.popt { display: block; text-decoration: none; padding: 3px; - color: #333; + color: hsl(0, 0%, 20%); } .changeFont a:hover { - background: #ccc; + background: hsl(0, 0%, 80%); } .highlightPopup { @@ -153,7 +153,7 @@ a.popt { /* ADMIN CONTEXT MENU */ .contextMenu { - background-color: #ddd; + background-color: hsl(0, 0%, 86.7%); position: fixed; margin: 2px; width: 150px; @@ -163,11 +163,11 @@ a.popt { display: block; padding: 2px 5px; text-decoration: none; - color: #333; + color: hsl(0, 0%, 20%); } .contextMenu a:hover { - background-color: #ccc; + background-color: hsl(0, 0%, 80%); } /* ADMIN FILTER MESSAGES MENU */ @@ -984,7 +984,7 @@ em { max-width: 95%; font-size: 120%; padding: 0.2em 0.5em; - background: #151515; // Chat background color + background: hsl(0, 0%, 8.2%); // Chat background color border: 1px solid; border-color: inherit; border-radius: 0.33em; @@ -999,7 +999,7 @@ em { left: 0; height: 1.15em; width: 100%; - background: #151515; // Chat background color + background: hsl(0, 0%, 8.2%); // Chat background color transform: translateY(-50%) scaleX(1.05); z-index: -1; } diff --git a/tgui/packages/tgui-panel/styles/tgchat/chat-light.scss b/tgui/packages/tgui-panel/styles/tgchat/chat-light.scss index a35c927ae796e..d0862cb2bfce8 100644 --- a/tgui/packages/tgui-panel/styles/tgchat/chat-light.scss +++ b/tgui/packages/tgui-panel/styles/tgchat/chat-light.scss @@ -15,7 +15,7 @@ body { } body { - background: #fff; + background: hsl(0, 0%, 100%); font-family: Verdana, sans-serif; font-size: 13px; line-height: 1.2; @@ -66,15 +66,15 @@ a.popt { position: fixed; top: 50%; left: 50%; - background: #ddd; + background: hsl(0, 0%, 86.7%); } .popup .close { position: absolute; - background: #aaa; + background: hsl(0, 0%, 66.7%); top: 0; right: 0; - color: #333; + color: hsl(0, 0%, 20%); text-decoration: none; z-index: 2; padding: 0 10px; @@ -83,12 +83,12 @@ a.popt { } .popup .close:hover { - background: #999; + background: hsl(0, 0%, 60%); } .popup .head { - background: #999; - color: #ddd; + background: hsl(0, 0%, 60%); + color: hsl(0, 0%, 86.7%); padding: 0 10px; height: 30px; line-height: 30px; @@ -99,12 +99,12 @@ a.popt { } .popup input { - border: 1px solid #999; - background: #fff; + border: 1px solid hsl(0, 0%, 60%); + background: hsl(0, 0%, 100%); margin: 0; padding: 5px; outline: none; - color: #333; + color: hsl(0, 0%, 20%); } .popup input[type='text']:hover, @@ -115,8 +115,8 @@ a.popt { .popup input[type='submit'] { padding: 5px 10px; - background: #999; - color: #ddd; + background: hsl(0, 0%, 60%); + color: hsl(0, 0%, 86.7%); text-transform: uppercase; font-size: 0.9em; font-weight: bold; @@ -125,7 +125,7 @@ a.popt { .popup input[type='submit']:hover, .popup input[type='submit']:focus, .popup input[type='submit']:active { - background: #aaa; + background: hsl(0, 0%, 66.7%); cursor: pointer; } @@ -137,11 +137,11 @@ a.popt { display: block; text-decoration: none; padding: 3px; - color: #333; + color: hsl(0, 0%, 20%); } .changeFont a:hover { - background: #ccc; + background: hsl(0, 0%, 80%); } .highlightPopup { @@ -167,7 +167,7 @@ a.popt { /* ADMIN CONTEXT MENU */ .contextMenu { - background-color: #ddd; + background-color: hsl(0, 0%, 86.7%); position: fixed; margin: 2px; width: 150px; @@ -177,11 +177,11 @@ a.popt { display: block; padding: 2px 5px; text-decoration: none; - color: #333; + color: hsl(0, 0%, 20%); } .contextMenu a:hover { - background-color: #ccc; + background-color: hsl(0, 0%, 80%); } /* ADMIN FILTER MESSAGES MENU */ @@ -990,10 +990,10 @@ h2.alert { } .fieldset_legend { - background: #ffffff; // Chat background color + background: hsl(0, 0%, 100%); // Chat background color &:before { - background: #ffffff; // Chat background color + background: hsl(0, 0%, 100%); // Chat background color } } diff --git a/tgui/packages/tgui/interfaces/AlertModal.tsx b/tgui/packages/tgui/interfaces/AlertModal.tsx index 8341d5dbd66c0..a3f41b7d85a53 100644 --- a/tgui/packages/tgui/interfaces/AlertModal.tsx +++ b/tgui/packages/tgui/interfaces/AlertModal.tsx @@ -33,10 +33,29 @@ export function AlertModal(props) { title, } = data; + // Stolen wholesale from fontcode + function textWidth(text: string, font: string, fontsize: number) { + // default font height is 12 in tgui + font = fontsize + 'x ' + font; + const c = document.createElement('canvas'); + const ctx = c.getContext('2d') as CanvasRenderingContext2D; + ctx.font = font; + return ctx.measureText(text).width; + } + const [selected, setSelected] = useState(0); + const windowWidth = 345 + (buttons.length > 2 ? 55 : 0); + + // very accurate estimate of padding for each num of buttons + const paddingMagicNumber = 67 / buttons.length + 23; + // At least one of the buttons has a long text message - const isVerbose = buttons.some((button) => button.length > 10); + const isVerbose = buttons.some( + (button) => + textWidth(button, '', large_buttons ? 14 : 12) > // 14 is the larger font size for large buttons + windowWidth / buttons.length - paddingMagicNumber, + ); const largeSpacing = isVerbose && large_buttons ? 20 : 15; // Dynamically sets window dimensions @@ -46,8 +65,6 @@ export function AlertModal(props) { (message.length > 30 ? Math.ceil(message.length / 4) : 0) + (message.length && large_buttons ? 5 : 0); - const windowWidth = 345 + (buttons.length > 2 ? 55 : 0); - /** Changes button selection, etc */ function keyDownHandler(event: KeyboardEvent) { switch (event.key) { diff --git a/tgui/packages/tgui/interfaces/AntagInfoTraitor.tsx b/tgui/packages/tgui/interfaces/AntagInfoTraitor.tsx index 9d3f2369661de..37633f31d755a 100644 --- a/tgui/packages/tgui/interfaces/AntagInfoTraitor.tsx +++ b/tgui/packages/tgui/interfaces/AntagInfoTraitor.tsx @@ -1,10 +1,4 @@ -import { - BlockQuote, - Button, - Dimmer, - Section, - Stack, -} from 'tgui-core/components'; +import { BlockQuote, Button, Section, Stack } from 'tgui-core/components'; import { BooleanLike } from 'tgui-core/react'; import { useBackend } from '../backend'; @@ -36,8 +30,6 @@ type Info = { intro: string; code: string; failsafe_code: string; - replacement_code: string; - replacement_frequency: string; has_uplink: BooleanLike; uplink_intro: string; uplink_unlock_info: string; @@ -108,37 +100,12 @@ const EmployerSection = (props) => { const UplinkSection = (props) => { const { data } = useBackend(); - const { - has_uplink, - uplink_intro, - uplink_unlock_info, - code, - failsafe_code, - replacement_code, - replacement_frequency, - } = data; + const { has_uplink, uplink_intro, uplink_unlock_info, code, failsafe_code } = + data; return (
- {(!has_uplink && ( - - -
- Your uplink is missing or destroyed.
- Craft a Syndicate Uplink Beacon and then speak -
- - {replacement_code} - {' '} - on frequency{' '} - - {replacement_frequency} - {' '} - after synchronizing with the beacon. -
-
-
- )) || ( + { <> {uplink_intro} @@ -154,29 +121,16 @@ const UplinkSection = (props) => {
{uplink_unlock_info}
- )} + }

- {(has_uplink && ( -
- If you lose your uplink, you can craft a Syndicate Uplink Beacon and - then speak{' '} - - {replacement_code} - {' '} - on radio frequency{' '} - - {replacement_frequency} - {' '} - after synchronizing with the beacon. -
- )) || ( + {
{' '}

- )} + }
); }; diff --git a/tgui/packages/tgui/interfaces/Autolathe.tsx b/tgui/packages/tgui/interfaces/Autolathe.tsx index 26b5254072684..ef52d1132dd8c 100644 --- a/tgui/packages/tgui/interfaces/Autolathe.tsx +++ b/tgui/packages/tgui/interfaces/Autolathe.tsx @@ -53,7 +53,7 @@ export const Autolathe = (props) => { return ( - +
diff --git a/tgui/packages/tgui/interfaces/AutomatedAnnouncement.tsx b/tgui/packages/tgui/interfaces/AutomatedAnnouncement.tsx index f88b2da67f4f5..b794e63a63695 100644 --- a/tgui/packages/tgui/interfaces/AutomatedAnnouncement.tsx +++ b/tgui/packages/tgui/interfaces/AutomatedAnnouncement.tsx @@ -1,142 +1,158 @@ -import { Button, Input, LabeledList, Section } from 'tgui-core/components'; +import { filter, sortBy } from 'common/collections'; +import { useState } from 'react'; +import { + Button, + Input, + LabeledList, + NoticeBox, + Section, + Stack, + Table, +} from 'tgui-core/components'; import { BooleanLike } from 'tgui-core/react'; import { useBackend } from '../backend'; import { Window } from '../layouts'; -const TOOLTIP_TEXT = ` - %PERSON will be replaced with their name. - %RANK with their job. -`; - -const TOOLTIP_NODE = ` - %NODE will be replaced with the researched node. -`; +type AASConfigEntry = { + name: string; + entryRef: string; + enabled: BooleanLike; + modifiable: BooleanLike; + announcementLinesMap: Record; + generalTooltip: string; + varsAndTooltipsMap: Record; +}; type Data = { - arrivalToggle: BooleanLike; - arrival: string; - newheadToggle: BooleanLike; - newhead: string; - node_toggle: BooleanLike; - node_message: string; + config_entries: AASConfigEntry[]; }; export const AutomatedAnnouncement = (props) => { const { act, data } = useBackend(); - const { - arrivalToggle, - arrival, - newheadToggle, - newhead, - node_toggle, - node_message, - } = data; + const { config_entries = [] } = data; + + const [search, setSearch] = useState(''); + + const isEntryMatch = (entry: AASConfigEntry, search: string) => { + if (!search) return true; + const { name, announcementLinesMap = [], varsAndTooltipsMap = [] } = entry; + switch (true) { + case name?.toLowerCase().includes(search?.toLowerCase()): + case Object.keys(announcementLinesMap).some((lineKey) => + lineKey.toLowerCase().includes(search?.toLowerCase()), + ): + case Object.values(announcementLinesMap).some((line) => + line.toLowerCase().includes(search?.toLowerCase()), + ): + case Object.keys(varsAndTooltipsMap).some((varName) => + varName.toLowerCase().includes(search?.toLowerCase()), + ): + return true; + default: + return false; + } + }; + + const errorMessage = !config_entries.length + ? 'No configurable options detected! Please report this to Nanotrasen.' + : 'No match. Refine your search.'; + + const sorted = sortBy( + filter(config_entries, (entry) => isEntryMatch(entry, search)), + (entry) => entry.name, + ); return ( - + -
act('ArrivalToggle')} - /> - } - > - - - } - > - - act('ArrivalText', { - newText: value, - }) - } - /> - - -
-
act('NewheadToggle')} - /> - } - > - - - } - > - - act('NewheadText', { - newText: value, - }) - } - /> - - -
-
act('node_toggle')} - /> - } - > - - + + + + setSearch(value)} /> - } - > - - act('node_message', { - newText: value, - }) - } - /> - - -
+ + + + + {!sorted.length ? ( + {errorMessage} + ) : ( +
+ {sorted.map((entry, index) => ( +
+ + + } + > + + {Object.entries(entry.announcementLinesMap).map( + ([lineKey, announcementLine]) => ( + + + {lineKey}: + + + + act('Text', { + entryRef: entry.entryRef, + lineKey, + newText: value, + }) + } + /> + + + ), + )} +
+
+ ))} +
+ )} +
+
); diff --git a/tgui/packages/tgui/interfaces/BigManipulator.tsx b/tgui/packages/tgui/interfaces/BigManipulator.tsx index f4ad0c4a2c239..b4e4da145a406 100644 --- a/tgui/packages/tgui/interfaces/BigManipulator.tsx +++ b/tgui/packages/tgui/interfaces/BigManipulator.tsx @@ -26,6 +26,7 @@ export const BigManipulator = (props) => { active, manipulate_mode, settings_list, + drop_after_use, highest_priority, throw_range, item_as_filter, @@ -68,7 +69,15 @@ export const BigManipulator = (props) => { tooltip="click on this button with item in hands to add filter on this item." onClick={() => act('add_filter')} /> - {manipulate_mode === 'Throw' && ( + {manipulate_mode === 'use' && ( +
- -
+ +
(
- -
+ +
( />
- -
+ +
{searchText.length > 0 ? ( {sortBy( diff --git a/tgui/packages/tgui/interfaces/Filteriffic.jsx b/tgui/packages/tgui/interfaces/Filteriffic.jsx index f90062c691210..8e80d540cb862 100644 --- a/tgui/packages/tgui/interfaces/Filteriffic.jsx +++ b/tgui/packages/tgui/interfaces/Filteriffic.jsx @@ -23,7 +23,7 @@ const FilterIntegerEntry = (props) => { const { act } = useBackend(); return ( { return ( <>
{component.name} + {!!component.ui_alerts && + Object.keys(component.ui_alerts).map((icon) => ( + + ); if (is_blind) return content; - return {content}; + return content; } diff --git a/tgui/packages/tgui/interfaces/LootPanel/RawContents.tsx b/tgui/packages/tgui/interfaces/LootPanel/RawContents.tsx index 9a4f97362f8a6..1b70487f2df39 100644 --- a/tgui/packages/tgui/interfaces/LootPanel/RawContents.tsx +++ b/tgui/packages/tgui/interfaces/LootPanel/RawContents.tsx @@ -1,4 +1,4 @@ -import { Flex } from 'tgui-core/components'; +import { Box } from 'tgui-core/components'; import { createSearch } from 'tgui-core/string'; import { LootBox } from './LootBox'; @@ -17,12 +17,10 @@ export function RawContents(props: Props) { ); return ( - + {filteredContents.map((item) => ( - - - + ))} - + ); } diff --git a/tgui/packages/tgui/interfaces/LootPanel/index.tsx b/tgui/packages/tgui/interfaces/LootPanel/index.tsx index 6c3c358636a2a..a010982357d5c 100644 --- a/tgui/packages/tgui/interfaces/LootPanel/index.tsx +++ b/tgui/packages/tgui/interfaces/LootPanel/index.tsx @@ -1,6 +1,8 @@ import { useState } from 'react'; -import { Button, Input, Section, Stack } from 'tgui-core/components'; +import { useMemo } from 'react'; +import { Box, Button, Input, Section } from 'tgui-core/components'; import { isEscape } from 'tgui-core/keys'; +import { clamp } from 'tgui-core/math'; import { BooleanLike } from 'tgui-core/react'; import { useBackend } from '../../backend'; @@ -18,54 +20,78 @@ export function LootPanel(props) { const { act, data } = useBackend(); const { contents = [], searching } = data; + // limitations: items with different stack counts, charges etc. + const contentsByPathName = useMemo(() => { + const acc: Record = {}; + + for (let i = 0; i < contents.length; i++) { + const item = contents[i]; + if (item.path) { + if (!acc[item.path + item.name]) { + acc[item.path + item.name] = []; + } + acc[item.path + item.name].push(item); + } else { + acc[item.ref] = [item]; + } + } + return acc; + }, [contents]); + const [grouping, setGrouping] = useState(true); const [searchText, setSearchText] = useState(''); - const total = contents.length ? contents.length - 1 : 0; + const headerHeight = 38; + const itemHeight = 38; + const minHeight = headerHeight + itemHeight; + const maxHeight = headerHeight + itemHeight * 10; + const height: number = clamp( + headerHeight + + (!grouping ? contents.length : Object.keys(contentsByPathName).length) * + itemHeight, + minHeight, + maxHeight, + ); return ( - + + setSearchText(value)} + placeholder={`Search items...`} + /> + diff --git a/tgui/packages/tgui/interfaces/Secrets.jsx b/tgui/packages/tgui/interfaces/Secrets.jsx index 055ab70e10310..e3298a44bff16 100644 --- a/tgui/packages/tgui/interfaces/Secrets.jsx +++ b/tgui/packages/tgui/interfaces/Secrets.jsx @@ -456,13 +456,13 @@ const FunTab = (props) => { /> - - Your admin button here, coder! - + content="Dpt Order Cooldown" + onClick={() => act('department_cooldown_override')} + /> diff --git a/tgui/packages/tgui/interfaces/TraitorObjectiveDebug.tsx b/tgui/packages/tgui/interfaces/TraitorObjectiveDebug.tsx deleted file mode 100644 index c15b188260293..0000000000000 --- a/tgui/packages/tgui/interfaces/TraitorObjectiveDebug.tsx +++ /dev/null @@ -1,428 +0,0 @@ -import { useState } from 'react'; -import { Box, LabeledList, Stack, Tabs, Tooltip } from 'tgui-core/components'; - -import { useBackend } from '../backend'; -import { Window } from '../layouts'; -import { getDangerLevel } from './Uplink/calculateDangerLevel'; - -type Objective = { - name: string; - description: string; - progression_minimum: number; - progression_maximum: number; - global_progression_limit_coeff: number; - global_progression_influence_intensity: number; - progression_reward: [number, number]; - telecrystal_reward: [number, number]; - telecrystal_penalty: number; - weight: number; - type: string; -}; - -type ObjectiveList = { - objectives: (ObjectiveList | Objective)[]; - weight: number; -}; - -type ObjectiveCategory = ObjectiveList & { - name: string; -}; - -type PlayerData = { - player: string; - progression_points: number; - total_progression_from_objectives: number; -}; - -type ObjectiveData = { - current_progression: number; - objective_data: ObjectiveCategory[]; - player_data: PlayerData[]; -}; - -const recursivelyGetObjectives = (value: ObjectiveList) => { - let listToReturn: Objective[] = []; - for (let i = 0; i < value.objectives.length; i++) { - const possibleValue = value.objectives[i]; - if ((possibleValue as ObjectiveList).objectives) { - listToReturn = listToReturn.concat( - recursivelyGetObjectives(possibleValue as ObjectiveList), - ); - } else { - listToReturn.push(possibleValue as Objective); - } - } - return listToReturn; -}; - -// 150 minutes -const sizeLimit = 90000; - -type SortingOption = { - name: string; - // Function used to determine the order of the elements. - // It is expected to return a negative value - // if first argument is less than second argument, - // zero if they're equal and a positive value otherwise. - sort: (a: Objective, b: Objective) => number; -}; - -const sortingOptions: SortingOption[] = [ - { - name: 'Minimum Progression', - sort: (a, b) => { - if (a.progression_minimum < b.progression_minimum) { - return -1; - } else if (a.progression_minimum === b.progression_minimum) { - return 0; - } - return 1; - }, - }, - { - name: 'Telecrystal Payout', - sort: (a, b) => { - const telecrystalMeanA = - (a.telecrystal_reward[0] + a.telecrystal_reward[1]) / 2; - const telecrystalMeanB = - (b.telecrystal_reward[0] + b.telecrystal_reward[1]) / 2; - if (telecrystalMeanA < telecrystalMeanB) { - return -1; - } else if (telecrystalMeanA === telecrystalMeanB) { - return 0; - } - return 1; - }, - }, - { - name: 'Progression Payout', - sort: (a, b) => { - const progressionMeanA = - (a.progression_reward[0] + a.progression_reward[1]) / 2; - const progressionMeanB = - (b.progression_reward[0] + b.progression_reward[1]) / 2; - if (progressionMeanA < progressionMeanB) { - return -1; - } else if (progressionMeanA === progressionMeanB) { - return 0; - } - return 1; - }, - }, - { - name: 'Progression Payout + Min. Prog.', - sort: (a, b) => { - const progressionMeanA = - (a.progression_reward[0] + a.progression_reward[1]) / 2 + - a.progression_minimum; - const progressionMeanB = - (b.progression_reward[0] + b.progression_reward[1]) / 2 + - b.progression_minimum; - if (progressionMeanA < progressionMeanB) { - return -1; - } else if (progressionMeanA === progressionMeanB) { - return 0; - } - return 1; - }, - }, -]; - -export const TraitorObjectiveDebug = (props) => { - const { data, act } = useBackend(); - const { objective_data, player_data, current_progression } = data; - const lines: JSX.Element[] = []; - lines.sort(); - for (let i = 10; i < 100; i += 10) { - lines.push( - - - - {/* Time in minutes of this threshold */} - {Math.round((sizeLimit * (i / 100)) / 600)} mins - - , - ); - } - let objectivesToRender: Objective[] = []; - const [currentTab, setCurrentTab] = useState('All'); - const [sortingFunc, setSortingFunc] = useState(sortingOptions[0].name); - // true = ascending, false = descending - const [sortDirection, setSortingDirection] = useState(true); - - let actualSortingFunc; - for (let index = 0; index < sortingOptions.length; index++) { - const value = sortingOptions[index]; - if (value.name === sortingFunc) { - actualSortingFunc = value.sort; - } - } - - for (let index = 0; index < objective_data.length; index++) { - const value = objective_data[index]; - if (value.name !== currentTab && currentTab !== 'All') { - continue; - } - objectivesToRender = objectivesToRender.concat( - recursivelyGetObjectives(value), - ); - } - - objectivesToRender.sort(actualSortingFunc); - if (!sortDirection) { - objectivesToRender.reverse(); - } - - return ( - - - - - - - {sortingOptions.map((value) => ( - setSortingFunc(value.name)} - > - {value.name} - - ))} - - - - - setCurrentTab('All')} - > - All - - {objective_data.map((value) => ( - setCurrentTab(value.name)} - > - {value.name} - - ))} - - - - - setSortingDirection(true)} - > - Ascending - - setSortingDirection(false)} - > - Descending - - - - - - - {lines} - - {objectivesToRender.map((value, index) => ( - - - - ))} - - {player_data.map((value) => { - const rep = getDangerLevel(value.progression_points); - return ( - - - - {value.player} - - - {Math.floor(value.progression_points / 600)} mins - - - {Math.floor( - value.total_progression_from_objectives / 600, - )}{' '} - mins - - - - } - position="top" - > - - - - - ); - })} - - - - - - - - - ); -}; - -type ObjectiveBoxProps = { - objective: Objective; -}; - -const ObjectiveBox = (props: ObjectiveBoxProps) => { - const { objective } = props; - let width = `${ - (objective.progression_maximum / sizeLimit) * window.innerWidth - }px`; - if (objective.progression_maximum > sizeLimit) { - width = '100%'; - } - return ( - - - - {objective.name} - - - - - {objective.progression_minimum / 600} mins - - {objective.progression_maximum <= sizeLimit && ( - - {objective.progression_maximum / 600} mins - - )} - - - - - {objective.progression_reward[0] / 600} -  to {objective.progression_reward[1] / 600} pr - - - - - {objective.telecrystal_reward[0]} -  to {objective.telecrystal_reward[1]} tc - - - - - ); -}; diff --git a/tgui/packages/tgui/interfaces/Uplink/ObjectiveElement.tsx b/tgui/packages/tgui/interfaces/Uplink/ObjectiveElement.tsx new file mode 100644 index 0000000000000..87c0bf2277388 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Uplink/ObjectiveElement.tsx @@ -0,0 +1,41 @@ +import { Box, Flex, Stack } from 'tgui-core/components'; +import { classes } from 'tgui-core/react'; + +export type Objective = { + id: number; + name: string; + description: string; +}; + +type ObjectiveElementProps = { + name: string; + description: string; +}; + +export const ObjectiveElement = (props: ObjectiveElementProps) => { + const { name, description } = props; + + return ( + + + + + {name} + + + + + + {description} + + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/Uplink/ObjectiveMenu.tsx b/tgui/packages/tgui/interfaces/Uplink/ObjectiveMenu.tsx deleted file mode 100644 index 094798ea92945..0000000000000 --- a/tgui/packages/tgui/interfaces/Uplink/ObjectiveMenu.tsx +++ /dev/null @@ -1,569 +0,0 @@ -import { Component, MouseEvent } from 'react'; -import { - Box, - Button, - Dimmer, - Flex, - Icon, - NoticeBox, - Section, - Stack, - Tooltip, -} from 'tgui-core/components'; -import { BooleanLike, classes } from 'tgui-core/react'; - -import { - calculateProgression, - getDangerLevel, - Rank, -} from './calculateDangerLevel'; -import { ObjectiveState } from './constants'; - -export type Objective = { - id: number; - name: string; - description: string; - progression_minimum: number; - progression_reward: number; - telecrystal_reward: number; - telecrystal_penalty: number; - ui_buttons?: ObjectiveUiButton[]; - objective_state: ObjectiveState; - original_progression: number; - final_objective: BooleanLike; -}; - -export type ObjectiveUiButton = { - name: string; - tooltip: string; - icon: string; - action: string; -}; - -type ObjectiveMenuProps = { - activeObjectives: Objective[]; - potentialObjectives: Objective[]; - maximumActiveObjectives: number; - maximumPotentialObjectives: number; - - handleStartObjective: (objective: Objective) => void; - handleObjectiveAction: (objective: Objective, action: string) => void; - handleObjectiveCompleted: (objective: Objective) => void; - handleObjectiveAbort: (objective: Objective) => void; - handleRequestObjectives: () => void; -}; - -type ObjectiveMenuState = { - draggingObjective: Objective | null; - objectiveX: number; - objectiveY: number; -}; - -let dragClickTimer = 0; - -export class ObjectiveMenu extends Component< - ObjectiveMenuProps, - ObjectiveMenuState -> { - constructor(props) { - super(props); - this.state = { - draggingObjective: null, - objectiveX: 0, - objectiveY: 0, - }; - - this.handleObjectiveClick = this.handleObjectiveClick.bind(this); - this.handleMouseUp = this.handleMouseUp.bind(this); - this.handleMouseMove = this.handleMouseMove.bind(this); - this.handleObjectiveAdded = this.handleObjectiveAdded.bind(this); - } - - handleObjectiveClick(event: MouseEvent, objective: Objective) { - if (this.state?.draggingObjective) { - return; - } - if (event.button === 0) { - // Left click - this.setState({ - draggingObjective: objective, - objectiveX: event.clientX, - objectiveY: event.clientY, - }); - window.addEventListener('mouseup', this.handleMouseUp as any); - window.addEventListener('mousemove', this.handleMouseMove as any); - event.stopPropagation(); - event.preventDefault(); - - dragClickTimer = Date.now() + 100; // 100 milliseconds - } - } - - handleMouseUp(event: MouseEvent) { - if (dragClickTimer > Date.now()) { - return; - } - - window.removeEventListener('mouseup', this.handleMouseUp as any); - window.removeEventListener('mousemove', this.handleMouseMove as any); - this.setState({ - draggingObjective: null, - }); - } - - handleMouseMove(event: MouseEvent) { - this.setState({ - objectiveX: event.pageX, - objectiveY: event.pageY - 32, - }); - } - - handleObjectiveAdded(event: MouseEvent) { - const { draggingObjective } = this.state as ObjectiveMenuState; - if (!draggingObjective) { - return; - } - const { handleStartObjective } = this.props; - handleStartObjective(draggingObjective); - } - - render() { - const { - activeObjectives = [], - potentialObjectives, - maximumActiveObjectives, - maximumPotentialObjectives, - handleObjectiveAction, - handleObjectiveCompleted, - handleObjectiveAbort, - handleRequestObjectives, - } = this.props; - const { draggingObjective, objectiveX, objectiveY } = this - .state as ObjectiveMenuState; - - potentialObjectives.sort((objA, objB) => { - if (objA.progression_minimum < objB.progression_minimum) { - return 1; - } else if (objA.progression_minimum > objB.progression_minimum) { - return -1; - } - return 0; - }); - return ( - <> - - -
- - {Array.apply(null, Array(maximumActiveObjectives)).map( - (_, index) => { - if (index >= activeObjectives.length) { - return ( - - - - - Empty Objective, drop objectives here to take - them - - - - - ); - } - const objective = activeObjectives[index]; - return ( - - {ObjectiveFunction( - objective, - true, - handleObjectiveAction, - handleObjectiveCompleted, - handleObjectiveAbort, - true, - )} - - ); - }, - )} - -
-
- -
- - {potentialObjectives.map((objective) => { - return ( - { - this.handleObjectiveClick(event, objective); - }} - > - {(objective.id !== draggingObjective?.id && - ObjectiveFunction( - objective, - false, - undefined, - undefined, - undefined, - true, - )) || ( - - )} - - ); - })} - {(maximumPotentialObjectives === 0 && ( - - - - You are locked out of objectives - - - )) || - (potentialObjectives.length < maximumPotentialObjectives && ( - - - -
-
-
- {!!draggingObjective && ( - - {ObjectiveFunction(draggingObjective, false)} - - )} - - ); - } -} - -const ObjectiveFunction = ( - objective: Objective, - active: boolean, - handleObjectiveAction?: (objective: Objective, action: string) => void, - handleCompletion?: (objective: Objective) => void, - handleAbort?: (objective: Objective) => void, - grow: boolean = false, -) => { - const dangerLevel = getDangerLevel(objective.progression_minimum); - return ( - { - if (handleCompletion) { - handleCompletion(objective); - } - }} - handleAbort={(event) => { - if (handleAbort) { - handleAbort(objective); - } - }} - uiButtons={ - active && handleObjectiveAction ? ( - - {objective.ui_buttons?.map((value, index) => ( - - -
- ) : null} - - )} - {!!uiButtons && !objectiveFinished && ( - {uiButtons} - )} - - - - - ); -}; diff --git a/tgui/packages/tgui/interfaces/Uplink/PrimaryObjectiveMenu.tsx b/tgui/packages/tgui/interfaces/Uplink/PrimaryObjectiveMenu.tsx index d74871665edf3..366f26b648ffe 100644 --- a/tgui/packages/tgui/interfaces/Uplink/PrimaryObjectiveMenu.tsx +++ b/tgui/packages/tgui/interfaces/Uplink/PrimaryObjectiveMenu.tsx @@ -1,17 +1,16 @@ -import { Box, Button, Dimmer, Section, Stack } from 'tgui-core/components'; +import { Box, Button, Section, Stack } from 'tgui-core/components'; import { useBackend } from '../../backend'; -import { ObjectiveElement } from './ObjectiveMenu'; +import { ObjectiveElement } from './ObjectiveElement'; type PrimaryObjectiveMenuProps = { primary_objectives; - final_objective; can_renegotiate; }; export const PrimaryObjectiveMenu = (props: PrimaryObjectiveMenuProps) => { const { act } = useBackend(); - const { primary_objectives, final_objective, can_renegotiate } = props; + const { primary_objectives, can_renegotiate } = props; return (
@@ -20,34 +19,6 @@ export const PrimaryObjectiveMenu = (props: PrimaryObjectiveMenuProps) => { Your Primary Objectives are as follows. Complete these at all costs. - - Completing Secondary Objectives may allow you to aquire additional - equipment. - - {final_objective && ( - - - PRIORITY MESSAGE -
- SOURCE: xxx.xxx.xxx.224:41394 -
-
- \\Debrief in progress. -
- \\Final Objective confirmed complete.
- \\Your work is done here, agent. -
-
- CONNECTION CLOSED_ -
-
- )} {primary_objectives.map((prim_obj, index) => ( @@ -55,22 +26,6 @@ export const PrimaryObjectiveMenu = (props: PrimaryObjectiveMenuProps) => { key={prim_obj.id} name={prim_obj['task_name']} description={prim_obj['task_text']} - dangerLevel={{ - minutesLessThan: 0, - title: 'none', - gradient: - index === primary_objectives.length - 1 - ? 'reputation-good' - : 'reputation-very-good', - }} - telecrystalReward={0} - telecrystalPenalty={0} - progressionReward={0} - originalProgression={0} - hideTcRep - canAbort={false} - grow={false} - finalObjective={false} /> ))} diff --git a/tgui/packages/tgui/interfaces/Uplink/constants.ts b/tgui/packages/tgui/interfaces/Uplink/constants.ts deleted file mode 100644 index 3cda3fe45de10..0000000000000 --- a/tgui/packages/tgui/interfaces/Uplink/constants.ts +++ /dev/null @@ -1,7 +0,0 @@ -export enum ObjectiveState { - Inactive = 1, - Active = 2, - Completed = 3, - Failed = 4, - Invalid = 5, -} diff --git a/tgui/packages/tgui/interfaces/Uplink/index.tsx b/tgui/packages/tgui/interfaces/Uplink/index.tsx index 55ae2a3765f5c..cc8f26b2ba75b 100644 --- a/tgui/packages/tgui/interfaces/Uplink/index.tsx +++ b/tgui/packages/tgui/interfaces/Uplink/index.tsx @@ -21,7 +21,6 @@ import { dangerLevelsTooltip, } from './calculateDangerLevel'; import { GenericUplink, Item } from './GenericUplink'; -import { Objective, ObjectiveMenu } from './ObjectiveMenu'; import { PrimaryObjectiveMenu } from './PrimaryObjectiveMenu'; type UplinkItem = { @@ -63,16 +62,10 @@ type UplinkData = { [key: string]: number; }; - has_objectives: BooleanLike; has_progression: BooleanLike; primary_objectives: { [key: number]: string; }; - completed_final_objective: string; - potential_objectives: Objective[]; - active_objectives: Objective[]; - maximum_active_objectives: number; - maximum_potential_objectives: number; purchased_items: number; shop_locked: BooleanLike; can_renegotiate: BooleanLike; @@ -184,13 +177,7 @@ export class Uplink extends Component<{}, UplinkState> { progression_points, primary_objectives, can_renegotiate, - completed_final_objective, - active_objectives, - potential_objectives, - has_objectives, has_progression, - maximum_active_objectives, - maximum_potential_objectives, current_expected_progression, progression_scaling_deviance, current_progression_scaling, @@ -294,11 +281,7 @@ export class Uplink extends Component<{}, UplinkState> { Your current level of threat. Threat - determines - {has_objectives - ? ' the severity of secondary objectives you get and ' - : ' '} - what items you can purchase.  + determines what items you can purchase.  {/* A minute in deciseconds */} Threat passively increases by{' '} @@ -341,7 +324,7 @@ export class Uplink extends Component<{}, UplinkState> { )} - {!!(primary_objectives || has_objectives) && ( + {!!primary_objectives && ( {primary_objectives && ( @@ -358,20 +341,6 @@ export class Uplink extends Component<{}, UplinkState> { Primary Objectives )} - {!!has_objectives && ( - this.setState({ currentTab: 1 })} - > - Secondary Objectives - - )} { {(currentTab === 0 && primary_objectives && ( - )) || - (currentTab === 1 && has_objectives && ( - - act('objective_act', { - check: objective.original_progression, - objective_action: action, - index: objective.id, - }) - } - handleStartObjective={(objective) => - act('start_objective', { - check: objective.original_progression, - index: objective.id, - }) - } - handleObjectiveAbort={(objective) => - act('objective_abort', { - check: objective.original_progression, - index: objective.id, - }) - } - handleObjectiveCompleted={(objective) => - act('finish_objective', { - check: objective.original_progression, - index: objective.id, - }) - } - handleRequestObjectives={() => act('regenerate_objectives')} + )) || ( + <> + { + if (!item.extraData?.ref) { + act('buy', { path: item.id }); + } else { + act('buy', { ref: item.extraData.ref }); + } + }} /> - )) || ( - <> - { - if (!item.extraData?.ref) { - act('buy', { path: item.id }); - } else { - act('buy', { ref: item.extraData.ref }); - } - }} - /> - {(shop_locked && !data.debug && ( - - - SHOP LOCKED - - - )) || - null} - - )} + {(shop_locked && !data.debug && ( + + + SHOP LOCKED + + + )) || + null} + + )} diff --git a/tgui/packages/tgui/styles/interfaces/Fabricator.scss b/tgui/packages/tgui/styles/interfaces/Fabricator.scss index 391cdb14a2685..70f5eb5fc9cd0 100644 --- a/tgui/packages/tgui/styles/interfaces/Fabricator.scss +++ b/tgui/packages/tgui/styles/interfaces/Fabricator.scss @@ -8,7 +8,7 @@ .Fabricator__Recipe { padding: 0.25em 0; - border-bottom: 1px solid #000; + border-bottom: 1px solid hsl(0, 0%, 0%); position: relative; &:last-child { @@ -41,7 +41,7 @@ } .MaterialDock--active { - background-color: #111; + background-color: hsl(0, 0%, 6.7%); transition: background-color 0.125s ease-out; } @@ -55,14 +55,14 @@ .MaterialDock__Dock { position: absolute; - background-color: #111; + background-color: hsl(0, 0%, 6.7%); bottom: 100%; left: 0; width: 100%; padding: 1em; border-radius: 0.25em 0.25em 0 0; text-align: center; - box-shadow: 0 0 3px #000; + box-shadow: 0 0 3px hsl(0, 0%, 0%); } .MaterialDock--active .MaterialDock__Dock { @@ -83,7 +83,7 @@ height: 0; padding-bottom: 100%; position: relative; - box-shadow: 0 0 3px #000; + box-shadow: 0 0 3px hsl(0, 0%, 0%); } .FabricatorRecipe { @@ -205,7 +205,7 @@ } &--active { - color: #fff; + color: hsl(0, 0%, 100%); border-right: 2px solid colors.$primary; } } diff --git a/tgui/packages/tgui/styles/interfaces/IntegratedCircuit.scss b/tgui/packages/tgui/styles/interfaces/IntegratedCircuit.scss index c3fabf9f0212b..1287173151b2b 100644 --- a/tgui/packages/tgui/styles/interfaces/IntegratedCircuit.scss +++ b/tgui/packages/tgui/styles/interfaces/IntegratedCircuit.scss @@ -70,3 +70,65 @@ $border-radius: base.$border-radius !default; border: base.em(1px) solid rgba($border-color, 0.75); border-radius: $border-radius; } + +$category-colors: ( + 'Utility': ( + bg: hsl(136, 77%, 23%), + contrast: white, + ), + 'Entity': ( + bg: hsl(288, 60%, 49%), + contrast: white, + ), + 'Sensor': ( + bg: hsl(337, 67%, 66%), + contrast: white, + ), + 'Math': ( + bg: hsl(113, 65%, 47%), + contrast: black, + ), + 'Unassigned': ( + bg: hsl(208, 65%, 47%), + contrast: white, + ), + 'String': ( + bg: hsl(24, 84%, 48%), + contrast: white, + ), + 'List': ( + bg: hsl(0, 0%, 67%), + contrast: black, + ), + 'Action': ( + bg: hsl(178, 59%, 45%), + contrast: black, + ), + 'ID': ( + bg: hsl(52, 75%, 48%), + contrast: black, + ), + 'NTNet': ( + bg: hsl(239, 64%, 44%), + contrast: white, + ), + 'Abstract': ( + bg: hsl(208, 65%, 47%), + contrast: white, + ), + 'Admin': ( + bg: hsl(0, 72%, 50%), + contrast: white, + ), + 'BCI': ( + bg: black, + contrast: white, + ), +); + +@each $category-name, $values in $category-colors { + .ObjectComponent__Category__#{$category-name} { + background-color: map-get($values, bg); + color: map-get($values, contrast); + } +} diff --git a/tgui/packages/tgui/styles/interfaces/LootPanel.scss b/tgui/packages/tgui/styles/interfaces/LootPanel.scss deleted file mode 100644 index bd6af021e2d27..0000000000000 --- a/tgui/packages/tgui/styles/interfaces/LootPanel.scss +++ /dev/null @@ -1,35 +0,0 @@ -@use '../colors.scss'; - -.SearchItem { - align-items: center; - display: flex; - flex-direction: column; - justify-content: center; -} - -.SearchItem--box { - background: black; - border: thin solid hsl(0, 0%, 12.9%); - display: flex; - align-items: center; - justify-content: center; - height: 3rem; - position: relative; - width: 3rem; -} - -.SearchItem--amount { - bottom: -4px; - color: colors.$teal; - font-family: 'Roboto', sans-serif; - font-size: 1.5rem; - position: absolute; - right: -6px; -} - -.SearchItem--text { - color: colors.$label; - font-family: 'Roboto', sans-serif; - font-size: 1rem; - z-index: 1; -} diff --git a/tgui/packages/tgui/styles/main.scss b/tgui/packages/tgui/styles/main.scss index 3db8e5184546b..216a6cbfa0d47 100644 --- a/tgui/packages/tgui/styles/main.scss +++ b/tgui/packages/tgui/styles/main.scss @@ -35,7 +35,6 @@ @include meta.load-css('./interfaces/LibraryAdmin.scss'); @include meta.load-css('./interfaces/LibraryComputer.scss'); @include meta.load-css('./interfaces/ListInput.scss'); -@include meta.load-css('./interfaces/LootPanel.scss'); @include meta.load-css('./interfaces/Mecha.scss'); @include meta.load-css('./interfaces/NtosMessenger.scss'); @include meta.load-css('./interfaces/NtosNotepad.scss'); diff --git a/tgui/packages/tgui/styles/themes/cardtable.scss b/tgui/packages/tgui/styles/themes/cardtable.scss index 882078c957125..8a13e295976c7 100644 --- a/tgui/packages/tgui/styles/themes/cardtable.scss +++ b/tgui/packages/tgui/styles/themes/cardtable.scss @@ -35,7 +35,7 @@ ); @include meta.load-css( '~tgui-core/styles/components/NumberInput', - $with: ('border-color': #fff) + $with: ('border-color': hsl(0, 0%, 100%)) ); @include meta.load-css( '~tgui-core/styles/components/ProgressBar', @@ -52,6 +52,6 @@ ); .Button { - border: base.em(2px) solid #fff; + border: base.em(2px) solid hsl(0, 0%, 100%); } } diff --git a/tools/ci/build.ps1 b/tools/ci/build.ps1 index 4694cc3be58d4..ca2848af159d5 100644 --- a/tools/ci/build.ps1 +++ b/tools/ci/build.ps1 @@ -4,7 +4,6 @@ if(!(Test-Path -Path "C:/byond")){ Remove-Item C:/byond.zip } -bash tools/ci/install_node.sh bash tools/build/build -Werror exit $LASTEXITCODE diff --git a/tools/ci/install_node.sh b/tools/ci/install_node.sh deleted file mode 100644 index f18fb49865edd..0000000000000 --- a/tools/ci/install_node.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -set -euo pipefail - -source dependencies.sh - -if [[ -e ~/.nvm/nvm.sh ]]; then - source ~/.nvm/nvm.sh - nvm install $NODE_VERSION_LTS - nvm use $NODE_VERSION_LTS -fi diff --git a/tools/ci/run_server.sh b/tools/ci/run_server.sh index baf172d8ec3d8..e14d35cd9d4d6 100644 --- a/tools/ci/run_server.sh +++ b/tools/ci/run_server.sh @@ -22,5 +22,6 @@ cd .. mkdir -p data/screenshots_new cp -r ci_test/data/screenshots_new data/screenshots_new +cp ci_test/data/unit_tests.json data/unit_tests.json cat ci_test/data/logs/ci/clean_run.lk diff --git a/tools/hslify/hslify.py b/tools/hslify/hslify.py index 9a87ad4415710..5e51ce6940cb1 100644 --- a/tools/hslify/hslify.py +++ b/tools/hslify/hslify.py @@ -4,15 +4,23 @@ from colormath.color_conversions import convert_color def hex_to_hsl(hex_color): + alpha_percent = None + if len(hex_color) == 4 or len(hex_color) == 5: # Shorthand formats expansion + hex_color = '#' + ''.join([c * 2 for c in hex_color[1:]]) + if len(hex_color) == 9: # Includes '#' and alpha + alphahex = hex_color[-2:] + alpha_percent = (int(alphahex, 16) / 255) * 100 rgb = sRGBColor.new_from_rgb_hex(hex_color) hsl = convert_color(rgb, HSLColor) + if alpha_percent: + return f"hsla({hsl.hsl_h:.1f}, {hsl.hsl_s * 100:.1f}%, {hsl.hsl_l * 100:.1f}%, {alpha_percent:.1f})" return f"hsl({hsl.hsl_h:.1f}, {hsl.hsl_s * 100:.1f}%, {hsl.hsl_l * 100:.1f}%)" def replace_hex_with_hsl(file_path): with open(file_path, 'r') as file: content = file.read() - hex_pattern = re.compile(r'#([0-9a-fA-F]{6})') + hex_pattern = re.compile(r'#([0-9a-fA-F]{3,8})') updated_content = hex_pattern.sub(lambda match: hex_to_hsl(match.group(0)), content) with open(file_path, 'w') as file: diff --git a/tools/screenshot-test-comparison/index.js b/tools/screenshot-test-comparison/index.js index 0a0f5fa4545d2..e61ecff198cf4 100644 --- a/tools/screenshot-test-comparison/index.js +++ b/tools/screenshot-test-comparison/index.js @@ -64,6 +64,7 @@ for (const filename of fs.readdirSync(artifactsDirectory)) { const fullPathCompareScreenshot = path.join(screenshotsDirectory, screenshotName) if (!fs.existsSync(fullPathCompareScreenshot)) { + console.error(`${fullPathCompareScreenshot} is missing an existing screenshot to compare against`) fail(screenshotName, fullPathScreenshotName) continue } diff --git a/tools/tgs_scripts/PreCompile.bat b/tools/tgs_scripts/PreCompile.bat index ce7572c9ef4eb..43d3066ae89b1 100644 --- a/tools/tgs_scripts/PreCompile.bat +++ b/tools/tgs_scripts/PreCompile.bat @@ -1,15 +1,6 @@ @echo off cd /D "%~dp0" set TG_BOOTSTRAP_CACHE=%cd% -IF NOT %1 == "" ( - rem TGS4+: we are passed the game directory on the command line - cd %1 -) ELSE IF EXIST "..\Game\B\tgstation.dmb" ( - rem TGS3: Game/B/tgstation.dmb exists, so build in Game/A - cd ..\Game\A -) ELSE ( - rem TGS3: Otherwise build in Game/B - cd ..\Game\B -) +cd %1 set CBT_BUILD_MODE=TGS tools\build\build